Commit 05dceec2 authored by Evan You's avatar Evan You

test: refactor tests

parent bd584951
......@@ -10,7 +10,7 @@ const normalizeNewline = require('normalize-newline')
test('basic', done => {
mockBundleAndRun({
entry: 'basic.vue'
}, ({ window, module, rawModule }) => {
}, ({ window, module }) => {
const vnode = mockRender(module, {
msg: 'hi'
})
......
......@@ -95,3 +95,31 @@ test('normalize multiple use + options', done => {
}
}, () => done(), true)
})
test('should not duplicate css modules value imports', done => {
mockBundleAndRun({
entry: './test/fixtures/duplicate-cssm.js',
modify: config => {
config.module.rules[1] = {
test: /\.css$/,
use: [
'vue-style-loader',
{
loader: 'css-loader',
options: {
modules: true
}
}
]
}
}
}, ({ window, module, code }) => {
const localsRE = /exports.locals = {\s+"color": "red"\s+};/
const matches = code.match(localsRE)
expect(matches.length).toBe(1)
const styles = window.getComputedStyle(window.document.querySelector('h1'))
console.log(styles)
done()
})
})
const Component = require('~target')
import Component from '~target'
import * as exports from '~target'
if (typeof window !== 'undefined') {
window.vueModule = Component
window.module = Component
window.exports = exports
}
module.exports = Component
export default Component
......@@ -22,9 +22,9 @@ test('allow exporting extended constructor', done => {
test('named exports', done => {
mockBundleAndRun({
entry: 'named-exports.vue'
}, ({ window, rawModule }) => {
expect(rawModule.default.name).toBe('named-exports')
expect(rawModule.foo()).toBe(1)
}, ({ exports }) => {
expect(exports.default.name).toBe('named-exports')
expect(exports.foo()).toBe(1)
done()
})
})
......@@ -8,7 +8,7 @@ const {
test('template with comments', done => {
mockBundleAndRun({
entry: 'template-comment.vue'
}, ({ window, module, rawModule }) => {
}, ({ window, module }) => {
expect(module.comments).toBe(true)
const vnode = mockRender(module, {
msg: 'hi'
......@@ -113,7 +113,7 @@ test('transform srcset', done => {
test('functional component with styles', done => {
mockBundleAndRun({
entry: 'functional-style.vue'
}, ({ window, module, rawModule }) => {
}, ({ window, module }) => {
expect(module.functional).toBe(true)
const vnode = mockRender(module)
// <div class="foo">hi</div>
......
......@@ -108,8 +108,7 @@ function mockBundleAndRun (options, assert, wontThrowError) {
}
const { window } = dom
const rawModule = window.vueModule
const module = interopDefault(window.vueModule)
const { module, exports } = window
const instance = {}
if (module && module.beforeCreate) {
module.beforeCreate.forEach(hook => hook.call(instance))
......@@ -117,7 +116,7 @@ function mockBundleAndRun (options, assert, wontThrowError) {
assert({
window,
module,
rawModule,
exports,
instance,
code,
jsdomError,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment