From 1729dacdeca4f6da2ac90376c6d706b88f3a9f05 Mon Sep 17 00:00:00 2001 From: David Gwilliam Date: Tue, 31 Mar 2026 00:52:04 -0700 Subject: [PATCH] test: add Next.js 16 params Promise handling regression tests --- src/__tests__/unit/id-validation.test.ts | 32 ++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/__tests__/unit/id-validation.test.ts b/src/__tests__/unit/id-validation.test.ts index d5b82c7..eb40210 100644 --- a/src/__tests__/unit/id-validation.test.ts +++ b/src/__tests__/unit/id-validation.test.ts @@ -125,4 +125,36 @@ describe('ID Validation', () => { expect(isNaN(playerId)).toBe(true); }); }); + + describe('Next.js 16 params handling', () => { + test('should handle params as Promise (Next.js 16 requirement)', async () => { + // In Next.js 16, params is a Promise + const params = Promise.resolve({ id: '123' }); + + // This is how Next.js 16 expects params to be handled + const { id } = await params; + const parsedId = parseInt(id, 10); + + expect(parsedId).toBe(123); + expect(isNaN(parsedId)).toBe(false); + }); + + test('should handle invalid ID in Next.js 16 params', async () => { + const params = Promise.resolve({ id: 'invalid' }); + + const { id } = await params; + const parsedId = parseInt(id, 10); + + expect(isNaN(parsedId)).toBe(true); + }); + + test('should handle empty ID in Next.js 16 params', async () => { + const params = Promise.resolve({ id: '' }); + + const { id } = await params; + const parsedId = parseInt(id, 10); + + expect(isNaN(parsedId)).toBe(true); + }); + }); });