dirsql 0.3.36 → 0.3.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/dirsql.js +1 -1
- package/dist/cli/dirsql.js.map +1 -1
- package/dist/cli/interpret/{buildTables.d.ts → build-tables.d.ts} +1 -1
- package/dist/cli/interpret/build-tables.d.ts.map +1 -0
- package/dist/cli/interpret/{buildTables.js → build-tables.js} +1 -1
- package/dist/cli/interpret/build-tables.js.map +1 -0
- package/dist/cli/interpret/{dispatchExtract.d.ts → dispatch-extract.d.ts} +1 -1
- package/dist/cli/interpret/dispatch-extract.d.ts.map +1 -0
- package/dist/cli/interpret/{dispatchExtract.js → dispatch-extract.js} +2 -2
- package/dist/cli/interpret/dispatch-extract.js.map +1 -0
- package/dist/cli/interpret/{errMessage.d.ts → err-message.d.ts} +1 -1
- package/dist/cli/interpret/err-message.d.ts.map +1 -0
- package/dist/cli/interpret/{errMessage.js → err-message.js} +1 -1
- package/dist/cli/interpret/err-message.js.map +1 -0
- package/dist/cli/interpret/interpret.js +5 -5
- package/dist/cli/interpret/interpret.js.map +1 -1
- package/dist/cli/interpret/{loadApp.d.ts → load-app.d.ts} +1 -1
- package/dist/cli/interpret/load-app.d.ts.map +1 -0
- package/dist/cli/interpret/{loadApp.js → load-app.js} +1 -1
- package/dist/cli/interpret/load-app.js.map +1 -0
- package/dist/cli/interpret/{writeMessage.d.ts → write-message.d.ts} +1 -1
- package/dist/cli/interpret/write-message.d.ts.map +1 -0
- package/dist/cli/interpret/{writeMessage.js → write-message.js} +1 -1
- package/dist/cli/interpret/write-message.js.map +1 -0
- package/dist/cli/main.js +1 -1
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/{platformKey.d.ts → platform-key.d.ts} +1 -1
- package/dist/cli/platform-key.d.ts.map +1 -0
- package/dist/cli/{platformKey.js → platform-key.js} +1 -1
- package/dist/cli/platform-key.js.map +1 -0
- package/dist/cli/{resolveBinary.d.ts → resolve-binary.d.ts} +1 -1
- package/dist/cli/resolve-binary.d.ts.map +1 -0
- package/dist/cli/{resolveBinary.js → resolve-binary.js} +2 -2
- package/dist/cli/resolve-binary.js.map +1 -0
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/{loadNativeCore.d.ts → load-native-core.d.ts} +1 -1
- package/dist/load-native-core.d.ts.map +1 -0
- package/dist/{loadNativeCore.js → load-native-core.js} +1 -1
- package/dist/load-native-core.js.map +1 -0
- package/dist/{resolveConfig.d.ts → resolve-config.d.ts} +1 -1
- package/dist/resolve-config.d.ts.map +1 -0
- package/dist/{resolveConfig.js → resolve-config.js} +1 -1
- package/dist/resolve-config.js.map +1 -0
- package/docs/api/index.md +5 -2
- package/package.json +21 -35
- package/dist/cli/die.test.d.ts +0 -2
- package/dist/cli/die.test.d.ts.map +0 -1
- package/dist/cli/die.test.js +0 -29
- package/dist/cli/die.test.js.map +0 -1
- package/dist/cli/interpret/buildTables.d.ts.map +0 -1
- package/dist/cli/interpret/buildTables.js.map +0 -1
- package/dist/cli/interpret/buildTables.test.d.ts +0 -2
- package/dist/cli/interpret/buildTables.test.d.ts.map +0 -1
- package/dist/cli/interpret/buildTables.test.js +0 -60
- package/dist/cli/interpret/buildTables.test.js.map +0 -1
- package/dist/cli/interpret/dispatchExtract.d.ts.map +0 -1
- package/dist/cli/interpret/dispatchExtract.js.map +0 -1
- package/dist/cli/interpret/dispatchExtract.test.d.ts +0 -2
- package/dist/cli/interpret/dispatchExtract.test.d.ts.map +0 -1
- package/dist/cli/interpret/dispatchExtract.test.js +0 -75
- package/dist/cli/interpret/dispatchExtract.test.js.map +0 -1
- package/dist/cli/interpret/errMessage.d.ts.map +0 -1
- package/dist/cli/interpret/errMessage.js.map +0 -1
- package/dist/cli/interpret/errMessage.test.d.ts +0 -2
- package/dist/cli/interpret/errMessage.test.d.ts.map +0 -1
- package/dist/cli/interpret/errMessage.test.js +0 -23
- package/dist/cli/interpret/errMessage.test.js.map +0 -1
- package/dist/cli/interpret/interpret.test.d.ts +0 -2
- package/dist/cli/interpret/interpret.test.d.ts.map +0 -1
- package/dist/cli/interpret/interpret.test.js +0 -152
- package/dist/cli/interpret/interpret.test.js.map +0 -1
- package/dist/cli/interpret/loadApp.d.ts.map +0 -1
- package/dist/cli/interpret/loadApp.js.map +0 -1
- package/dist/cli/interpret/loadApp.test.d.ts +0 -2
- package/dist/cli/interpret/loadApp.test.d.ts.map +0 -1
- package/dist/cli/interpret/loadApp.test.js +0 -33
- package/dist/cli/interpret/loadApp.test.js.map +0 -1
- package/dist/cli/interpret/writeMessage.d.ts.map +0 -1
- package/dist/cli/interpret/writeMessage.js.map +0 -1
- package/dist/cli/interpret/writeMessage.test.d.ts +0 -2
- package/dist/cli/interpret/writeMessage.test.d.ts.map +0 -1
- package/dist/cli/interpret/writeMessage.test.js +0 -25
- package/dist/cli/interpret/writeMessage.test.js.map +0 -1
- package/dist/cli/main.test.d.ts +0 -2
- package/dist/cli/main.test.d.ts.map +0 -1
- package/dist/cli/main.test.js +0 -109
- package/dist/cli/main.test.js.map +0 -1
- package/dist/cli/platformKey.d.ts.map +0 -1
- package/dist/cli/platformKey.js.map +0 -1
- package/dist/cli/platformKey.test.d.ts +0 -2
- package/dist/cli/platformKey.test.d.ts.map +0 -1
- package/dist/cli/platformKey.test.js +0 -36
- package/dist/cli/platformKey.test.js.map +0 -1
- package/dist/cli/resolveBinary.d.ts.map +0 -1
- package/dist/cli/resolveBinary.js.map +0 -1
- package/dist/cli/resolveBinary.test.d.ts +0 -2
- package/dist/cli/resolveBinary.test.d.ts.map +0 -1
- package/dist/cli/resolveBinary.test.js +0 -54
- package/dist/cli/resolveBinary.test.js.map +0 -1
- package/dist/loadNativeCore.d.ts.map +0 -1
- package/dist/loadNativeCore.js.map +0 -1
- package/dist/loadNativeCore.test.d.ts +0 -2
- package/dist/loadNativeCore.test.d.ts.map +0 -1
- package/dist/loadNativeCore.test.js +0 -51
- package/dist/loadNativeCore.test.js.map +0 -1
- package/dist/platforms.test.d.ts +0 -2
- package/dist/platforms.test.d.ts.map +0 -1
- package/dist/platforms.test.js +0 -84
- package/dist/platforms.test.js.map +0 -1
- package/dist/resolveConfig.d.ts.map +0 -1
- package/dist/resolveConfig.js.map +0 -1
- package/dist/resolveConfig.test.d.ts +0 -2
- package/dist/resolveConfig.test.d.ts.map +0 -1
- package/dist/resolveConfig.test.js +0 -206
- package/dist/resolveConfig.test.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dispatchExtract.js","sourceRoot":"","sources":["../../../src/cli/interpret/dispatchExtract.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,sEAAsE;AACtE,mEAAmE;AACnE,mBAAmB;AAGnB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAiB7C,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAmB,EACnB,MAA6B;IAE7B,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,EAAE;YACF,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,kBAAkB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;SAChD,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAc,CAAC,CAAC;QACjD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAChD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dispatchExtract.test.d.ts","sourceRoot":"","sources":["../../../src/cli/interpret/dispatchExtract.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { dispatchExtract } from "./dispatchExtract.js";
|
|
3
|
-
function tableMap(entries) {
|
|
4
|
-
return new Map(entries.map(([n, extract]) => [
|
|
5
|
-
n,
|
|
6
|
-
{
|
|
7
|
-
ddl: `CREATE TABLE ${n} (x TEXT)`,
|
|
8
|
-
glob: "*",
|
|
9
|
-
extract,
|
|
10
|
-
},
|
|
11
|
-
]));
|
|
12
|
-
}
|
|
13
|
-
describe("dispatchExtract", () => {
|
|
14
|
-
it("returns ok=true with the rows the sync extract returned", async () => {
|
|
15
|
-
const tables = tableMap([["papers", (p) => [{ row: p }]]]);
|
|
16
|
-
const out = await dispatchExtract({ type: "extract", id: 1, table: "papers", path: "/a" }, tables);
|
|
17
|
-
expect(out).toEqual({
|
|
18
|
-
type: "result",
|
|
19
|
-
id: 1,
|
|
20
|
-
ok: true,
|
|
21
|
-
rows: [{ row: "/a" }],
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
it("echoes the request id verbatim on success", async () => {
|
|
25
|
-
const tables = tableMap([["t", () => []]]);
|
|
26
|
-
const out = await dispatchExtract({ type: "extract", id: 99, table: "t", path: "/" }, tables);
|
|
27
|
-
expect(out.id).toBe(99);
|
|
28
|
-
});
|
|
29
|
-
it("returns ok=false with a JSON-encoded name when the table is unknown", async () => {
|
|
30
|
-
const out = await dispatchExtract({ type: "extract", id: 5, table: "ghost", path: "/" }, tableMap([]));
|
|
31
|
-
expect(out.ok).toBe(false);
|
|
32
|
-
expect(out.error).toContain('"ghost"');
|
|
33
|
-
});
|
|
34
|
-
it("echoes the request id verbatim on unknown-table failure", async () => {
|
|
35
|
-
const out = await dispatchExtract({ type: "extract", id: 17, table: "ghost", path: "/" }, tableMap([]));
|
|
36
|
-
expect(out.id).toBe(17);
|
|
37
|
-
});
|
|
38
|
-
it("returns ok=false with the message when a sync extract throws", async () => {
|
|
39
|
-
const tables = tableMap([
|
|
40
|
-
[
|
|
41
|
-
"papers",
|
|
42
|
-
() => {
|
|
43
|
-
throw new Error("synthetic");
|
|
44
|
-
},
|
|
45
|
-
],
|
|
46
|
-
]);
|
|
47
|
-
const out = await dispatchExtract({ type: "extract", id: 7, table: "papers", path: "/" }, tables);
|
|
48
|
-
expect(out).toEqual({
|
|
49
|
-
type: "result",
|
|
50
|
-
id: 7,
|
|
51
|
-
ok: false,
|
|
52
|
-
error: "synthetic",
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
it("treats a missing table field as unknown table", async () => {
|
|
56
|
-
const out = await dispatchExtract({ type: "extract", id: 1, path: "/" }, tableMap([["t", () => []]]));
|
|
57
|
-
expect(out.ok).toBe(false);
|
|
58
|
-
expect(out.error).toMatch(/unknown table/);
|
|
59
|
-
});
|
|
60
|
-
it("passes the request path to the extract callback", async () => {
|
|
61
|
-
const seen = [];
|
|
62
|
-
const tables = tableMap([
|
|
63
|
-
[
|
|
64
|
-
"t",
|
|
65
|
-
(p) => {
|
|
66
|
-
seen.push(p);
|
|
67
|
-
return [];
|
|
68
|
-
},
|
|
69
|
-
],
|
|
70
|
-
]);
|
|
71
|
-
await dispatchExtract({ type: "extract", id: 1, table: "t", path: "/abs/x.json" }, tables);
|
|
72
|
-
expect(seen).toEqual(["/abs/x.json"]);
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
//# sourceMappingURL=dispatchExtract.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dispatchExtract.test.js","sourceRoot":"","sources":["../../../src/cli/interpret/dispatchExtract.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errMessage.d.ts","sourceRoot":"","sources":["../../../src/cli/interpret/errMessage.ts"],"names":[],"mappings":"AAIA,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAE7C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errMessage.js","sourceRoot":"","sources":["../../../src/cli/interpret/errMessage.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,kEAAkE;AAClE,yBAAyB;AAEzB,MAAM,UAAU,UAAU,CAAC,CAAU;IACnC,OAAO,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errMessage.test.d.ts","sourceRoot":"","sources":["../../../src/cli/interpret/errMessage.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { errMessage } from "./errMessage.js";
|
|
3
|
-
describe("errMessage", () => {
|
|
4
|
-
it("returns Error.message when the value is an Error", () => {
|
|
5
|
-
expect(errMessage(new Error("boom"))).toBe("boom");
|
|
6
|
-
});
|
|
7
|
-
it("returns Error.message for a subclassed Error", () => {
|
|
8
|
-
expect(errMessage(new TypeError("bad type"))).toBe("bad type");
|
|
9
|
-
});
|
|
10
|
-
it("coerces a string to itself", () => {
|
|
11
|
-
expect(errMessage("plain")).toBe("plain");
|
|
12
|
-
});
|
|
13
|
-
it("coerces null to 'null'", () => {
|
|
14
|
-
expect(errMessage(null)).toBe("null");
|
|
15
|
-
});
|
|
16
|
-
it("coerces a number via String()", () => {
|
|
17
|
-
expect(errMessage(42)).toBe("42");
|
|
18
|
-
});
|
|
19
|
-
it("coerces a plain object via String()", () => {
|
|
20
|
-
expect(errMessage({})).toBe("[object Object]");
|
|
21
|
-
});
|
|
22
|
-
});
|
|
23
|
-
//# sourceMappingURL=errMessage.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errMessage.test.js","sourceRoot":"","sources":["../../../src/cli/interpret/errMessage.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interpret.test.d.ts","sourceRoot":"","sources":["../../../src/cli/interpret/interpret.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
import { afterEach, beforeEach, describe, expect, it, vi, } from "vitest";
|
|
2
|
-
import { buildTables } from "./buildTables.js";
|
|
3
|
-
import { dispatchExtract } from "./dispatchExtract.js";
|
|
4
|
-
import { interpret } from "./interpret.js";
|
|
5
|
-
import { loadApp } from "./loadApp.js";
|
|
6
|
-
import { writeMessage } from "./writeMessage.js";
|
|
7
|
-
// Every collaborator is mocked so the test isolates `interpret`'s glue logic.
|
|
8
|
-
// `node:readline`'s `createInterface` is faked to return an async iterable of
|
|
9
|
-
// lines directly -- this stands in for the line-buffered read over stdin, so
|
|
10
|
-
// the test never needs a real `Readable` stream.
|
|
11
|
-
vi.mock("./buildTables.js");
|
|
12
|
-
vi.mock("./dispatchExtract.js");
|
|
13
|
-
vi.mock("./loadApp.js");
|
|
14
|
-
vi.mock("./writeMessage.js");
|
|
15
|
-
vi.mock("node:readline", async () => ({
|
|
16
|
-
...(await vi.importActual("node:readline")),
|
|
17
|
-
createInterface: vi.fn(),
|
|
18
|
-
}));
|
|
19
|
-
// Imported after the mock so we get the mocked module.
|
|
20
|
-
const { createInterface } = await import("node:readline");
|
|
21
|
-
function fakeApp(overrides = {}) {
|
|
22
|
-
const app = {
|
|
23
|
-
ready: Promise.resolve(),
|
|
24
|
-
toJSON: () => ({ root: "/x" }),
|
|
25
|
-
_options: { tables: [] },
|
|
26
|
-
...overrides,
|
|
27
|
-
};
|
|
28
|
-
return app;
|
|
29
|
-
}
|
|
30
|
-
// Fake the readline interface as an async iterable yielding the given lines.
|
|
31
|
-
function stubLines(lines) {
|
|
32
|
-
vi.mocked(createInterface).mockReturnValue((async function* () {
|
|
33
|
-
for (const l of lines) {
|
|
34
|
-
yield l;
|
|
35
|
-
}
|
|
36
|
-
// biome-ignore lint/suspicious/noExplicitAny: minimal readline stub
|
|
37
|
-
})());
|
|
38
|
-
}
|
|
39
|
-
describe("interpret", () => {
|
|
40
|
-
let stderrWrite;
|
|
41
|
-
beforeEach(() => {
|
|
42
|
-
stderrWrite = vi.fn();
|
|
43
|
-
vi.stubGlobal("process", {
|
|
44
|
-
...process,
|
|
45
|
-
stderr: { write: stderrWrite },
|
|
46
|
-
});
|
|
47
|
-
stubLines([]);
|
|
48
|
-
vi.mocked(writeMessage).mockImplementation(() => { });
|
|
49
|
-
vi.mocked(buildTables).mockReturnValue(new Map());
|
|
50
|
-
vi.mocked(dispatchExtract).mockResolvedValue({
|
|
51
|
-
type: "result",
|
|
52
|
-
id: 1,
|
|
53
|
-
ok: true,
|
|
54
|
-
rows: [],
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
afterEach(() => {
|
|
58
|
-
vi.unstubAllGlobals();
|
|
59
|
-
vi.restoreAllMocks();
|
|
60
|
-
});
|
|
61
|
-
describe("startup", () => {
|
|
62
|
-
it("returns 1 and writes to stderr when configPath is empty", async () => {
|
|
63
|
-
expect(await interpret("")).toBe(1);
|
|
64
|
-
expect(stderrWrite).toHaveBeenCalledExactlyOnceWith("dirsql interpret: expected one config path, got 0\n");
|
|
65
|
-
});
|
|
66
|
-
it("returns 1 and writes a dirsql-prefixed line when loadApp throws", async () => {
|
|
67
|
-
vi.mocked(loadApp).mockRejectedValue(new Error("no app"));
|
|
68
|
-
expect(await interpret("bad.mjs")).toBe(1);
|
|
69
|
-
expect(stderrWrite).toHaveBeenCalledExactlyOnceWith("dirsql interpret: no app\n");
|
|
70
|
-
});
|
|
71
|
-
it("coerces non-Error throws via String() in the stderr message", async () => {
|
|
72
|
-
vi.mocked(loadApp).mockRejectedValue("plain string");
|
|
73
|
-
expect(await interpret("bad.mjs")).toBe(1);
|
|
74
|
-
expect(stderrWrite).toHaveBeenCalledExactlyOnceWith("dirsql interpret: plain string\n");
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
describe("handshake", () => {
|
|
78
|
-
it("writes one config message with app.toJSON() as state", async () => {
|
|
79
|
-
const app = fakeApp({
|
|
80
|
-
toJSON: () => ({ root: "/here", tables: [], ignore: [], persist: false }),
|
|
81
|
-
});
|
|
82
|
-
vi.mocked(loadApp).mockResolvedValue(app);
|
|
83
|
-
await interpret("good.mjs");
|
|
84
|
-
expect(writeMessage).toHaveBeenCalledWith({
|
|
85
|
-
type: "config",
|
|
86
|
-
state: { root: "/here", tables: [], ignore: [], persist: false },
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
it("attaches a no-op catch to app.ready to swallow background-scan failures", async () => {
|
|
90
|
-
// Verify the structural property -- interpret CALLS `.catch` on
|
|
91
|
-
// `app.ready` -- without exercising the runtime side effect
|
|
92
|
-
// (which fights vitest's own unhandled-rejection handling).
|
|
93
|
-
const catchSpy = vi.fn(() => Promise.resolve());
|
|
94
|
-
const app = fakeApp({
|
|
95
|
-
ready: { catch: catchSpy },
|
|
96
|
-
});
|
|
97
|
-
vi.mocked(loadApp).mockResolvedValue(app);
|
|
98
|
-
await interpret("good.mjs");
|
|
99
|
-
expect(catchSpy).toHaveBeenCalledOnce();
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
describe("extract loop", () => {
|
|
103
|
-
it("dispatches one extract request and writes the response", async () => {
|
|
104
|
-
vi.mocked(loadApp).mockResolvedValue(fakeApp());
|
|
105
|
-
const req = { type: "extract", id: 1, table: "t", path: "/a" };
|
|
106
|
-
stubLines([JSON.stringify(req)]);
|
|
107
|
-
const expected = {
|
|
108
|
-
type: "result",
|
|
109
|
-
id: 1,
|
|
110
|
-
ok: true,
|
|
111
|
-
rows: [{ row: "/a" }],
|
|
112
|
-
};
|
|
113
|
-
vi.mocked(dispatchExtract).mockResolvedValue(expected);
|
|
114
|
-
expect(await interpret("good.mjs")).toBe(0);
|
|
115
|
-
expect(dispatchExtract).toHaveBeenCalledWith(req, new Map());
|
|
116
|
-
// handshake first, then response
|
|
117
|
-
expect(writeMessage).toHaveBeenCalledTimes(2);
|
|
118
|
-
expect(writeMessage).toHaveBeenLastCalledWith(expected);
|
|
119
|
-
});
|
|
120
|
-
it("skips blank lines silently", async () => {
|
|
121
|
-
vi.mocked(loadApp).mockResolvedValue(fakeApp());
|
|
122
|
-
stubLines(["", " "]);
|
|
123
|
-
expect(await interpret("good.mjs")).toBe(0);
|
|
124
|
-
expect(dispatchExtract).not.toHaveBeenCalled();
|
|
125
|
-
// handshake only
|
|
126
|
-
expect(writeMessage).toHaveBeenCalledOnce();
|
|
127
|
-
});
|
|
128
|
-
it("skips malformed JSON silently", async () => {
|
|
129
|
-
vi.mocked(loadApp).mockResolvedValue(fakeApp());
|
|
130
|
-
stubLines(["not json", "{also bad"]);
|
|
131
|
-
expect(await interpret("good.mjs")).toBe(0);
|
|
132
|
-
expect(dispatchExtract).not.toHaveBeenCalled();
|
|
133
|
-
});
|
|
134
|
-
it("skips non-extract messages silently", async () => {
|
|
135
|
-
vi.mocked(loadApp).mockResolvedValue(fakeApp());
|
|
136
|
-
stubLines([JSON.stringify({ type: "ping" })]);
|
|
137
|
-
expect(await interpret("good.mjs")).toBe(0);
|
|
138
|
-
expect(dispatchExtract).not.toHaveBeenCalled();
|
|
139
|
-
});
|
|
140
|
-
it("skips a null / non-object JSON payload silently", async () => {
|
|
141
|
-
vi.mocked(loadApp).mockResolvedValue(fakeApp());
|
|
142
|
-
stubLines(["null", "42", "[]"]);
|
|
143
|
-
expect(await interpret("good.mjs")).toBe(0);
|
|
144
|
-
expect(dispatchExtract).not.toHaveBeenCalled();
|
|
145
|
-
});
|
|
146
|
-
it("returns 0 when stdin closes", async () => {
|
|
147
|
-
vi.mocked(loadApp).mockResolvedValue(fakeApp());
|
|
148
|
-
expect(await interpret("good.mjs")).toBe(0);
|
|
149
|
-
});
|
|
150
|
-
});
|
|
151
|
-
});
|
|
152
|
-
//# sourceMappingURL=interpret.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interpret.test.js","sourceRoot":"","sources":["../../../src/cli/interpret/interpret.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loadApp.d.ts","sourceRoot":"","sources":["../../../src/cli/interpret/loadApp.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAM7C,wBAAsB,OAAO,CAC3B,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAC3C,GACZ,OAAO,CAAC,MAAM,CAAC,CAQjB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loadApp.js","sourceRoot":"","sources":["../../../src/cli/interpret/loadApp.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sEAAsE;AACtE,oEAAoE;AACpE,oEAAoE;AACpE,qBAAqB;AACrB,EAAE;AACF,qEAAqE;AACrE,qEAAqE;AACrE,oBAAoB;AAEpB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,oEAAoE;AACpE,4EAA4E;AAC5E,6EAA6E;AAC7E,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,UAAkB,EAClB,WAA4D,CAAC,GAAG,EAAE,EAAE,CAClE,MAAM,CAAC,GAAG,CAAC;IAEb,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,GAAG,UAAU,gDAAgD,CAC9D,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC,OAAiB,CAAC;AAC/B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loadApp.test.d.ts","sourceRoot":"","sources":["../../../src/cli/interpret/loadApp.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it, vi } from "vitest";
|
|
2
|
-
import { loadApp } from "./loadApp.js";
|
|
3
|
-
describe("loadApp", () => {
|
|
4
|
-
it("returns the default export the importer yields", async () => {
|
|
5
|
-
const importer = vi
|
|
6
|
-
.fn()
|
|
7
|
-
.mockResolvedValue({ default: { sentinel: "value" } });
|
|
8
|
-
const app = (await loadApp("/cfg/config.mjs", importer));
|
|
9
|
-
expect(app.sentinel).toBe("value");
|
|
10
|
-
// The importer receives the file:// URL form of the config path.
|
|
11
|
-
expect(importer).toHaveBeenCalledWith(expect.stringMatching(/^file:.*config\.mjs$/));
|
|
12
|
-
});
|
|
13
|
-
it("throws a path-aware error when the module has no default export", async () => {
|
|
14
|
-
const importer = vi.fn().mockResolvedValue({ x: 1 });
|
|
15
|
-
await expect(loadApp("/cfg/no_default.mjs", importer)).rejects.toThrow(/must default-export a DirSQL instance/);
|
|
16
|
-
await expect(loadApp("/cfg/no_default.mjs", importer)).rejects.toThrow("/cfg/no_default.mjs");
|
|
17
|
-
});
|
|
18
|
-
it("propagates errors thrown during module evaluation", async () => {
|
|
19
|
-
const importer = vi.fn().mockRejectedValue(new Error("synthetic boom"));
|
|
20
|
-
await expect(loadApp("/cfg/boom.mjs", importer)).rejects.toThrow(/synthetic boom/);
|
|
21
|
-
});
|
|
22
|
-
it("rejects when the importer rejects (missing file)", async () => {
|
|
23
|
-
const importer = vi.fn().mockRejectedValue(new Error("Cannot find module"));
|
|
24
|
-
await expect(loadApp("/cfg/nope.mjs", importer)).rejects.toThrow();
|
|
25
|
-
});
|
|
26
|
-
it("defaults to the real dynamic import when no importer is injected", async () => {
|
|
27
|
-
// Exercises the default `importer` arg (a real `import()`). The path
|
|
28
|
-
// doesn't exist, so the underlying import rejects -- which is all we
|
|
29
|
-
// need to drive the default callback's single line.
|
|
30
|
-
await expect(loadApp("/no/such/dirsql.config.mjs")).rejects.toThrow();
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
//# sourceMappingURL=loadApp.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loadApp.test.js","sourceRoot":"","sources":["../../../src/cli/interpret/loadApp.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,QAAQ,GAAG,EAAE;aAChB,EAAE,EAAE;aACJ,iBAAiB,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,CAAC,MAAM,OAAO,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAEtD,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,iEAAiE;QACjE,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACnC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAC9C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACrD,MAAM,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACpE,uCAAuC,CACxC,CAAC;QACF,MAAM,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACpE,qBAAqB,CACtB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACxE,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC9D,gBAAgB,CACjB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC5E,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,qEAAqE;QACrE,qEAAqE;QACrE,oDAAoD;QACpD,MAAM,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"writeMessage.d.ts","sourceRoot":"","sources":["../../../src/cli/interpret/writeMessage.ts"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAE/C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"writeMessage.js","sourceRoot":"","sources":["../../../src/cli/interpret/writeMessage.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,qEAAqE;AACrE,qEAAqE;AACrE,oDAAoD;AAEpD,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"writeMessage.test.d.ts","sourceRoot":"","sources":["../../../src/cli/interpret/writeMessage.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
2
|
-
import { writeMessage } from "./writeMessage.js";
|
|
3
|
-
describe("writeMessage", () => {
|
|
4
|
-
let write;
|
|
5
|
-
beforeEach(() => {
|
|
6
|
-
write = vi.fn();
|
|
7
|
-
vi.stubGlobal("process", { ...process, stdout: { write } });
|
|
8
|
-
});
|
|
9
|
-
afterEach(() => {
|
|
10
|
-
vi.unstubAllGlobals();
|
|
11
|
-
});
|
|
12
|
-
it("writes one JSON line per call", () => {
|
|
13
|
-
writeMessage({ type: "config", state: {} });
|
|
14
|
-
expect(write).toHaveBeenCalledExactlyOnceWith('{"type":"config","state":{}}\n');
|
|
15
|
-
});
|
|
16
|
-
it("appends a trailing newline", () => {
|
|
17
|
-
writeMessage({ x: 1 });
|
|
18
|
-
expect((write.mock.calls[0]?.[0]).endsWith("\n")).toBe(true);
|
|
19
|
-
});
|
|
20
|
-
it("serializes nested arrays and objects deterministically", () => {
|
|
21
|
-
writeMessage({ rows: [{ a: 1 }, { a: 2 }] });
|
|
22
|
-
expect(write).toHaveBeenCalledExactlyOnceWith('{"rows":[{"a":1},{"a":2}]}\n');
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
//# sourceMappingURL=writeMessage.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"writeMessage.test.js","sourceRoot":"","sources":["../../../src/cli/interpret/writeMessage.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,KAA+B,CAAC;IAEpC,UAAU,CAAC,GAAG,EAAE;QACd,KAAK,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAChB,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,CAAC,+BAA+B,CAC3C,gCAAgC,CACjC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACvB,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAY,CAAA,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,CAAC,+BAA+B,CAC3C,8BAA8B,CAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/cli/main.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main.test.d.ts","sourceRoot":"","sources":["../../src/cli/main.test.ts"],"names":[],"mappings":""}
|
package/dist/cli/main.test.js
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
// Unit tests for `main`.
|
|
2
|
-
import { spawnSync } from "node:child_process";
|
|
3
|
-
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
4
|
-
import { die } from "./die.js";
|
|
5
|
-
import { interpret } from "./interpret/index.js";
|
|
6
|
-
import { main } from "./main.js";
|
|
7
|
-
import { resolveBinary } from "./resolveBinary.js";
|
|
8
|
-
vi.mock("./resolveBinary.js");
|
|
9
|
-
vi.mock("./die.js");
|
|
10
|
-
vi.mock("./interpret/index.js");
|
|
11
|
-
vi.mock("node:child_process");
|
|
12
|
-
const TEST_PID = 42;
|
|
13
|
-
function fakeResult(overrides) {
|
|
14
|
-
return {
|
|
15
|
-
pid: TEST_PID,
|
|
16
|
-
stdout: Buffer.from(""),
|
|
17
|
-
stderr: Buffer.from(""),
|
|
18
|
-
output: [],
|
|
19
|
-
status: 0,
|
|
20
|
-
signal: null,
|
|
21
|
-
...overrides,
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
describe("main", () => {
|
|
25
|
-
let exit;
|
|
26
|
-
let kill;
|
|
27
|
-
beforeEach(() => {
|
|
28
|
-
vi.mocked(resolveBinary).mockReturnValue("/bin/dirsql");
|
|
29
|
-
vi.mocked(die).mockImplementation(((msg) => {
|
|
30
|
-
throw new Error(`DIE: ${msg}`);
|
|
31
|
-
}));
|
|
32
|
-
exit = vi.fn().mockImplementation((code) => {
|
|
33
|
-
throw new Error(`EXIT_${code}`);
|
|
34
|
-
});
|
|
35
|
-
kill = vi.fn();
|
|
36
|
-
vi.stubGlobal("process", {
|
|
37
|
-
...process,
|
|
38
|
-
exit,
|
|
39
|
-
kill,
|
|
40
|
-
pid: TEST_PID,
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
afterEach(() => {
|
|
44
|
-
vi.unstubAllGlobals();
|
|
45
|
-
vi.resetAllMocks();
|
|
46
|
-
});
|
|
47
|
-
it("spawns the resolved binary with the argv and exits with the spawn status", async () => {
|
|
48
|
-
vi.mocked(spawnSync).mockReturnValue(fakeResult({ status: 0 }));
|
|
49
|
-
await expect(main(["--version"])).rejects.toThrow("EXIT_0");
|
|
50
|
-
expect(spawnSync).toHaveBeenCalledWith("/bin/dirsql", ["--version"], {
|
|
51
|
-
stdio: "inherit",
|
|
52
|
-
});
|
|
53
|
-
expect(exit).toHaveBeenCalledWith(0);
|
|
54
|
-
});
|
|
55
|
-
it("falls back to exit code 1 when spawn returns a null status", async () => {
|
|
56
|
-
vi.mocked(spawnSync).mockReturnValue(fakeResult({ status: null }));
|
|
57
|
-
await expect(main([])).rejects.toThrow("EXIT_1");
|
|
58
|
-
expect(exit).toHaveBeenCalledWith(1);
|
|
59
|
-
});
|
|
60
|
-
it("calls die with the spawn error message when spawn reports an error", async () => {
|
|
61
|
-
vi.mocked(spawnSync).mockReturnValue(fakeResult({ status: null, error: new Error("spawn ENOENT") }));
|
|
62
|
-
await expect(main([])).rejects.toThrow("DIE: spawn ENOENT");
|
|
63
|
-
expect(die).toHaveBeenCalledWith("spawn ENOENT", 1);
|
|
64
|
-
});
|
|
65
|
-
it("re-raises the spawned process's signal against the current pid before exiting", async () => {
|
|
66
|
-
vi.mocked(spawnSync).mockReturnValue(fakeResult({ status: 0, signal: "SIGINT" }));
|
|
67
|
-
await expect(main([])).rejects.toThrow("EXIT_0");
|
|
68
|
-
expect(kill).toHaveBeenCalledWith(TEST_PID, "SIGINT");
|
|
69
|
-
});
|
|
70
|
-
it("defaults argv to process.argv.slice(2) when called with no args", async () => {
|
|
71
|
-
vi.mocked(spawnSync).mockReturnValue(fakeResult({ status: 0 }));
|
|
72
|
-
vi.stubGlobal("process", {
|
|
73
|
-
...process,
|
|
74
|
-
argv: ["node", "dirsql", "--help"],
|
|
75
|
-
exit,
|
|
76
|
-
kill,
|
|
77
|
-
pid: TEST_PID,
|
|
78
|
-
});
|
|
79
|
-
await expect(main()).rejects.toThrow("EXIT_0");
|
|
80
|
-
expect(spawnSync).toHaveBeenCalledWith("/bin/dirsql", ["--help"], {
|
|
81
|
-
stdio: "inherit",
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
describe("when argv[0] is 'interpret'", () => {
|
|
85
|
-
it("dispatches to the interpret helper and exits with its return code", async () => {
|
|
86
|
-
vi.mocked(interpret).mockResolvedValue(0);
|
|
87
|
-
await expect(main(["interpret", "config.mjs"])).rejects.toThrow("EXIT_0");
|
|
88
|
-
expect(interpret).toHaveBeenCalledWith("config.mjs");
|
|
89
|
-
expect(spawnSync).not.toHaveBeenCalled();
|
|
90
|
-
expect(resolveBinary).not.toHaveBeenCalled();
|
|
91
|
-
});
|
|
92
|
-
it("propagates a non-zero interpret exit code", async () => {
|
|
93
|
-
vi.mocked(interpret).mockResolvedValue(2);
|
|
94
|
-
await expect(main(["interpret", "bad.mjs"])).rejects.toThrow("EXIT_2");
|
|
95
|
-
});
|
|
96
|
-
it("passes the empty string when no config path follows", async () => {
|
|
97
|
-
vi.mocked(interpret).mockResolvedValue(1);
|
|
98
|
-
await expect(main(["interpret"])).rejects.toThrow("EXIT_1");
|
|
99
|
-
expect(interpret).toHaveBeenCalledWith("");
|
|
100
|
-
});
|
|
101
|
-
it("does not intercept when 'interpret' is not the first arg", async () => {
|
|
102
|
-
vi.mocked(spawnSync).mockReturnValue(fakeResult({ status: 0 }));
|
|
103
|
-
await expect(main(["--verbose", "interpret", "config.mjs"])).rejects.toThrow("EXIT_0");
|
|
104
|
-
expect(interpret).not.toHaveBeenCalled();
|
|
105
|
-
expect(spawnSync).toHaveBeenCalled();
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
//# sourceMappingURL=main.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main.test.js","sourceRoot":"","sources":["../../src/cli/main.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"platformKey.d.ts","sourceRoot":"","sources":["../../src/cli/platformKey.ts"],"names":[],"mappings":"AAGA,wBAAgB,WAAW,IAAI,MAAM,CAEpC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"platformKey.js","sourceRoot":"","sources":["../../src/cli/platformKey.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,kEAAkE;AAElE,MAAM,UAAU,WAAW;IACzB,OAAO,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;AAC/C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"platformKey.test.d.ts","sourceRoot":"","sources":["../../src/cli/platformKey.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
2
|
-
import { platformKey } from "./platformKey.js";
|
|
3
|
-
afterEach(() => vi.restoreAllMocks());
|
|
4
|
-
describe("platformKey", () => {
|
|
5
|
-
describe("on linux x64", () => {
|
|
6
|
-
it("returns 'linux-x64'", () => {
|
|
7
|
-
vi.stubGlobal("process", {
|
|
8
|
-
...process,
|
|
9
|
-
platform: "linux",
|
|
10
|
-
arch: "x64",
|
|
11
|
-
});
|
|
12
|
-
expect(platformKey()).toBe("linux-x64");
|
|
13
|
-
});
|
|
14
|
-
});
|
|
15
|
-
describe("on darwin arm64", () => {
|
|
16
|
-
it("returns 'darwin-arm64'", () => {
|
|
17
|
-
vi.stubGlobal("process", {
|
|
18
|
-
...process,
|
|
19
|
-
platform: "darwin",
|
|
20
|
-
arch: "arm64",
|
|
21
|
-
});
|
|
22
|
-
expect(platformKey()).toBe("darwin-arm64");
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
describe("on win32 x64", () => {
|
|
26
|
-
it("returns 'win32-x64'", () => {
|
|
27
|
-
vi.stubGlobal("process", {
|
|
28
|
-
...process,
|
|
29
|
-
platform: "win32",
|
|
30
|
-
arch: "x64",
|
|
31
|
-
});
|
|
32
|
-
expect(platformKey()).toBe("win32-x64");
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
//# sourceMappingURL=platformKey.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"platformKey.test.js","sourceRoot":"","sources":["../../src/cli/platformKey.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;AAEtC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;YAC7B,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE;gBACvB,GAAG,OAAO;gBACV,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;YACH,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;YAChC,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE;gBACvB,GAAG,OAAO;gBACV,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;YACH,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;YAC7B,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE;gBACvB,GAAG,OAAO;gBACV,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;YACH,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolveBinary.d.ts","sourceRoot":"","sources":["../../src/cli/resolveBinary.ts"],"names":[],"mappings":"AAUA,yEAAyE;AACzE,MAAM,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;AAErD,iFAAiF;AACjF,wBAAgB,eAAe,IAAI,QAAQ,CAE1C;AAED,wBAAgB,aAAa,CAC3B,GAAG,SAAgB,EACnB,QAAQ,GAAE,QAA4B,GACrC,MAAM,CAgBR"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolveBinary.js","sourceRoot":"","sources":["../../src/cli/resolveBinary.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,uEAAuE;AACvE,sEAAsE;AACtE,cAAc;AAEd,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAK/C,iFAAiF;AACjF,MAAM,UAAU,eAAe;IAC7B,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,GAAG,GAAG,WAAW,EAAE,EACnB,WAAqB,eAAe,EAAE;IAEtC,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,CACD,0BAA0B,GAAG,mEAAmE,CACjG,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;IACnE,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CACD,GAAG,GAAG,qHAAqH,CAC5H,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolveBinary.test.d.ts","sourceRoot":"","sources":["../../src/cli/resolveBinary.test.ts"],"names":[],"mappings":""}
|