플레이 감사 국가 생멸과 장기 tick 저장을 보완하고 중간 전달 준비

This commit is contained in:
2026-09-16 07:26:05 +00:00
parent ae0dfd503f
commit 52cea882ab
24 changed files with 428 additions and 46 deletions
@@ -89,6 +89,7 @@ const classifications = {
'tournament.placeBet',
],
redisProjection: [
'tournament.start',
'tournament.patchState',
'tournament.seedParticipants',
'tournament.setBettingEntries',
@@ -160,7 +161,7 @@ describe('game-api direct mutation journal inventory', () => {
// count independently catches mutations that were added to a router but never mounted.
expect(declaredCount).toBe(actual.length);
expect(new Set(classified).size).toBe(classified.length);
expect(classified).toHaveLength(87);
expect(classified).toHaveLength(88);
expect(actual).toEqual(classified);
});
@@ -55,7 +55,7 @@ const expectedOwnerCounts: Record<string, number> = {
'mixed-saga': 9,
operational: 3,
'read-only-mutation-transport': 2,
'redis-projection': 6,
'redis-projection': 7,
'separate-access-journal': 1,
'session-only': 1,
};
@@ -105,7 +105,7 @@ describe('game-api mutation evidence manifest', () => {
const rows = parseManifest();
const manifestRoutes = rows.map(({ route }) => route);
expect(rows).toHaveLength(87);
expect(rows).toHaveLength(88);
expect(new Set(manifestRoutes).size).toBe(manifestRoutes.length);
expect(manifestRoutes).toEqual([...manifestRoutes].sort());
expect(manifestRoutes).toEqual(mountedMutationNames());
@@ -2200,6 +2200,7 @@ integration('game API security over HTTP transport', () => {
month: 1,
kind: 'MONTH_END',
settlementsComplete: true,
tick: 4_320_000_000n,
hash: 'http-fixture',
cities: {
create: {
@@ -2392,7 +2393,7 @@ integration('game API security over HTTP transport', () => {
year: 190,
month: revision === 3 ? 2 : 1,
ordinal: revision,
tick: 12,
tick: 4_320_000_000n,
requestId: revision > 1 ? 'audit-policy-request' : null,
inputSequence: revision > 1 ? 9007199254740993n : null,
actor:
@@ -2438,6 +2439,7 @@ integration('game API security over HTTP transport', () => {
data: {
version: {
previousId: policyId(2),
tick: '4320000000',
inputSequence: '9007199254740993',
fields: [{ key: 'scout', beforeJson: '2', afterJson: '3', changed: true }],
},
@@ -2556,7 +2558,12 @@ integration('game API security over HTTP transport', () => {
(await get('generalDetail', admin, { id: generalId, at: { year: 190, month: 1 } })).body
).toMatchObject({
result: {
data: { collected: true, general: { name: '과거이름' }, city: { id: 99123, name: '과거도시' } },
data: {
collected: true,
sample: { tick: '4320000000' },
general: { name: '과거이름' },
city: { id: 99123, name: '과거도시' },
},
},
});
expect(