Skip to content

Commit

Permalink
test: added
Browse files Browse the repository at this point in the history
  • Loading branch information
alexander-akait committed Jun 15, 2023
1 parent bf28e94 commit 5d4a7d2
Show file tree
Hide file tree
Showing 13 changed files with 171 additions and 2,262 deletions.
2,262 changes: 0 additions & 2,262 deletions test/__snapshots__/ConfigTestCases.basictest.js.snap

This file was deleted.

8 changes: 8 additions & 0 deletions test/configCases/layer/context-and-css/dark.js
@@ -0,0 +1,8 @@
it("should contain only black", function() {
require.context('./test1', true, /\.less$/);
require('./test2/shared.less');
/*const style = getComputedStyle(document.body);
expect(style.color).toBe(" black");
expect(style.background).toBe(" black");*/
});
9 changes: 9 additions & 0 deletions test/configCases/layer/context-and-css/light.js
@@ -0,0 +1,9 @@
require.context('./test1', true, /\.less$/);
require('./test2/shared.less');

it("should contain only white", function() {
const style = getComputedStyle(document.body);

expect(style.color).toBe(" white");
expect(style.background).toBe(" white");
});
11 changes: 11 additions & 0 deletions test/configCases/layer/context-and-css/test.config.js
@@ -0,0 +1,11 @@
module.exports = {
moduleScope(scope) {
const light = scope.window.document.createElement("link");
light.rel = "stylesheet";
light.href = "light.css";
scope.window.document.head.appendChild(light);
},
findBundle: function () {
return ["./light.js"];
}
};
3 changes: 3 additions & 0 deletions test/configCases/layer/context-and-css/test1/shared.less
@@ -0,0 +1,3 @@
body {
color: @color;
}
3 changes: 3 additions & 0 deletions test/configCases/layer/context-and-css/test2/shared.less
@@ -0,0 +1,3 @@
body {
background: @color;
}
47 changes: 47 additions & 0 deletions test/configCases/layer/context-and-css/webpack.config.js
@@ -0,0 +1,47 @@
/** @type {import("../../../../").Configuration} */
module.exports = {
target: "web",
entry: {
light: { import: "./light.js", layer: "light" },
dark: { import: "./dark.js", layer: "dark" }
},
experiments: {
layers: true,
css: true
},
output: {
filename: "[name].js"
},
module: {
rules: [
{
test: /\.less$/i,
type: "css/auto",
oneOf: [
{
issuerLayer: "light",
use: [
{
loader: "less-loader",
options: {
additionalData: "@color: white;"
}
}
]
},
{
issuerLayer: "dark",
use: [
{
loader: "less-loader",
options: {
additionalData: "@color: black;"
}
}
]
}
]
}
]
}
};
12 changes: 12 additions & 0 deletions test/configCases/layer/context/dark.js
@@ -0,0 +1,12 @@
require.context('./test1', true, /\.less$/);
require('./test2/shared.less');

it("should contain only black", function() {
const fs = require("fs");
const path = require("path");

const source = fs.readFileSync(path.join(__dirname, "dark.css"), "utf-8");

expect(source.match(/black/g)).toHaveLength(2);
expect(source).not.toContain("white");
});
12 changes: 12 additions & 0 deletions test/configCases/layer/context/light.js
@@ -0,0 +1,12 @@
require.context('./test1', true, /\.less$/);
require('./test2/shared.less');

it("should contain only white", function() {
const fs = require("fs");
const path = require("path");

const source = fs.readFileSync(path.join(__dirname, "light.css"), "utf-8");

expect(source.match(/white/g)).toHaveLength(2);
expect(source).not.toContain("black");
});
5 changes: 5 additions & 0 deletions test/configCases/layer/context/test.config.js
@@ -0,0 +1,5 @@
module.exports = {
findBundle: function () {
return ["./light.js", "./dark.js"];
}
};
3 changes: 3 additions & 0 deletions test/configCases/layer/context/test1/shared.less
@@ -0,0 +1,3 @@
.test1 {
color: @color;
}
3 changes: 3 additions & 0 deletions test/configCases/layer/context/test2/shared.less
@@ -0,0 +1,3 @@
.test2 {
color: @color;
}
55 changes: 55 additions & 0 deletions test/configCases/layer/context/webpack.config.js
@@ -0,0 +1,55 @@
const MiniCssExtractPlugin = require("mini-css-extract-plugin");

/** @type {import("../../../../").Configuration} */
module.exports = {
entry: {
light: { import: "./light.js", layer: "light" },
dark: { import: "./dark.js", layer: "dark" }
},
experiments: {
layers: true
},
output: {
filename: "[name].js"
},
plugins: [
new MiniCssExtractPlugin({
filename: "[name].css"
})
],
module: {
rules: [
{
test: /\.less$/i,
oneOf: [
{
issuerLayer: "light",
use: [
MiniCssExtractPlugin.loader,
"css-loader",
{
loader: "less-loader",
options: {
additionalData: "@color: white;"
}
}
]
},
{
issuerLayer: "dark",
use: [
MiniCssExtractPlugin.loader,
"css-loader",
{
loader: "less-loader",
options: {
additionalData: "@color: black;"
}
}
]
}
]
}
]
}
};

0 comments on commit 5d4a7d2

Please sign in to comment.