fix(游戏共创): 补齐发布用例的必填 versionNumber,并把授权三态计数收敛到本组
Project CI / Backend tests (pull_request) Failing after 44s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m8s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m47s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m5s
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled

This commit is contained in:
2026-10-06 16:34:58 +08:00
parent eeb101458a
commit a32ddd0e49
2 changed files with 15 additions and 2 deletions
@@ -129,9 +129,15 @@ describe('Rust 发布 facade', () => {
packageRelativePath: 'exports/playtest-package-1.zip',
manifest: MANIFEST,
metadata: { coverAssetId: 'asset_cover' },
// 首次发布(没有 gameId):平台派发的下一个版本号就是 1;更新发布才是 max+1,
// 由平台回读的 `nextVersionNumber` 提供。这个文件的两个用例都是首次发布。
versionNumber: 1,
includeProjectBundle: false,
});
expect(calls[0]?.args).toMatchObject({ includeProjectBundle: false });
expect(calls[0]?.args).toMatchObject({
includeProjectBundle: false,
versionNumber: 1,
});
// 勾选(或未表态)时不带这个字段:默认由原生按「授权非禁止即上传」判断,
// 渲染层不重复实现同一套默认值。
@@ -141,6 +147,7 @@ describe('Rust 发布 facade', () => {
packageRelativePath: 'exports/playtest-package-1.zip',
manifest: MANIFEST,
metadata: { coverAssetId: 'asset_cover' },
versionNumber: 1,
includeProjectBundle: true,
});
expect(calls[1]?.args).not.toHaveProperty('includeProjectBundle');
@@ -158,6 +165,8 @@ describe('Rust 发布 facade', () => {
coverAssetId: 'asset_cover',
forkAuthorization: 'nonCommercial',
},
// 同为首次发布:平台派发的下一个版本号是 1(见上一个用例的说明)。
versionNumber: 1,
});
expect(calls[0]?.args).toMatchObject({
metadata: { forkAuthorization: 'nonCommercial' },
@@ -173,6 +182,7 @@ describe('Rust 发布 facade', () => {
packageRelativePath: 'exports/playtest-package-1.zip',
manifest: MANIFEST,
metadata: { coverAssetId: 'asset_cover' },
versionNumber: 1,
});
expect(calls[1]?.args).toMatchObject({
metadata: { forkAuthorization: 'forbidden' },
@@ -357,7 +357,10 @@ describe('GameDistributionPublishPanel', () => {
renderPanel();
// 三个档位都在场,且默认落在「禁止共创」(与库表默认、旧客户端行为一致)。
expect(screen.getAllByRole('radio')).toHaveLength(3);
// 只数**授权共创**这一组:面板里其它字段也会渲染 radio(例如设备/方向类选项),
// 全局计数会随无关字段增减而误报。
const forkGroup = screen.getByRole('radiogroup', { name: '授权共创' });
expect(within(forkGroup).getAllByRole('radio')).toHaveLength(3);
expect(screen.getByRole('radio', { name: '禁止共创' })).toHaveProperty(
'checked',
true,