1 | const { prependLoader } = require("./utils");
|
2 |
|
3 | describe("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 | });
|