fix: 연감 장수동향 수집 분류를 바로잡는다
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
import { describe, expect, it, vi } from 'vitest';
|
||||
|
||||
import type { GamePrisma } from '@sammo-ts/infra';
|
||||
import { LogCategory, LogScope } from '@sammo-ts/logic';
|
||||
|
||||
import { persistYearbookSnapshot } from '../src/turn/yearbookPersistence.js';
|
||||
|
||||
describe('persistYearbookSnapshot', () => {
|
||||
it('archives canonical summary logs and compatible action logs together in descending ID order', async () => {
|
||||
const findMany = vi
|
||||
.fn()
|
||||
.mockResolvedValueOnce([{ text: '천하 동향' }])
|
||||
.mockResolvedValueOnce([{ text: '호환 행동' }, { text: '장수 동향' }]);
|
||||
const upsert = vi.fn().mockResolvedValue(undefined);
|
||||
const transaction = {
|
||||
logEntry: { findMany },
|
||||
yearbookHistory: { upsert },
|
||||
} as unknown as GamePrisma.TransactionClient;
|
||||
|
||||
await persistYearbookSnapshot(transaction, {
|
||||
serverId: 'hwe:generation',
|
||||
sourceId: 0,
|
||||
year: 195,
|
||||
month: 1,
|
||||
map: { year: 195, month: 1 },
|
||||
nations: [],
|
||||
});
|
||||
|
||||
expect(findMany).toHaveBeenNthCalledWith(
|
||||
2,
|
||||
expect.objectContaining({
|
||||
where: {
|
||||
scope: LogScope.SYSTEM,
|
||||
category: { in: [LogCategory.SUMMARY, LogCategory.ACTION] },
|
||||
year: 195,
|
||||
month: 1,
|
||||
},
|
||||
orderBy: { id: 'desc' },
|
||||
})
|
||||
);
|
||||
expect(upsert).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
create: expect.objectContaining({ globalAction: ['호환 행동', '장수 동향'] }),
|
||||
update: expect.objectContaining({ globalAction: ['호환 행동', '장수 동향'] }),
|
||||
})
|
||||
);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user