Extract admin dashboard from ghabilee-frontend2 into a dedicated Next.js app for backoffice.ghabilee.ir (no SEO indexing / Clarity).
22 lines
935 B
TypeScript
22 lines
935 B
TypeScript
import { describe, expect, it } from 'vitest'
|
|
|
|
import { capacityToneFromRemaining, isOccupancyFull, remainingSeatCount } from '@/features/events/eventCapacity'
|
|
|
|
describe('event occupancy', () => {
|
|
it('treats pending bookings as occupied when computing remaining seats', () => {
|
|
expect(remainingSeatCount(10, 7, 0)).toBe(3)
|
|
expect(remainingSeatCount(10, 7, 3)).toBe(0)
|
|
expect(isOccupancyFull(10, 7, 4)).toBe(true)
|
|
})
|
|
|
|
it('maps remaining capacity ratio to badge tone', () => {
|
|
expect(capacityToneFromRemaining(60, 100)).toBe('neutral')
|
|
expect(capacityToneFromRemaining(50, 100)).toBe('neutral')
|
|
expect(capacityToneFromRemaining(49, 100)).toBe('warning')
|
|
expect(capacityToneFromRemaining(20, 100)).toBe('warning')
|
|
expect(capacityToneFromRemaining(19, 100)).toBe('danger')
|
|
expect(capacityToneFromRemaining(0, 100)).toBe('danger')
|
|
expect(capacityToneFromRemaining(1, 0)).toBe('danger')
|
|
})
|
|
})
|