From bbf3600e56eb136b84e401cd4d67c60add0ce7a5 Mon Sep 17 00:00:00 2001 From: kleinfreund <5774638+kleinfreund@users.noreply.github.com> Date: Sat, 25 Jan 2025 12:06:32 +0100 Subject: [PATCH] fix(core): loyalty card joker setting mult to 0 when inactive MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Turns out multiplying a number by 0 results in 0. 🤡 Fixes #18. --- src/lib/calculateScore.test.ts | 1 + src/lib/data.ts | 2 +- src/lib/test-files/037.ts | 26 ++++++++++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 src/lib/test-files/037.ts diff --git a/src/lib/calculateScore.test.ts b/src/lib/calculateScore.test.ts index 751963c..6f1b58b 100644 --- a/src/lib/calculateScore.test.ts +++ b/src/lib/calculateScore.test.ts @@ -50,6 +50,7 @@ describe('calculateScore', async () => { (await import('./test-files/034.ts')).default('Run from 2024-04-09 19:20 UTC'), (await import('./test-files/035.ts')).default('https://www.youtube.com/watch?v=hcZF7NJGuPE'), (await import('./test-files/036.ts')).default('Regression test for #17'), + (await import('./test-files/037.ts')).default('Regression test for #18'), ])('$message', ({ initialState, expected }) => { const score = calculateScore(getState(initialState)) diff --git a/src/lib/data.ts b/src/lib/data.ts index 508769e..ed23c03 100644 --- a/src/lib/data.ts +++ b/src/lib/data.ts @@ -354,7 +354,7 @@ export const JOKER_DEFINITIONS: Record = { hasIsActiveInput: true, effect ({ score, trigger }) { score.push({ - multiplier: ['*', this.active ? 4 : 0], + multiplier: ['*', this.active ? 4 : 1], phase: 'jokers', joker: this, trigger, diff --git a/src/lib/test-files/037.ts b/src/lib/test-files/037.ts new file mode 100644 index 0000000..d3af4c7 --- /dev/null +++ b/src/lib/test-files/037.ts @@ -0,0 +1,26 @@ +import type { TestCase } from '#lib/calculateScore.test.ts' + +export default (message: string): TestCase => { + return { + message, + initialState: { + cards: [ + { played: true, rank: 'Queen', suit: 'Diamonds' }, + ], + jokers: [ + { name: 'Loyalty Card', active: false }, + ], + }, + expected: { + hand: 'High Card', + scoringCards: [ + { rank: 'Queen', suit: 'Diamonds' }, + ], + scores: [ + { score: '15', formattedScore: '15', luck: 'none' }, + { score: '15', formattedScore: '15', luck: 'average' }, + { score: '15', formattedScore: '15', luck: 'all' }, + ], + }, + } +}