veza/apps/web/src/services/commerceService.test.ts
senke ccc233e1ea fix(tests): cycles 12–18 – corrections services, mocks et design tokens
- chatService: getChannels → getServers
- commerceService: getOrders/getOrderDetails/getSalesStats → getPurchases/getSellerStats
- marketplaceService: mock réponse, params API, getDownloadLink → listOrders
- config/env.test: vi.stubEnv, import dynamique
- useAuth.test: mock useAuthStore
- TrackStatsDisplay, UploadQuota: mock du bon service (analyticsService, uploadService)
- TrackListEmpty, TrackListRow, TrackSearch: design tokens, assertions
- trackDownloadService, chunkedUploadService: MSW/server.use
- trackListService, trackSearchService, trackShareService: assertions
- ErrorBoundary, LoginForm, PlaylistErrorBoundary, PlaylistRecommendations
- RAPPORT_RESOLUTION_TESTS_CYCLE1.md

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-11 09:43:55 +01:00

45 lines
1.3 KiB
TypeScript

import { describe, it, expect, vi, beforeEach } from 'vitest';
import { commerceService } from './commerceService';
describe('commerceService', () => {
beforeEach(() => {
vi.clearAllMocks();
});
describe('getPurchases', () => {
it('should return purchases', async () => {
const purchases = await commerceService.getPurchases();
expect(purchases).toBeDefined();
expect(Array.isArray(purchases)).toBe(true);
if (purchases.length > 0) {
expect(purchases[0]).toHaveProperty('id');
expect(purchases[0]).toHaveProperty('status');
}
});
});
describe('getSellerStats', () => {
it('should return sales statistics', async () => {
const stats = await commerceService.getSellerStats();
expect(stats).toBeDefined();
expect(stats).toHaveProperty('revenue');
expect(stats).toHaveProperty('sales');
expect(stats).toHaveProperty('views');
expect(stats).toHaveProperty('conversion');
});
});
describe('requestRefund', () => {
it('should request refund successfully', async () => {
const result = await commerceService.requestRefund(
'order-1',
'Defective product',
);
expect(result).toBeDefined();
expect(result.success).toBe(true);
});
});
});