You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
2.3 KiB
113 lines
2.3 KiB
const { prependLoader } = require("./utils");
|
|
|
|
describe("prependLoader", () => {
|
|
const expectedMappings = [
|
|
{
|
|
name: "single loader",
|
|
from: {
|
|
test: /\.jsx?$/,
|
|
loader: "babel-loader",
|
|
},
|
|
to: {
|
|
test: /\.jsx?$/,
|
|
use: ["speed-measure-webpack-plugin/loader", "babel-loader"],
|
|
},
|
|
},
|
|
|
|
{
|
|
name: "single use",
|
|
from: {
|
|
test: /\.jsx?$/,
|
|
use: ["babel-loader"],
|
|
},
|
|
to: {
|
|
test: /\.jsx?$/,
|
|
use: ["speed-measure-webpack-plugin/loader", "babel-loader"],
|
|
},
|
|
},
|
|
|
|
{
|
|
name: "single complex use",
|
|
|
|
from: {
|
|
test: /\.jsx?$/,
|
|
use: [{ loader: "babel-loader", options: {} }],
|
|
},
|
|
to: {
|
|
test: /\.jsx?$/,
|
|
use: [
|
|
"speed-measure-webpack-plugin/loader",
|
|
{ loader: "babel-loader", options: {} },
|
|
],
|
|
},
|
|
},
|
|
|
|
{
|
|
name: "multiple uses",
|
|
|
|
from: {
|
|
test: /\.jsx?$/,
|
|
use: [{ loader: "babel-loader", options: {} }, "thread-loader"],
|
|
},
|
|
to: {
|
|
test: /\.jsx?$/,
|
|
use: [
|
|
"speed-measure-webpack-plugin/loader",
|
|
{ loader: "babel-loader", options: {} },
|
|
"thread-loader",
|
|
],
|
|
},
|
|
},
|
|
|
|
{
|
|
name: "oneOf",
|
|
|
|
from: {
|
|
test: /\.jsx?$/,
|
|
oneOf: [{ use: ["babel-loader"] }, { use: ["thread-loader"] }],
|
|
},
|
|
to: {
|
|
test: /\.jsx?$/,
|
|
oneOf: [
|
|
{
|
|
use: ["speed-measure-webpack-plugin/loader", "babel-loader"],
|
|
},
|
|
{
|
|
use: ["speed-measure-webpack-plugin/loader", "thread-loader"],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
|
|
{
|
|
name: "array",
|
|
from: [
|
|
{
|
|
test: /\.jsx?$/,
|
|
loader: "babel-loader",
|
|
},
|
|
{
|
|
test: /\.css$/,
|
|
loader: "css-loader",
|
|
},
|
|
],
|
|
to: [
|
|
{
|
|
test: /\.jsx?$/,
|
|
use: ["speed-measure-webpack-plugin/loader", "babel-loader"],
|
|
},
|
|
{
|
|
test: /\.css$/,
|
|
use: ["speed-measure-webpack-plugin/loader", "css-loader"],
|
|
},
|
|
],
|
|
},
|
|
];
|
|
|
|
expectedMappings.forEach(mapping => {
|
|
it('should create the expected mapping for "' + mapping.name + '"', () => {
|
|
expect(prependLoader(mapping.from)).toEqual(mapping.to);
|
|
});
|
|
});
|
|
});
|