test(shops): cover non-finite and missing-key guards in describeRequirement
This commit is contained in:
@@ -94,6 +94,47 @@ describe('describeRequirement', () => {
|
||||
),
|
||||
).toBeNull();
|
||||
});
|
||||
|
||||
it('renders no line if the condition has a non-numeric value', () => {
|
||||
// A requirement with no valid threshold is unactionable -- the player
|
||||
// has no goal to work toward. Better to hide the gate than to render
|
||||
// a malformed line.
|
||||
expect(
|
||||
describeRequirement(
|
||||
{
|
||||
condition: {
|
||||
type: GameConditionType.REGION_REPUTATION,
|
||||
key: 'border-guard',
|
||||
operator: ComparisonOperator.GTE,
|
||||
value: NaN,
|
||||
},
|
||||
met: false,
|
||||
actual: 14,
|
||||
},
|
||||
FACTIONS,
|
||||
),
|
||||
).toBeNull();
|
||||
});
|
||||
|
||||
it('renders no line for a reputation gate with no faction key', () => {
|
||||
// A gate that names no faction is malformed. The player cannot act on a
|
||||
// requirement that never says which faction. Better to show nothing than
|
||||
// broken content.
|
||||
expect(
|
||||
describeRequirement(
|
||||
{
|
||||
condition: {
|
||||
type: GameConditionType.REGION_REPUTATION,
|
||||
operator: ComparisonOperator.GTE,
|
||||
value: 25,
|
||||
} as any,
|
||||
met: false,
|
||||
actual: 14,
|
||||
},
|
||||
FACTIONS,
|
||||
),
|
||||
).toBeNull();
|
||||
});
|
||||
});
|
||||
|
||||
describe('describeItemEffect', () => {
|
||||
|
||||
Reference in New Issue
Block a user