import { describe, it, expect, vi, beforeEach } from 'vitest'; import { gearService } from './gearService'; describe('gearService', () => { beforeEach(() => { vi.clearAllMocks(); }); describe('list', () => { it('should return list of gear items', async () => { const items = await gearService.list(); expect(items).toBeDefined(); expect(Array.isArray(items)).toBe(true); expect(items.length).toBeGreaterThan(0); expect(items[0]).toHaveProperty('id'); expect(items[0]).toHaveProperty('name'); expect(items[0]).toHaveProperty('category'); }); it('should filter by category', async () => { const items = await gearService.list({ category: 'Synth' }); expect(items).toBeDefined(); expect(Array.isArray(items)).toBe(true); }); }); describe('get', () => { it('should return a specific gear item', async () => { const item = await gearService.get('1'); expect(item).toBeDefined(); expect(item).toHaveProperty('id'); expect(item).toHaveProperty('name'); }); }); describe('create', () => { it('should create a new gear item', async () => { const newItem = await gearService.create({ name: 'Test Gear', category: 'Synth', }); expect(newItem).toBeDefined(); expect(newItem).toHaveProperty('id'); expect(newItem.name).toBe('Test Gear'); }); }); describe('update', () => { it('should update a gear item', async () => { const updated = await gearService.update('1', { name: 'Updated Name', }); expect(updated).toBeDefined(); expect(updated).toHaveProperty('id'); }); }); describe('delete', () => { it('should delete a gear item', async () => { const result = await gearService.delete('1'); expect(result).toBeUndefined(); // delete returns void }); }); });