1-// calculateDiscount.test.ts — new file
1+import { describe, it, expect, vi } from 'vitest'
2+import { calculateDiscount } from './calculateDiscount'
3+import { db } from './db'
7+describe('calculateDiscount', () => {
8+ it('should work', () => {
9+ const result = calculateDiscount(100, 'SILVER')
10+ expect(result).toBeDefined()
13+ it('applies discount', () => {
14+ const result = calculateDiscount(100, 'GOLD')
15+ expect(result).not.toBe(100)
18+ it('handles edge case', () => {
19+ expect(() => calculateDiscount(0, 'SILVER')).not.toThrow()
22+ it('saves to db', async () => {
23+ vi.mocked(db.discounts.save).mockResolvedValue({ id: '1' })
24+ await calculateDiscount(100, 'GOLD')
25+ expect(db.discounts.save).toHaveBeenCalled()
28+ it('handles invalid tier', () => {
29+ const result = calculateDiscount(100, 'INVALID')
30+ expect(result).toBe(result)