-
Notifications
You must be signed in to change notification settings - Fork 2.7k
/
Copy pathschema.test.ts
59 lines (57 loc) · 1.23 KB
/
schema.test.ts
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
import { zod } from '@umijs/utils';
import { getSchemas } from './schema';
import { IConfig } from './types';
const schemas = getSchemas();
const config = {
alias: {
umi: 'umi-next',
},
chainWebpack: () => {},
copy: [
{
from: '/public',
to: '/dist',
},
],
cssLoader: {},
cssLoaderModules: {},
cssMinifier: 'esbuild',
cssMinifierOptions: {},
define: {},
deadCode: {},
https: {},
depTranspiler: 'esbuild',
devtool: 'cheap-module-source-map',
externals: {
react: 'React',
'react-dom': 'ReactDOM',
},
extraBabelPlugins: ['a', ['b', {}], ['c', [{}]]],
extraBabelPresets: ['a', ['b', {}], ['c', [{}]]],
extraPostCSSPlugins: [],
hash: true,
ignoreMomentLocale: true,
jsMinifier: 'esbuild',
jsMinifierOptions: {},
lessLoader: {},
outputPath: 'abc',
postcssLoader: {},
proxy: {},
publicPath: 'abc',
purgeCSS: {},
sassLoader: {},
srcTranspiler: 'esbuild',
styleLoader: {},
svgr: {},
svgo: {},
targets: {},
writeToDisk: true,
} as IConfig;
test('normal', () => {
Object.keys(config).forEach((key: any) => {
const schema = schemas[key]({ zod });
// @ts-ignore
const { error } = schema.safeParse(config[key]);
expect(error).toBe(undefined);
});
});