mirror of
https://github.com/alkimake/paperclip.git
synced 2026-06-14 01:50:39 +09:00
55 lines
1.5 KiB
JavaScript
55 lines
1.5 KiB
JavaScript
|
|
import assert from "node:assert/strict";
|
||
|
|
import test from "node:test";
|
||
|
|
|
||
|
|
import { parseArgs, resolveTargetPackage } from "./bootstrap-npm-package.mjs";
|
||
|
|
|
||
|
|
test("parseArgs recognizes publish and skip-build flags", () => {
|
||
|
|
assert.deepEqual(parseArgs(["@paperclipai/adapter-acpx-local", "--publish", "--skip-build"]), {
|
||
|
|
help: false,
|
||
|
|
selector: "@paperclipai/adapter-acpx-local",
|
||
|
|
publish: true,
|
||
|
|
skipBuild: true,
|
||
|
|
otp: null,
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
test("parseArgs accepts an explicit otp value", () => {
|
||
|
|
assert.deepEqual(parseArgs(["packages/adapters/acpx-local", "--publish", "--otp", "123456"]), {
|
||
|
|
help: false,
|
||
|
|
selector: "packages/adapters/acpx-local",
|
||
|
|
publish: true,
|
||
|
|
skipBuild: false,
|
||
|
|
otp: "123456",
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
test("parseArgs leaves otp null when omitted", () => {
|
||
|
|
assert.deepEqual(parseArgs(["packages/adapters/acpx-local", "--publish"]), {
|
||
|
|
help: false,
|
||
|
|
selector: "packages/adapters/acpx-local",
|
||
|
|
publish: true,
|
||
|
|
skipBuild: false,
|
||
|
|
otp: null,
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
test("parseArgs returns help mode", () => {
|
||
|
|
assert.deepEqual(parseArgs(["--help"]), {
|
||
|
|
help: true,
|
||
|
|
selector: null,
|
||
|
|
publish: false,
|
||
|
|
skipBuild: false,
|
||
|
|
otp: null,
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
test("resolveTargetPackage matches by package name or dir", () => {
|
||
|
|
const packages = [
|
||
|
|
{ dir: "packages/a", name: "@paperclipai/a", pkg: {} },
|
||
|
|
{ dir: "packages/b", name: "@paperclipai/b", pkg: {} },
|
||
|
|
];
|
||
|
|
|
||
|
|
assert.equal(resolveTargetPackage("@paperclipai/a", packages).dir, "packages/a");
|
||
|
|
assert.equal(resolveTargetPackage("./packages/b", packages).name, "@paperclipai/b");
|
||
|
|
});
|