UNPKG

2.72 kBJavaScriptView Raw
1const { prependLoader } = require("./utils");
2
3describe("prependLoader", () => {
4 const expectedMappings = [
5 {
6 name: "single loader",
7 from: {
8 test: /\.jsx?$/,
9 loader: "babel-loader",
10 },
11 to: {
12 test: /\.jsx?$/,
13 use: ["speed-measure-webpack-plugin/loader", "babel-loader"],
14 },
15 },
16
17 {
18 name: "single use",
19 from: {
20 test: /\.jsx?$/,
21 use: ["babel-loader"],
22 },
23 to: {
24 test: /\.jsx?$/,
25 use: ["speed-measure-webpack-plugin/loader", "babel-loader"],
26 },
27 },
28
29 {
30 name: "single loader with options",
31
32 from: {
33 test: /\.jsx?$/,
34 loader: "babel-loader",
35 options: {},
36 },
37 to: {
38 test: /\.jsx?$/,
39 use: [
40 "speed-measure-webpack-plugin/loader",
41 { loader: "babel-loader", options: {} },
42 ],
43 },
44 },
45
46 {
47 name: "single complex use",
48
49 from: {
50 test: /\.jsx?$/,
51 use: [{ loader: "babel-loader", options: {} }],
52 },
53 to: {
54 test: /\.jsx?$/,
55 use: [
56 "speed-measure-webpack-plugin/loader",
57 { loader: "babel-loader", options: {} },
58 ],
59 },
60 },
61
62 {
63 name: "multiple uses",
64
65 from: {
66 test: /\.jsx?$/,
67 use: [{ loader: "babel-loader", options: {} }, "thread-loader"],
68 },
69 to: {
70 test: /\.jsx?$/,
71 use: [
72 "speed-measure-webpack-plugin/loader",
73 { loader: "babel-loader", options: {} },
74 "thread-loader",
75 ],
76 },
77 },
78
79 {
80 name: "oneOf",
81
82 from: {
83 test: /\.jsx?$/,
84 oneOf: [{ use: ["babel-loader"] }, { use: ["thread-loader"] }],
85 },
86 to: {
87 test: /\.jsx?$/,
88 oneOf: [
89 {
90 use: ["speed-measure-webpack-plugin/loader", "babel-loader"],
91 },
92 {
93 use: ["speed-measure-webpack-plugin/loader", "thread-loader"],
94 },
95 ],
96 },
97 },
98
99 {
100 name: "array",
101 from: [
102 {
103 test: /\.jsx?$/,
104 loader: "babel-loader",
105 },
106 {
107 test: /\.css$/,
108 loader: "css-loader",
109 },
110 ],
111 to: [
112 {
113 test: /\.jsx?$/,
114 use: ["speed-measure-webpack-plugin/loader", "babel-loader"],
115 },
116 {
117 test: /\.css$/,
118 use: ["speed-measure-webpack-plugin/loader", "css-loader"],
119 },
120 ],
121 },
122 ];
123
124 expectedMappings.forEach((mapping) => {
125 it('should create the expected mapping for "' + mapping.name + '"', () => {
126 expect(prependLoader(mapping.from)).toEqual(mapping.to);
127 });
128 });
129});