36 lines
1.4 KiB
JavaScript
36 lines
1.4 KiB
JavaScript
// AC field on participant + builders.
|
|||
|
|
const shared = require('@ttrpg/shared');
|
||
|
|
const { makeParticipant, buildMonsterParticipant, buildCharacterParticipant, rollHpFormula } = shared;
|
||
|
|
|
||
|
|
describe('AC field', () => {
|
||
|
|
test('makeParticipant accepts ac', () => {
|
||
|
|
const p = makeParticipant({ name: 'Orc', type: 'monster', initiative: 10, maxHp: 15, currentHp: 15, ac: 13 });
|
||
|
|
expect(p.ac).toBe(13);
|
||
|
|
});
|
||
|
|
|
||
|
|
test('makeParticipant ac defaults null', () => {
|
||
|
|
const p = makeParticipant({ name: 'Orc', type: 'monster', initiative: 10, maxHp: 15, currentHp: 15 });
|
||
|
|
expect(p.ac).toBeNull();
|
||
|
|
});
|
||
|
|
|
||
|
|
test('buildMonsterParticipant accepts ac', () => {
|
||
|
|
const { participant } = buildMonsterParticipant({ name: 'Goblin', maxHp: 7, initMod: 2, ac: 15 });
|
||
|
|
expect(participant.ac).toBe(15);
|
||
|
|
});
|
||
|
|
|
||
|
|
test('buildMonsterParticipant ac defaults null', () => {
|
||
|
|
const { participant } = buildMonsterParticipant({ name: 'Goblin', maxHp: 7 });
|
||
|
|
expect(participant.ac).toBeNull();
|
||
|
|
});
|
||
|
|
|
||
|
|
test('buildCharacterParticipant accepts character ac', () => {
|
||
|
|
const { participant } = buildCharacterParticipant({ id: 'c1', name: 'Fighter', defaultMaxHp: 30, defaultInitMod: 2, defaultAc: 18 });
|
||
|
|
expect(participant.ac).toBe(18);
|
||
|
|
});
|
||
|
|
|
||
|
|
test('buildCharacterParticipant ac defaults null when unset', () => {
|
||
|
|
const { participant } = buildCharacterParticipant({ id: 'c1', name: 'Fighter', defaultMaxHp: 30 });
|
||
|
|
expect(participant.ac).toBeNull();
|
||
|
|
});
|
||
|
|
});
|