Files
Dune/tests/moritani-duke-custody.test.ts

28 lines
1.2 KiB
TypeScript

import assert from 'node:assert/strict';
import test from 'node:test';
import { acquireDuke, captureDuke, consumeDuke, createDukeVidal, dukeController, expireDuke } from '../game/duke-vidal';
void test('Moritani takes the actual living captive without restoring the captor after its tenure', () => {
const initial = acquireDuke(createDukeVidal(), 'm', 1, 'moritani');
initial.leader.deaths = 2;
const captive = captureDuke(initial, 'h', 'm', 1, 'arrakeen');
const before = structuredClone(captive);
const taken = acquireDuke(captive, 'm', 2, 'moritani');
assert.deepEqual(captive, before);
assert.equal(dukeController(taken), 'm');
assert.equal(taken.source, 'moritani');
assert.equal(taken.leader.capturedBy, undefined);
assert.equal(taken.leader.concealed, undefined);
assert.equal(taken.captureVisibility, undefined);
assert.equal(taken.leader.dead, false);
assert.equal(taken.leader.deaths, 2);
assert.equal(taken.leader.faction, 'ecaz');
assert.equal(taken.leader.strength, 6);
const unused = expireDuke(taken, 2);
assert.equal(dukeController(unused), null);
assert.equal(unused.leader.capturedBy, undefined);
const used = consumeDuke(taken);
assert.equal(dukeController(used), null);
assert.equal(used.leader.deaths, 2);
});