mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-30 17:37:14 +00:00
60 lines
1.8 KiB
JavaScript
60 lines
1.8 KiB
JavaScript
import { BundleBuilder } from '@nuxt/webpack'
|
|
|
|
import Builder from '../src/builder'
|
|
import BuildContext from '../src/context/build'
|
|
import { createNuxt } from './__utils__'
|
|
|
|
jest.mock('@nuxt/webpack', () => ({
|
|
BundleBuilder: jest.fn(function () {
|
|
this.name = 'webpack_builder'
|
|
})
|
|
}))
|
|
jest.mock('../src/context/build', () => jest.fn(function () {
|
|
this.name = 'build_context'
|
|
}))
|
|
jest.mock('../src/ignore')
|
|
|
|
describe('builder: builder common', () => {
|
|
beforeEach(() => {
|
|
jest.clearAllMocks()
|
|
})
|
|
|
|
test('should get webpack builder by default', () => {
|
|
const builder = new Builder(createNuxt(), {})
|
|
|
|
const bundleBuilder = builder.getBundleBuilder()
|
|
|
|
expect(BuildContext).toBeCalledTimes(1)
|
|
expect(BuildContext).toBeCalledWith(builder)
|
|
expect(BundleBuilder).toBeCalledTimes(1)
|
|
expect(BundleBuilder).toBeCalledWith({ name: 'build_context' })
|
|
expect(bundleBuilder).toEqual({ name: 'webpack_builder' })
|
|
})
|
|
|
|
test('should get custom builder from given constructor', () => {
|
|
const builder = new Builder(createNuxt(), {})
|
|
|
|
const CustomBundleBuilder = jest.fn(function () {
|
|
this.name = 'custom_builder'
|
|
})
|
|
const bundleBuilder = builder.getBundleBuilder(CustomBundleBuilder)
|
|
|
|
expect(BuildContext).toBeCalledTimes(1)
|
|
expect(BuildContext).toBeCalledWith(builder)
|
|
expect(CustomBundleBuilder).toBeCalledTimes(1)
|
|
expect(CustomBundleBuilder).toBeCalledWith({ name: 'build_context' })
|
|
expect(bundleBuilder).toEqual({ name: 'custom_builder' })
|
|
})
|
|
|
|
test('should call bundleBuilder forGenerate', () => {
|
|
const bundleBuilder = {
|
|
forGenerate: jest.fn()
|
|
}
|
|
const builder = new Builder(createNuxt(), bundleBuilder)
|
|
|
|
builder.forGenerate()
|
|
|
|
expect(bundleBuilder.forGenerate).toBeCalledTimes(1)
|
|
})
|
|
})
|