UNPKG

3.75 kBPlain TextView Raw
1import { create as berunJs } from '@berun/berun'
2import presetReact from '../src/preset-react'
3
4test('Gets Webpack module rules configuration', () => {
5 const berun = berunJs(presetReact)
6 berun.webpack.toConfig() // run once to set babel, jest config etc.
7
8 expect(
9 berun.webpack.module
10 .rule('main')
11 .oneOf('image')
12 .toConfig()
13 ).toEqual({
14 test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/],
15 exclude: [/node_modules/],
16 use: [
17 {
18 loader:
19 '/Volumes/DATA/projects/berun/node_modules/url-loader/dist/cjs.js',
20 options: {
21 limit: 10000,
22 name: 'static/media/[name].[hash:8].[ext]'
23 }
24 }
25 ]
26 })
27
28 expect(
29 berun.webpack.module
30 .rule('main')
31 .oneOf('compile')
32 .toConfig()
33 ).toEqual({
34 test: /\.(js|jsx|ts|tsx)$/,
35 include: ['/Volumes/DATA/projects/berun'],
36 exclude: [/node_modules/],
37 use: [
38 /* berun.webpack.module.rule('main').oneOf('compile').use('babel') */
39 {
40 loader:
41 '/Volumes/DATA/projects/berun/node_modules/babel-loader/lib/index.js',
42 options: {
43 babelrc: false,
44 cacheDirectory: true,
45 cacheCompression: false,
46 compact: false,
47 highlightCode: true,
48 presets: ['@berun/babel-preset-react-app']
49 }
50 }
51 ]
52 })
53
54 expect(
55 berun.webpack.module
56 .rule('main')
57 .oneOf('static')
58 .toConfig()
59 ).toEqual({
60 exclude: [
61 /\.(css|scss|sass|js|jsx|mjs|ts|tsx)$/,
62 /\.ejs$/,
63 /\.html$/,
64 /\.json$/,
65 /node_modules/
66 ],
67 use: [
68 /* berun.webpack.module.rule('main').oneOf('static').use('file') */
69 {
70 loader:
71 '/Volumes/DATA/projects/berun/node_modules/file-loader/dist/cjs.js',
72 options: {
73 name: 'static/media/[name].[hash:8].[ext]'
74 }
75 }
76 ]
77 })
78})
79
80test('Gets Webpack production module rules configuration', () => {
81 process.env.NODE_ENV = 'production'
82 const berun = berunJs(presetReact)
83 berun.webpack.toConfig() // run once to set babel, jest config etc.
84
85 expect(
86 berun.webpack.module
87 .rule('main')
88 .oneOf('image')
89 .toConfig()
90 ).toEqual({
91 test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/],
92 exclude: [/node_modules/],
93 use: [
94 {
95 loader:
96 '/Volumes/DATA/projects/berun/node_modules/url-loader/dist/cjs.js',
97 options: {
98 limit: 10000,
99 name: 'static/media/[name].[hash:8].[ext]'
100 }
101 }
102 ]
103 })
104
105 expect(
106 berun.webpack.module
107 .rule('main')
108 .oneOf('compile')
109 .toConfig()
110 ).toEqual({
111 test: /\.(js|jsx|ts|tsx)$/,
112 include: ['/Volumes/DATA/projects/berun'],
113 exclude: [/node_modules/],
114 use: [
115 /* berun.webpack.module.rule('main').oneOf('compile').use('babel') */
116 {
117 loader:
118 '/Volumes/DATA/projects/berun/node_modules/babel-loader/lib/index.js',
119 options: {
120 babelrc: false,
121 cacheDirectory: true,
122 cacheCompression: true,
123 compact: true,
124 highlightCode: true,
125 presets: ['@berun/babel-preset-react-app']
126 }
127 }
128 ]
129 })
130
131 expect(
132 berun.webpack.module
133 .rule('main')
134 .oneOf('static')
135 .toConfig()
136 ).toEqual({
137 exclude: [
138 /\.(css|scss|sass|js|jsx|mjs|ts|tsx)$/,
139 /\.ejs$/,
140 /\.html$/,
141 /\.json$/,
142 /node_modules/
143 ],
144 use: [
145 /* berun.webpack.module.rule('main').oneOf('static').use('file') */
146 {
147 loader:
148 '/Volumes/DATA/projects/berun/node_modules/file-loader/dist/cjs.js',
149 options: {
150 name: 'static/media/[name].[hash:8].[ext]'
151 }
152 }
153 ]
154 })
155})