Adding some unit tests for getting court slots based on date
This commit is contained in:
parent
5b109226e6
commit
82633908a4
2 changed files with 44 additions and 3 deletions
|
|
@ -86,13 +86,16 @@ const CourtRank: Record<CourtSlot, number> = {
|
|||
[CourtSlot.Thirteen]: 9, // no one likes upstairs
|
||||
} as const
|
||||
|
||||
enum StartTimeClass {
|
||||
export enum StartTimeClass {
|
||||
First = 'first',
|
||||
Second = 'second',
|
||||
Third = 'third',
|
||||
}
|
||||
|
||||
const StartTimeClassCourtSlots: Record<StartTimeClass, readonly CourtSlot[]> = {
|
||||
export const StartTimeClassCourtSlots: Record<
|
||||
StartTimeClass,
|
||||
readonly CourtSlot[]
|
||||
> = {
|
||||
[StartTimeClass.First]: [
|
||||
CourtSlot.One,
|
||||
CourtSlot.Two,
|
||||
|
|
@ -680,7 +683,7 @@ export class BaanReserverenService {
|
|||
return courtStatuses
|
||||
}
|
||||
|
||||
private getCourtSlotsForDate(date: Dayjs) {
|
||||
public getCourtSlotsForDate(date: Dayjs) {
|
||||
const time = date.format('HH:mm')
|
||||
for (const [timeClass, times] of Object.entries(StartTimeClassStartTimes)) {
|
||||
if (times.includes(time)) {
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ import {
|
|||
BAAN_RESERVEREN_ROOT_URL,
|
||||
BaanReserverenService,
|
||||
CourtSlot,
|
||||
StartTimeClass,
|
||||
StartTimeClassCourtSlots,
|
||||
} from '../../../src/runner/baanreserveren/service'
|
||||
import { EmptyPage } from '../../../src/runner/pages/empty'
|
||||
|
||||
|
|
@ -135,4 +137,40 @@ describe('baanreserveren.service', () => {
|
|||
},
|
||||
)
|
||||
})
|
||||
|
||||
describe.only('getCourtSlotsForDate', () => {
|
||||
it.each([
|
||||
{
|
||||
date: '2025-04-10T16:30:00.000Z',
|
||||
expectedCourtSlots: StartTimeClassCourtSlots[StartTimeClass.First],
|
||||
},
|
||||
{
|
||||
date: '2025-04-10T16:45:00.000Z',
|
||||
expectedCourtSlots: StartTimeClassCourtSlots[StartTimeClass.Third],
|
||||
},
|
||||
{
|
||||
date: '2025-04-10T17:00:00.000Z',
|
||||
expectedCourtSlots: StartTimeClassCourtSlots[StartTimeClass.Second],
|
||||
},
|
||||
{
|
||||
date: '2025-01-10T17:30:00.000Z',
|
||||
expectedCourtSlots: StartTimeClassCourtSlots[StartTimeClass.First],
|
||||
},
|
||||
{
|
||||
date: '2025-01-10T17:45:00.000Z',
|
||||
expectedCourtSlots: StartTimeClassCourtSlots[StartTimeClass.Third],
|
||||
},
|
||||
{
|
||||
date: '2025-01-10T18:00:00.000Z',
|
||||
expectedCourtSlots: StartTimeClassCourtSlots[StartTimeClass.Second],
|
||||
},
|
||||
])(
|
||||
'should get correct court slots for $date',
|
||||
({ date, expectedCourtSlots }) => {
|
||||
expect(brService.getCourtSlotsForDate(dayjs(date))).toEqual(
|
||||
expect.arrayContaining(expectedCourtSlots as CourtSlot[]),
|
||||
)
|
||||
},
|
||||
)
|
||||
})
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue