补充 dev:all 启动摘要表
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled

在 AGC Vite marker 就绪后打印全部服务的实际地址表。

补充 AGC 就绪等待、摘要构造测试和开发运维文档。
This commit is contained in:
2026-10-01 18:22:24 +08:00
parent 888ab83f39
commit e9b3e2b531
3 changed files with 125 additions and 3 deletions
+29 -1
View File
@@ -9,6 +9,7 @@ import {
buildDevAllEnvironment,
buildManagedSpawnOptions,
buildRootDevArgs,
buildStartupSummary,
isSharedRootStackReady,
runDevAll,
validateDevAllArgs,
@@ -92,6 +93,31 @@ describe('dev:all 参数和共享开发栈合同', () => {
expect(options.detached).toBe(process.platform !== 'win32');
});
test('按最终端口构造完整启动摘要表', () => {
const rows = buildStartupSummary(makeReadyState(), {
url: 'http://127.0.0.1:3080/',
});
expect(rows).toHaveLength(7);
expect(rows).toEqual(
expect.arrayContaining([
expect.objectContaining({
项目: 'SpacetimeDB',
状态: '已复用',
地址: 'http://127.0.0.1:3101',
}),
expect.objectContaining({
项目: 'Admin 后台',
地址: 'http://127.0.0.1:3102/admin/',
}),
expect.objectContaining({
项目: 'AGC Vite',
地址: 'http://127.0.0.1:3080/',
}),
]),
);
});
test('仅接受同一工作树、实例、数据库和 data dir 的完整栈', () => {
const root = resolve('fixture-root');
const ready = makeReadyState(root);
@@ -149,7 +175,9 @@ describe('dev:all 参数和共享开发栈合同', () => {
}
return child;
},
waitForRoot: async () => ({}),
waitForRoot: async () => makeReadyState(),
readState: () => null,
waitForAgc: async () => true,
stopProcessTree: async (child) => {
stopCalls.push(child);
if (child?.exitCode == null) {