All files / web/src/lib/curriculum practice-student.ts

100% Statements 15/15
100% Branches 4/4
100% Functions 1/1
100% Lines 15/15

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161x 1x 1x 1x 1x 1x 1x 1x 1x 1x 3x 3x 3x 1x 1x  
import type { Player } from '@/db/schema/players'
import { getPlayer } from '@/lib/arcade/player-manager'
 
/**
 * Get a player that is flagged as a practice student.
 * Returns undefined if the player doesn't exist or isn't a practice student.
 *
 * Use this instead of getPlayer() in practice routes to enforce the invariant
 * that only practice students can access the practice system.
 */
export async function getPracticeStudent(playerId: string): Promise<Player | undefined> {
  const player = await getPlayer(playerId)
  if (!player || !player.isPracticeStudent) return undefined
  return player
}