Prove Advanced occupied Bureaucrat receipts with native timing

This commit is contained in:
Quintine committed 2026-10-13 18:44:58 +11:00
1 parent 304849f8d9
commit 9fb680da09
7 files changed
+102 -16

No files matched your search

+18
View File
@@ -269,3 +269,21 @@ void test('every owner bot resolves the occupied Junction offer and the native p
outcome(f, done, 2);
}
});
for (const redirect of [false, true]) void test(`Advanced occupied Guild ${redirect ? 'diversion' : 'allowance'} follows actual flexible timing without replaying a past phase`, () => {
const f = createOccupiedGuildFixture({ advanced: true });
assert.ok(f.beforePledge.turn > f.occupied.turn);
const paid = declareOccupiedGuild(f);
const pending = allowOccupiedGuildIncome(paid);
const done = allocateOccupiedGuild(chooseOccupiedGuild(pending, redirect));
outcome(f, done, redirect ? 2 : 0);
assert.deepEqual(armies(done), armies(paid));
const receipt = done.homeworldOccupiedPercentageLedger!.receipts.at(-1)!;
assert.equal(receipt.nativeRetained, redirect ? 3 : 4);
assert.equal(receipt.occupiedAmount, redirect ? 3 : 4);
assert.equal(guildShippingSource(receipt).payment.paid, 8);
assert.deepEqual(guildShippingSource(receipt).payment.contributions,
[{payer:f.payer,amount:6},{payer:f.donor,amount:2}]);
assert.equal(quoteStableHomeworldOccupation(done, 'junction').entitlement!.qualification,
quoteStableHomeworldOccupation(f.occupied, 'junction').entitlement!.qualification);
});