From 3a9084a2cf0f5eb50f7db43b0497af2faac10174 Mon Sep 17 00:00:00 2001 From: nicksales72 Date: Wed, 11 Mar 2026 12:43:25 -0400 Subject: [PATCH] tests no rating throw in joinQueue --- test/match/queue.test.ts | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/test/match/queue.test.ts b/test/match/queue.test.ts index de2cb39..223a0a2 100644 --- a/test/match/queue.test.ts +++ b/test/match/queue.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it, mock } from 'bun:test'; +import { beforeEach, describe, expect, it, mock } from 'bun:test'; import { MATCH_STATES } from '../../src/lib/server/match/types'; const mocks = { @@ -35,6 +35,12 @@ mock.module('$lib/server/match/engine', () => ({ const { joinQueue } = await import('../../src/lib/server/match/queue'); describe('joinQueue', () => { + beforeEach(() => { + mocks.db.query.matchParticipantPlayer.findMany.mockReset(); + mocks.db.query.playerRating.findFirst.mockReset(); + mocks.db.delete.mockReset(); + }); + it('throws when user is already in an active match', async () => { mocks.db.delete.mockReturnValue({ where: mock(() => ({ returning: mock(() => Promise.resolve([])) })) @@ -51,4 +57,17 @@ describe('joinQueue', () => { await expect(joinQueue('user-1', 'team-1')).rejects.toThrow('You are already in an active match'); expect(mocks.db.query.playerRating.findFirst).not.toHaveBeenCalled(); }); + + it('throws when user has no rating', async () => { + mocks.db.delete.mockReturnValue({ + where: mock(() => ({ returning: mock(() => Promise.resolve([])) })) + }); + + mocks.db.query.matchParticipantPlayer.findMany.mockResolvedValue([]); + mocks.db.query.playerRating.findFirst.mockResolvedValue(null); + + await expect(joinQueue('user-1', 'team-1')).rejects.toThrow( + 'No rating found — please re-register' + ); + }); });