1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
import ExtractTextPlugin from '../src';
const loader = require.resolve('../src/loader');
describe('specifying loader', () => {
it('accepts a loader string', () => {
expect(ExtractTextPlugin.extract('css-loader')).toEqual([
{ loader, options: { omit: 0, remove: true } },
{ loader: 'css-loader' },
]);
});
it('accepts a chained loader string', () => {
expect(ExtractTextPlugin.extract(
'css-loader!postcss-loader!sass-loader',
)).toEqual([
{ loader, options: { omit: 0, remove: true } },
{ loader: 'css-loader' },
{ loader: 'postcss-loader' },
{ loader: 'sass-loader' },
]);
});
it('accepts an array of loader names', () => {
expect(ExtractTextPlugin.extract(
['css-loader', 'postcss-loader', 'sass-loader'],
)).toEqual([
{ loader, options: { omit: 0, remove: true } },
{ loader: 'css-loader' },
{ loader: 'postcss-loader' },
{ loader: 'sass-loader' },
]);
});
it('accepts a loader object', () => {
expect(ExtractTextPlugin.extract({ use: 'css-loader' })).toEqual([
{ loader, options: { omit: 0, remove: true } },
{ loader: 'css-loader' },
]);
});
it('accepts an array of loader names in loader object', () => {
expect(ExtractTextPlugin.extract({
use: ['css-loader', 'postcss-loader', 'sass-loader'],
})).toEqual([
{ loader, options: { omit: 0, remove: true } },
{ loader: 'css-loader' },
{ loader: 'postcss-loader' },
{ loader: 'sass-loader' },
]);
});
it('accepts a loader object with an options object', () => {
expect(ExtractTextPlugin.extract(
{ use: 'css-loader', options: { modules: true } },
)).toEqual([
{ loader, options: { omit: 0, remove: true } },
{ use: 'css-loader', options: { modules: true } },
]);
});
it('accepts a loader object with an options object in array of loaders', () => {
expect(ExtractTextPlugin.extract({
use: [
{ loader: 'css-loader', options: { modules: true } },
'postcss-loader',
],
})).toEqual([
{ loader, options: { omit: 0, remove: true } },
{ loader: 'css-loader', options: { modules: true } },
{ loader: 'postcss-loader' },
]);
});
it('accepts a loader object with a (legacy) query object', () => {
expect(ExtractTextPlugin.extract(
{ use: 'css-loader', query: { modules: true } },
)).toEqual([
{ loader, options: { omit: 0, remove: true } },
{ use: 'css-loader', query: { modules: true } },
]);
});
it('accepts a loader object with a legacy loader field', () => {
expect(ExtractTextPlugin.extract(
{ loader: 'css-loader', query: { modules: true } },
)).toEqual([
{ loader, options: { omit: 0, remove: true } },
{ loader: 'css-loader', query: { modules: true } },
]);
});
it('accepts an array of loader objects', () => {
expect(ExtractTextPlugin.extract([
{ loader: 'css-loader' },
{ loader: 'postcss-loader' },
{ loader: 'sass-loader' },
])).toEqual([
{ loader, options: { omit: 0, remove: true } },
{ loader: 'css-loader' },
{ loader: 'postcss-loader' },
{ loader: 'sass-loader' },
]);
});
});
|