/
resolveLinkRelations.test.mjs
68 lines (53 loc) · 2 KB
/
resolveLinkRelations.test.mjs
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
// @ts-check
import test from "node:test";
import assert from "node:assert/strict";
import resolveLinkRelations from "./resolveLinkRelations.mjs";
test("resolveLinkRelations", async (t) => {
await t.test("works", async () => {
const resolvedModules = await resolveLinkRelations({
appPath: "test-fixtures",
url: "/a.mjs",
});
assert.ok(Array.isArray(resolvedModules));
assert.ok(resolvedModules.includes("/c.mjs"));
assert.ok(resolvedModules.includes("/d.mjs"));
assert.ok(resolvedModules.includes("/lib/aa.mjs"));
assert.ok(resolvedModules.includes("/lib/bb.mjs"));
// Should not resolve dynamic imports
assert.ok(!resolvedModules.includes("/lib/cc.mjs"));
assert.equal(resolvedModules.length, 4);
const resolvedModulesCached = await resolveLinkRelations({
appPath: "test-fixtures",
url: "/a.mjs",
});
assert.ok(Array.isArray(resolvedModulesCached));
assert.ok(resolvedModulesCached.includes("/c.mjs"));
assert.ok(resolvedModulesCached.includes("/d.mjs"));
assert.ok(resolvedModulesCached.includes("/lib/aa.mjs"));
assert.ok(resolvedModulesCached.includes("/lib/bb.mjs"));
// Should not resolve dynamic imports
assert.ok(!resolvedModulesCached.includes("/lib/cc.mjs"));
assert.equal(resolvedModulesCached.length, 4);
});
await t.test("can't reach outside of appPath", async () => {
const resolvedModules = await resolveLinkRelations({
appPath: "test-fixtures",
url: "../../a.mjs",
});
assert.equal(resolvedModules, undefined);
});
await t.test("module without imports", async () => {
const resolvedModules = await resolveLinkRelations({
appPath: "test-fixtures",
url: "/d.mjs",
});
assert.equal(resolvedModules, undefined);
});
await t.test("module doesn't exist", async () => {
const resolvedModules = await resolveLinkRelations({
appPath: "test-fixtures",
url: "/does-not-exist.mjs",
});
assert.equal(resolvedModules, undefined);
});
});