Fixing isAvailableForReservation function and adding unit tests
Some checks are pending
Push to main / test (push) Waiting to run
Push to main / build-image (push) Blocked by required conditions
ci/woodpecker/push/test Pipeline was successful

This commit is contained in:
Collin Duncan 2025-04-22 12:56:28 +02:00
parent 472f2c5d42
commit 3e6f7473b4
No known key found for this signature in database
2 changed files with 24 additions and 1 deletions

View file

@ -80,7 +80,11 @@ export class Reservation {
*/
@Exclude()
public isAvailableForReservation(): boolean {
return this.dateRangeStart.diff(dayjs(), 'hour') <= 7 * 24
const maxDateToReserve = dayjs()
.add(7, 'day')
.set('hour', 23)
.set('minute', 59)
return this.dateRangeStart.isBefore(maxDateToReserve)
}
/**

View file

@ -0,0 +1,19 @@
import dayjs from '../../../src/common/dayjs'
import { Reservation } from '../../../src/reservations/entity'
describe('reservations.entity', () => {
describe('isAvailableForReservation', () => {
it.each([
{ dateRangeStart: dayjs().add(7, 'day').set('hour', 23), result: true },
{ dateRangeStart: dayjs().subtract(1, 'day'), result: true },
{ dateRangeStart: dayjs(), result: true },
{ dateRangeStart: dayjs().add(8, 'day'), result: false },
])(
'should handle reservation starting at $dateRangeStart and return $result',
({ dateRangeStart, result }) => {
const r = new Reservation({ dateRangeStart })
expect(r.isAvailableForReservation()).toBe(result)
},
)
})
})