fix: Ref 게임 로직과 시나리오 풀 호환을 보정
월 경계, 전투 기술 상한, 연감과 베팅·설문·경매 정산 순서를 Ref 계약에 맞춘다.\n\n시나리오 일반 풀을 ENGINE mutation과 logical tick 기반으로 직렬화하고 914·915 catalog 및 조건부 100기 pool 실행 경계를 추가한다.\n\n경매 worker는 세대별 durable event만 만들고 ENGINE이 row lock 후 상태 전이와 정산을 단일 transaction으로 소유한다.
This commit is contained in:
@@ -320,6 +320,24 @@ describe('tournament worker (in-memory)', () => {
|
||||
).toEqual({ payouts: [], total: 300, refundAll: false });
|
||||
});
|
||||
|
||||
it('coalesces duplicate legacy rows before one winner payout and rounding', () => {
|
||||
expect(
|
||||
buildBettingPayouts(10, [
|
||||
{ generalId: 1, targetId: 10, amount: 101 },
|
||||
{ generalId: 1, targetId: 10, amount: 99 },
|
||||
{ generalId: 2, targetId: 10, amount: 100 },
|
||||
{ generalId: 3, targetId: 11, amount: 100 },
|
||||
])
|
||||
).toEqual({
|
||||
payouts: [
|
||||
{ generalId: 1, amount: 267 },
|
||||
{ generalId: 2, amount: 133 },
|
||||
],
|
||||
total: 400,
|
||||
refundAll: false,
|
||||
});
|
||||
});
|
||||
|
||||
it('locks 64 applicants into eight groups of eight', async () => {
|
||||
const redis = new MemoryRedis();
|
||||
const store = new TournamentStore(redis, buildTournamentKeys('test-groups'));
|
||||
|
||||
Reference in New Issue
Block a user