fix reserved turn queue concurrency

This commit is contained in:
2026-07-26 18:32:52 +00:00
parent ab6ed3553a
commit 3cd1ad3b7f
18 changed files with 613 additions and 106 deletions
@@ -27,6 +27,7 @@ const processor: TurnProcessor = {
describe('input event atomicity', () => {
it('keeps reserved-turn dirty state when persistence fails', async () => {
let failCreate = true;
const revisionUpsert = vi.fn(async () => ({ revision: 1 }));
const prisma = {
generalTurn: {
findMany: vi.fn(async () => []),
@@ -38,6 +39,9 @@ describe('input event atomicity', () => {
return { count: 1 };
}),
},
generalTurnRevision: {
upsert: revisionUpsert,
},
nationTurn: {
findMany: vi.fn(async () => []),
deleteMany: vi.fn(async () => ({ count: 0 })),
@@ -61,6 +65,12 @@ describe('input event atomicity', () => {
failCreate = false;
await store.flushChanges();
expect(revisionUpsert).toHaveBeenCalledOnce();
expect(revisionUpsert).toHaveBeenCalledWith({
where: { generalId: 7 },
create: { generalId: 7, revision: 1 },
update: { revision: { increment: 1 } },
});
expect(store.peekDirtyState()).toEqual({
generalIds: [],
generalInitializationIds: [],