More action test cases
This commit is contained in:
@@ -1,4 +1,9 @@
|
||||
type InputProvider = {
|
||||
/**
|
||||
* Roll dice
|
||||
* @param dice How many dice
|
||||
* @param diceSize How many faces per die
|
||||
*/
|
||||
rollDice(
|
||||
dice: { number: number, diceSize: number }[]
|
||||
): Promise<number[][]>;
|
||||
@@ -12,6 +17,10 @@ type InputProvider = {
|
||||
choices: ({ _id: string } & Record<string, any>)[],
|
||||
quantity?: [min: number, max: number],
|
||||
): Promise<string[]>;
|
||||
/**
|
||||
* Get advantage, natural, or disadvantage for a d20 roll
|
||||
*/
|
||||
advantage(suggestedAdvantage: 0 | 1 | -1): Promise<0 | 1 | -1>;
|
||||
}
|
||||
|
||||
export default InputProvider;
|
||||
@@ -10,10 +10,11 @@ const inputProviderForTests: InputProvider = {
|
||||
const result: number[][] = [];
|
||||
for (const diceRoll of dice) {
|
||||
const averageRoll = Math.round(diceRoll.diceSize / 2);
|
||||
// Return an array full of averagely rolled dice
|
||||
// Return an array full of averagely rolled dice, increasing by 1 for every dice
|
||||
result.push(
|
||||
new Array(diceRoll.number)
|
||||
.fill(averageRoll)
|
||||
.map((value, index) => (value + index - 1) % diceRoll.diceSize + 1)
|
||||
)
|
||||
}
|
||||
return result;
|
||||
@@ -28,6 +29,12 @@ const inputProviderForTests: InputProvider = {
|
||||
chosen.push(choices[i]._id);
|
||||
}
|
||||
return chosen;
|
||||
},
|
||||
/**
|
||||
* For testing, always return the suggested advantage, as if the user never chose differently
|
||||
*/
|
||||
async advantage(suggestedAdvantage) {
|
||||
return suggestedAdvantage;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user