Rewrite esbuild postcss plugin
Signed-off-by: gearnode <bryan@frimin.fr>
This commit is contained in:
67
packages/esbuild-plugin-postcss/tests/esbuild.test.mjs
Normal file
67
packages/esbuild-plugin-postcss/tests/esbuild.test.mjs
Normal file
@@ -0,0 +1,67 @@
|
||||
import { strict as assert } from "node:assert";
|
||||
import path from "node:path";
|
||||
import fs from "node:fs/promises";
|
||||
import os from "node:os";
|
||||
import * as esbuild from "esbuild";
|
||||
import postcssPlugin from "../src/index.mjs";
|
||||
import postcss from "postcss";
|
||||
import autoprefixer from "autoprefixer";
|
||||
|
||||
// Create a temporary directory for our test
|
||||
const tmpDir = await fs.mkdtemp(
|
||||
path.join(os.tmpdir(), "esbuild-postcss-test-"),
|
||||
);
|
||||
const inputFile = path.join(tmpDir, "input.css");
|
||||
const outputFile = path.join(tmpDir, "output.js");
|
||||
|
||||
// Create a simple CSS file for testing
|
||||
const cssContent = `
|
||||
.example {
|
||||
display: flex;
|
||||
user-select: none;
|
||||
}
|
||||
`;
|
||||
|
||||
// Write the test CSS file
|
||||
await fs.writeFile(inputFile, cssContent);
|
||||
|
||||
// Test the plugin with autoprefixer
|
||||
try {
|
||||
console.log("Testing PostCSS plugin with autoprefixer...");
|
||||
|
||||
const result = await esbuild.build({
|
||||
entryPoints: [inputFile],
|
||||
bundle: true,
|
||||
outfile: outputFile,
|
||||
plugins: [
|
||||
postcssPlugin({
|
||||
plugins: [autoprefixer],
|
||||
}),
|
||||
],
|
||||
});
|
||||
|
||||
console.log("Build completed successfully");
|
||||
|
||||
const outputContent = await fs.readFile(outputFile, "utf8");
|
||||
|
||||
assert(
|
||||
outputContent.includes("-webkit-user-select"),
|
||||
"Expected -webkit-user-select to be added by autoprefixer",
|
||||
);
|
||||
assert(
|
||||
outputContent.includes("-moz-user-select"),
|
||||
"Expected -moz-user-select to be added by autoprefixer",
|
||||
);
|
||||
|
||||
console.log("Test passed: Autoprefixer correctly processed CSS");
|
||||
} catch (error) {
|
||||
console.error("Test failed:", error);
|
||||
process.exit(1);
|
||||
} finally {
|
||||
try {
|
||||
await fs.rm(tmpDir, { recursive: true, force: true });
|
||||
console.log("Cleaned up temporary test files");
|
||||
} catch (cleanupError) {
|
||||
console.warn("Warning: Failed to clean up temporary files:", cleanupError);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user