2
0
mirror of https://github.com/tenrok/vue-meta.git synced 2026-06-01 08:24:04 +03:00

feat: auto add ssrAttribute to htmlAttrs

This commit is contained in:
pimlie
2019-07-15 19:50:57 +02:00
parent 168244d761
commit 9cf6d323db
2 changed files with 24 additions and 4 deletions
+10 -3
View File
@@ -8,9 +8,9 @@ import { isUndefined, isArray } from '../../utils/is-type'
* @param {Object} data - the attributes to generate
* @return {Object} - the attribute generator
*/
export default function attributeGenerator ({ attribute } = {}, type, data) {
export default function attributeGenerator ({ attribute, ssrAttribute } = {}, type, data) {
return {
text () {
text (addSrrAttribute) {
let attributeStr = ''
const watchedAttrs = []
@@ -26,7 +26,14 @@ export default function attributeGenerator ({ attribute } = {}, type, data) {
}
}
attributeStr += `${attribute}="${(watchedAttrs.sort()).join(',')}"`
if (attributeStr) {
attributeStr += `${attribute}="${(watchedAttrs.sort()).join(',')}"`
}
if (type === 'htmlAttrs' && addSrrAttribute) {
return `${ssrAttribute}${attributeStr ? ' ' : ''}${attributeStr}`
}
return attributeStr
}
}
+14 -1
View File
@@ -6,7 +6,7 @@ import { titleGenerator } from '../../src/server/generators'
const generateServerInjector = (type, data) => _generateServerInjector('test', defaultOptions, type, data)
describe('generators', () => {
Object.keys(metaInfoData).forEach((type) => {
for (const type in metaInfoData) {
const typeTests = metaInfoData[type]
const testCases = {
@@ -58,6 +58,19 @@ describe('generators', () => {
}
})
})
}
})
describe('extra tests', () => {
test('auto add ssrAttribute', () => {
const htmlAttrs = generateServerInjector('htmlAttrs', {})
expect(htmlAttrs.text(true)).toBe('data-vue-meta-server-rendered')
const headAttrs = generateServerInjector('headAttrs', {})
expect(headAttrs.text(true)).toBe('')
const bodyAttrs = generateServerInjector('bodyAttrs', {})
expect(bodyAttrs.text(true)).toBe('')
})
})