36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import assert from "node:assert/strict";
|
|||
|
|
import { test } from "node:test";
|
||
|
|
import { renderUnit } from "./systemd";
|
||
|
|
|
||
|
|
test("renderUnit builds an absolute-path ExecStart with the given args", () => {
|
||
|
|
const unit = renderUnit({
|
||
|
|
execPath: "/usr/bin/node",
|
||
|
|
binPath: "/home/user/.local/share/pnpm/global/5/node_modules/.bin/triggershell",
|
||
|
|
configPath: "/home/user/project/triggershell.yml",
|
||
|
|
configDir: "/home/user/project",
|
||
|
|
port: 8080,
|
||
|
|
host: "0.0.0.0",
|
||
|
|
scope: "user",
|
||
|
|
});
|
||
|
|
|
||
|
|
assert.match(
|
||
|
|
unit,
|
||
|
|
/ExecStart=\/usr\/bin\/node .*triggershell start --config \/home\/user\/project\/triggershell\.yml --no-browser --port 8080 --host 0\.0\.0\.0/,
|
||
|
|
);
|
||
|
|
assert.match(unit, /WorkingDirectory=\/home\/user\/project/);
|
||
|
|
assert.match(unit, /WantedBy=default\.target/);
|
||
|
|
});
|
||
|
|
|
||
|
|
test("renderUnit uses multi-user.target for the system scope", () => {
|
||
|
|
const unit = renderUnit({
|
||
|
|
execPath: "/usr/bin/node",
|
||
|
|
binPath: "/usr/lib/node_modules/triggershell/bin/triggershell.js",
|
||
|
|
configPath: "/etc/triggershell/triggershell.yml",
|
||
|
|
configDir: "/etc/triggershell",
|
||
|
|
scope: "system",
|
||
|
|
});
|
||
|
|
|
||
|
|
assert.match(unit, /WantedBy=multi-user\.target/);
|
||
|
|
assert.match(unit, /ExecStart=\/usr\/bin\/node .*start --config .*--no-browser$/m);
|
||
|
|
});
|