/
validate-options.test.js
51 lines (45 loc) · 1.61 KB
/
validate-options.test.js
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
import loader from '../src/cjs';
it('validate options', () => {
const validate = (options) =>
loader.call(
Object.assign(
{},
{
query: options,
loaders: [],
resourcePath: 'file.scss',
getResolve: () => () => {},
async: () => (error) => {
if (error) {
throw error;
}
},
}
),
'a { color: red; }'
);
// eslint-disable-next-line global-require
// expect(() => validate({ implementation: require('node-sass') })).not.toThrow();
// eslint-disable-next-line global-require
// expect(() => validate({ implementation: require('sass') })).not.toThrow();
// expect(() => validate({ implementation: true })).not.toThrow();
expect(() => validate({ sassOptions: {} })).not.toThrow();
expect(() =>
validate({
sassOptions: () => {
return {};
},
})
).not.toThrow();
expect(() => validate({ sassOptions: () => {} })).not.toThrow();
expect(() => validate({ sassOptions: true })).toThrowErrorMatchingSnapshot();
expect(() => validate({ prependData: '$color: red;' })).not.toThrow();
expect(() => validate({ prependData: () => '$color: red;' })).not.toThrow();
expect(() => validate({ prependData: true })).toThrowErrorMatchingSnapshot();
expect(() => validate({ webpackImporter: true })).not.toThrow();
expect(() => validate({ webpackImporter: false })).not.toThrow();
expect(() =>
validate({ webpackImporter: 'unknown' })
).toThrowErrorMatchingSnapshot();
expect(() => validate({ unknown: 'unknown' })).toThrowErrorMatchingSnapshot();
});