Files
tutti/tools/scripts/generate-defaults.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

181 lines
4.8 KiB
JavaScript

import assert from "node:assert/strict";
import test from "node:test";
import { format } from "prettier";
import { renderGoDefaults, renderTSDefaults } from "./generate-defaults.mjs";
import prettierConfig from "../../packages/configs/prettier/base.mjs";
test("renderTSDefaults produces prettier-stable TypeScript output", async () => {
const rendered = await renderTSDefaults({
state: {
productionDirName: ".tutti",
developmentDirName: ".tutti-dev"
},
transport: {
defaultTCPAddr: "127.0.0.1:4545"
},
logging: {
defaultLevel: "info",
maxSizeMB: 50
}
});
const reformatted = await format(rendered, {
...prettierConfig,
parser: "typescript"
});
assert.equal(rendered, reformatted);
assert.match(rendered, /state: {/);
assert.doesNotMatch(rendered, /"state": {/);
});
test("renderGoDefaults produces gofmt-stable Go output", () => {
const rendered = renderGoDefaults({
state: {
productionDirName: ".tutti",
developmentDirName: ".tutti-dev",
runDirName: "run",
logsDirName: "logs",
dbFileName: "tuttid.db",
daemonLogFileName: "tuttid.log",
desktopLogFileName: "tutti-desktop.log",
listenerInfoFileName: "tuttid.listener.json",
pidFileName: "tuttid.pid"
},
transport: {
defaultTCPAddr: "127.0.0.1:4545"
},
logging: {
defaultLevel: "info",
defaultOutput: "file",
maxSizeMB: 50,
maxBackups: 10,
maxAgeDays: 14,
maxTotalMB: 300
},
analytics: {
appId: 20004092,
appKey: "app-key",
channel: "sg",
channelDomain: "https://gator.uba.ap-southeast-1.volces.com",
appVersion: "0.0.0"
}
});
assert.match(rendered, /\t\tProductionDirName:\s{4}".tutti",/);
assert.match(rendered, /var generatedDefaults = generatedDefaultsSpec{/);
});
test("renderGoDefaults includes analytics defaults", () => {
const rendered = renderGoDefaults({
state: {
productionDirName: ".tutti",
developmentDirName: ".tutti-dev",
runDirName: "run",
logsDirName: "logs",
dbFileName: "tuttid.db",
daemonLogFileName: "tuttid.log",
desktopLogFileName: "tutti-desktop.log",
listenerInfoFileName: "tuttid.listener.json",
pidFileName: "tuttid.pid"
},
transport: {
defaultTCPAddr: "127.0.0.1:4545"
},
logging: {
defaultLevel: "info",
defaultOutput: "file",
maxSizeMB: 50,
maxBackups: 10,
maxAgeDays: 14,
maxTotalMB: 300
},
analytics: {
appId: 20004092,
appKey: "app-key",
channel: "sg",
channelDomain: "https://gator.uba.ap-southeast-1.volces.com",
appVersion: "0.0.0"
}
});
assert.match(rendered, /Analytics: generatedAnalyticsDefaults{/);
assert.match(rendered, /AppID:\s+20004092,/);
assert.match(rendered, /AppVersion:\s+"0.0.0",/);
});
const minimalSpec = {
state: {
productionDirName: ".tutti",
developmentDirName: ".tutti-dev",
runDirName: "run",
logsDirName: "logs",
dbFileName: "tuttid.db",
daemonLogFileName: "tuttid.log",
desktopLogFileName: "tutti-desktop.log",
listenerInfoFileName: "tuttid.listener.json",
pidFileName: "tuttid.pid"
},
transport: {
defaultTCPAddr: "127.0.0.1:4545"
},
logging: {
defaultLevel: "info",
defaultOutput: "file",
maxSizeMB: 50,
maxBackups: 10,
maxAgeDays: 14,
maxTotalMB: 300
},
analytics: {
appId: 20004092,
appKey: "app-key",
channel: "sg",
channelDomain: "https://gator.uba.ap-southeast-1.volces.com",
appVersion: "0.0.0"
}
};
test("renderGoDefaults renders agentRuntimeTools.uv artifacts", () => {
const rendered = renderGoDefaults({
...minimalSpec,
agentRuntimeTools: {
uv: {
version: "0.11.31",
artifacts: [
{
platform: "darwin-arm64",
url: "https://example.com/uv.tar.gz",
sha256:
"b2b93e82a6786f9c7cb89fd4ca0e859a147b292ae8f6f95784f9742f0efec39e",
sizeBytes: 22411216,
archive: "tar.gz",
archiveExecutable: "uv-aarch64-apple-darwin/uv"
}
]
}
}
});
assert.match(
rendered,
/AgentRuntimeTools: generatedAgentRuntimeToolDefaults{/
);
assert.match(rendered, /UV: generatedUVToolDefaults{/);
assert.match(rendered, /Version:\s+"0.11.31",/);
assert.match(rendered, /Platform:\s+"darwin-arm64",/);
assert.match(rendered, /SizeBytes:\s+22411216,/);
assert.match(rendered, /ArchiveExecutable:\s+"uv-aarch64-apple-darwin\/uv",/);
});
test("renderGoDefaults tolerates a missing agentRuntimeTools section", () => {
const rendered = renderGoDefaults(minimalSpec);
assert.match(
rendered,
/AgentRuntimeTools: generatedAgentRuntimeToolDefaults{/
);
assert.match(rendered, /Version:\s+"",/);
});