Files
tutti/tools/scripts/package-release-version.test.mjs
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

45 lines
1.3 KiB
JavaScript

import assert from "node:assert/strict";
import test from "node:test";
import {
computeNextStablePackageReleaseVersion,
formatStablePackageReleaseTag,
parseStablePackageReleaseTag,
parseStablePackageReleaseVersion
} from "./package-release-version.mjs";
test("starts stable package releases at 0.0.1 when no tags exist", () => {
assert.equal(computeNextStablePackageReleaseVersion([]), "0.0.1");
});
test("increments the highest 0.0.x package release tag", () => {
assert.equal(
computeNextStablePackageReleaseVersion([
"packages-v0.0.2",
"packages-v0.0.5",
"packages-v0.0.3"
]),
"0.0.6"
);
});
test("rejects unsupported stable package release tags", () => {
assert.throws(
() => computeNextStablePackageReleaseVersion(["packages-v0.1.0"]),
/Unsupported package release tags/
);
});
test("formats and parses stable package release tags", () => {
assert.equal(formatStablePackageReleaseTag("0.0.7"), "packages-v0.0.7");
assert.deepEqual(parseStablePackageReleaseTag("packages-v0.0.7"), {
patch: 7,
version: "0.0.7"
});
});
test("rejects unsupported stable package release versions", () => {
assert.equal(parseStablePackageReleaseVersion("0.1.0"), null);
assert.equal(parseStablePackageReleaseVersion("1.0.0"), null);
});