-
-
Notifications
You must be signed in to change notification settings - Fork 503
Expand file tree
/
Copy pathparseUtils.js
More file actions
35 lines (29 loc) · 1.19 KB
/
parseUtils.js
File metadata and controls
35 lines (29 loc) · 1.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
const fs = require("node:fs");
const path = require("node:path");
const { parseBundle } = require("../src/parseUtils");
const BUNDLES_DIR = path.resolve(__dirname, "./bundles");
describe("parseBundle", () => {
const bundles = fs
.readdirSync(BUNDLES_DIR)
.filter((filename) => filename.endsWith(".js"))
.map((filename) => filename.replace(/\.js$/u, ""));
for (const bundleName of bundles.filter((bundleName) =>
bundleName.startsWith("valid"),
)) {
it(`should parse ${bundleName.toLocaleLowerCase()}`, () => {
const bundleFile = `${BUNDLES_DIR}/${bundleName}.js`;
const bundle = parseBundle(bundleFile);
const expectedModules = JSON.parse(
fs.readFileSync(`${BUNDLES_DIR}/${bundleName}.modules.json`),
);
expect(bundle.src).toBe(fs.readFileSync(bundleFile, "utf8"));
expect(bundle.modules).toEqual(expectedModules.modules);
});
}
it("should parse invalid bundle and return it's content and empty modules hash", () => {
const bundleFile = `${BUNDLES_DIR}/invalidBundle.js`;
const bundle = parseBundle(bundleFile);
expect(bundle.src).toBe(fs.readFileSync(bundleFile, "utf8"));
expect(bundle.modules).toEqual({});
});
});