feat(gateway): 프로필별 첫 기수 번호를 관리한다
첫 기수 번호를 완료 게임 수의 기준값으로 적용하고 0기를 API와 화면에서 보존한다. 시즌 번호와 독립된 RESET 계약을 관리 패널, 테스트, 운영 문서에 반영한다.
This commit is contained in:
@@ -44,7 +44,8 @@ export type WorldStateConfig = z.infer<typeof zWorldStateConfig>;
|
||||
|
||||
export const zWorldStateMeta = z.object({
|
||||
serverId: z.string().optional(),
|
||||
gameIdx: z.number().int().positive().optional(),
|
||||
firstGameIdx: z.number().int().nonnegative().optional(),
|
||||
gameIdx: z.number().int().nonnegative().optional(),
|
||||
starttime: z.string().optional(),
|
||||
opentime: z.string().optional(),
|
||||
preopenAt: z.string().optional(),
|
||||
|
||||
@@ -70,6 +70,12 @@ describe('lobby season state', () => {
|
||||
expect(result.clockMode).toBe('manual');
|
||||
});
|
||||
|
||||
it('preserves zero as the first official game index', async () => {
|
||||
const result = await appRouter.createCaller(buildContext({ gameIdx: 0 })).lobby.info();
|
||||
|
||||
expect(result.gameIdx).toBe(0);
|
||||
});
|
||||
|
||||
it('projects the Ref-compatible opening announcement settings without exposing disabled autorun options', async () => {
|
||||
const result = await appRouter
|
||||
.createCaller(
|
||||
|
||||
Reference in New Issue
Block a user