57 lines
1.8 KiB
TypeScript
57 lines
1.8 KiB
TypeScript
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
import { userService } from './userService';
|
|
|
|
describe('userService', () => {
|
|
beforeEach(() => {
|
|
vi.clearAllMocks();
|
|
});
|
|
|
|
describe('getProfile', () => {
|
|
it('should return user profile by id', async () => {
|
|
const result = await userService.getProfile('u1');
|
|
|
|
expect(result).toBeDefined();
|
|
expect(result).toHaveProperty('profile');
|
|
expect(result.profile).toHaveProperty('id');
|
|
expect(result.profile).toHaveProperty('username');
|
|
expect(result.profile).toHaveProperty('email');
|
|
});
|
|
});
|
|
|
|
describe('getProfileByUsername', () => {
|
|
it('should return user profile by username', async () => {
|
|
const result = await userService.getProfileByUsername('testuser');
|
|
|
|
expect(result).toBeDefined();
|
|
expect(result).toHaveProperty('profile');
|
|
expect(result.profile).toHaveProperty('username');
|
|
expect(result.profile.username).toBe('testuser');
|
|
});
|
|
});
|
|
|
|
describe('updateProfile', () => {
|
|
it('should update user profile', async () => {
|
|
const result = await userService.updateProfile('u1', {
|
|
firstName: 'Updated',
|
|
lastName: 'Name',
|
|
});
|
|
|
|
expect(result).toBeDefined();
|
|
expect(result).toHaveProperty('profile');
|
|
expect(result.profile.firstName).toBe('Updated');
|
|
expect(result.profile.lastName).toBe('Name');
|
|
});
|
|
});
|
|
|
|
describe('getProfileCompletion', () => {
|
|
it('should return profile completion data', async () => {
|
|
const result = await userService.getProfileCompletion('u1');
|
|
|
|
expect(result).toBeDefined();
|
|
expect(result).toHaveProperty('completion_percentage');
|
|
expect(result).toHaveProperty('missing_fields');
|
|
expect(typeof result.completion_percentage).toBe('number');
|
|
expect(Array.isArray(result.missing_fields)).toBe(true);
|
|
});
|
|
});
|
|
});
|