mirror of
https://github.com/tenrok/vue-meta.git
synced 2026-06-24 08:50:34 +03:00
Merge pull request #19 from Atinux/master
Fix: merge array if vmid is undefined
This commit is contained in:
@@ -10,7 +10,7 @@
|
|||||||
export default {
|
export default {
|
||||||
metaInfo: {
|
metaInfo: {
|
||||||
meta: [
|
meta: [
|
||||||
{ vmid: 'charset', charset: 'utf-8' }
|
{ charset: 'utf-8' }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,9 +25,9 @@ export default {
|
|||||||
|
|
||||||
module: {
|
module: {
|
||||||
loaders: [
|
loaders: [
|
||||||
{ test: /\.js$/, exclude: /node_modules/, loader: 'babel' },
|
{ test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' },
|
||||||
{ test: /\.vue$/, loader: 'vue' },
|
{ test: /\.vue$/, loader: 'vue-loader' },
|
||||||
{ test: /\.json$/, loader: 'json' }
|
{ test: /\.json$/, loader: 'json-loader' }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ export default function _getMetaInfo (options = {}) {
|
|||||||
let shared = false
|
let shared = false
|
||||||
for (let sourceIndex in source) {
|
for (let sourceIndex in source) {
|
||||||
const sourceItem = source[sourceIndex]
|
const sourceItem = source[sourceIndex]
|
||||||
if (targetItem[tagIDKeyName] === sourceItem[tagIDKeyName]) {
|
if (targetItem[tagIDKeyName] && targetItem[tagIDKeyName] === sourceItem[tagIDKeyName]) {
|
||||||
shared = true
|
shared = true
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,21 @@
|
|||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import _getMetaInfo from '../src/shared/getMetaInfo'
|
import _getMetaInfo from '../src/shared/getMetaInfo'
|
||||||
|
import {
|
||||||
|
VUE_META_KEY_NAME,
|
||||||
|
VUE_META_ATTRIBUTE,
|
||||||
|
VUE_META_SERVER_RENDERED_ATTRIBUTE,
|
||||||
|
VUE_META_TAG_LIST_ID_KEY_NAME
|
||||||
|
} from '../src/shared/constants'
|
||||||
|
|
||||||
const getMetaInfo = _getMetaInfo()
|
// set some default options
|
||||||
|
const defaultOptions = {
|
||||||
|
keyName: VUE_META_KEY_NAME,
|
||||||
|
attribute: VUE_META_ATTRIBUTE,
|
||||||
|
ssrAttribute: VUE_META_SERVER_RENDERED_ATTRIBUTE,
|
||||||
|
tagIDKeyName: VUE_META_TAG_LIST_ID_KEY_NAME
|
||||||
|
}
|
||||||
|
|
||||||
|
const getMetaInfo = _getMetaInfo(defaultOptions)
|
||||||
|
|
||||||
describe('getMetaInfo', () => {
|
describe('getMetaInfo', () => {
|
||||||
// const container = document.createElement('div')
|
// const container = document.createElement('div')
|
||||||
@@ -25,4 +39,30 @@ describe('getMetaInfo', () => {
|
|||||||
noscript: []
|
noscript: []
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('returns metaInfos when used in component', () => {
|
||||||
|
component = new Vue({
|
||||||
|
metaInfo: {
|
||||||
|
title: 'Hello',
|
||||||
|
meta: [
|
||||||
|
{ charset: 'utf-8' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
expect(getMetaInfo(component)).to.eql({
|
||||||
|
title: 'Hello',
|
||||||
|
titleChunk: 'Hello',
|
||||||
|
titleTemplate: '%s',
|
||||||
|
htmlAttrs: {},
|
||||||
|
bodyAttrs: {},
|
||||||
|
meta: [
|
||||||
|
{ charset: 'utf-8' }
|
||||||
|
],
|
||||||
|
base: [],
|
||||||
|
link: [],
|
||||||
|
style: [],
|
||||||
|
script: [],
|
||||||
|
noscript: []
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user