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
181 lines
4.8 KiB
JavaScript
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+"",/);
|
|
});
|