From 93fb27a6947129cc33c75d31cde36afe011ae228 Mon Sep 17 00:00:00 2001 From: pimlie Date: Mon, 11 Feb 2019 12:40:00 +0100 Subject: [PATCH] chore: add separate tests for server and browser plugin --- src/browser.js | 7 +++++++ test/plugin.test.js | 32 -------------------------------- test/utils/index.js | 14 ++++++++++---- 3 files changed, 17 insertions(+), 36 deletions(-) delete mode 100644 test/plugin.test.js diff --git a/src/browser.js b/src/browser.js index 816946b..abbda20 100644 --- a/src/browser.js +++ b/src/browser.js @@ -1,6 +1,7 @@ import { version } from '../package.json' import createMixin from './shared/mixin' import setOptions from './shared/options' +import { isUndefined } from './shared/typeof' import $meta from './client/$meta' /** @@ -17,4 +18,10 @@ function VueMeta(Vue, options = {}) { VueMeta.version = version +// automatic install +if (!isUndefined(window) && !isUndefined(window.Vue)) { + /* istanbul ignore next */ + Vue.use(VueMeta) +} + export default VueMeta diff --git a/test/plugin.test.js b/test/plugin.test.js deleted file mode 100644 index f1c06a2..0000000 --- a/test/plugin.test.js +++ /dev/null @@ -1,32 +0,0 @@ -import { mount, defaultOptions, VueMetaPlugin, loadVueMetaPlugin } from './utils' - -jest.mock('../package.json', () => ({ - version: 'test-version' -})) - -describe('plugin', () => { - let Vue - - beforeAll(() => (Vue = loadVueMetaPlugin())) - - test('is loaded', () => { - const instance = new Vue() - expect(instance.$meta).toEqual(expect.any(Function)) - }) - - test('component has _hasMetaInfo set to true', () => { - const Component = Vue.component('test-component', { - template: '
Test
', - [defaultOptions.keyName]: { - title: 'Hello World' - } - }) - - const { vm } = mount(Component, { localVue: Vue }) - expect(vm._hasMetaInfo).toBe(true) - }) - - test('plugin sets package version', () => { - expect(VueMetaPlugin.version).toBe('test-version') - }) -}) diff --git a/test/utils/index.js b/test/utils/index.js index 7c84943..318b422 100644 --- a/test/utils/index.js +++ b/test/utils/index.js @@ -1,6 +1,7 @@ import { mount, createLocalVue } from '@vue/test-utils' import { renderToString } from '@vue/server-test-utils' -import VueMetaPlugin from '../../src' +import VueMetaBrowserPlugin from '../../src/browser' +import VueMetaServerPlugin from '../../src' import { keyName, @@ -14,7 +15,8 @@ import { export { mount, renderToString, - VueMetaPlugin + VueMetaBrowserPlugin, + VueMetaServerPlugin } export const defaultOptions = { @@ -30,8 +32,12 @@ export function getVue() { return createLocalVue() } -export function loadVueMetaPlugin(options, localVue = getVue()) { - localVue.use(VueMetaPlugin, Object.assign({}, defaultOptions, options)) +export function loadVueMetaPlugin(browser, options, localVue = getVue()) { + if (browser) { + localVue.use(VueMetaBrowserPlugin, Object.assign({}, defaultOptions, options)) + } else { + localVue.use(VueMetaServerPlugin, Object.assign({}, defaultOptions, options)) + } return localVue }