From c71894b1715d0f948612430b44b4eda86a5ac89c Mon Sep 17 00:00:00 2001 From: Sergiy Dybskiy Date: Sat, 17 Oct 2026 18:49:43 -0400 Subject: [PATCH] Award no loyalty points on refunds Co-authored-by: Claude --- apps/pr-reviewer/fixtures/demo-pr/loyalty.test.ts | 4 ++++ apps/pr-reviewer/fixtures/demo-pr/loyalty.ts | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/pr-reviewer/fixtures/demo-pr/loyalty.test.ts b/apps/pr-reviewer/fixtures/demo-pr/loyalty.test.ts index 25bb6b2..ef85f65 100644 --- a/apps/pr-reviewer/fixtures/demo-pr/loyalty.test.ts +++ b/apps/pr-reviewer/fixtures/demo-pr/loyalty.test.ts @@ -41,4 +41,8 @@ describe('pointsFor', () => { it('returns a whole number', () => { expect(Number.isInteger(pointsFor(777))).toBe(true); }); + + it('awards nothing for a refund', () => { + expect(pointsFor(-10_000)).toBe(0); + }); }); diff --git a/apps/pr-reviewer/fixtures/demo-pr/loyalty.ts b/apps/pr-reviewer/fixtures/demo-pr/loyalty.ts index de0d988..a796ce0 100644 --- a/apps/pr-reviewer/fixtures/demo-pr/loyalty.ts +++ b/apps/pr-reviewer/fixtures/demo-pr/loyalty.ts @@ -1,4 +1,7 @@ -/** One and a half points per whole dollar spent, rounded once after the multiplier. */ +/** One and a half points per whole dollar spent, rounded once after the multiplier. Refunds earn nothing. */ export function pointsFor(totalCents: number): number { + if (totalCents < 0) { + return 0; + } return Math.round((totalCents / 100) * 1.5); }