59 lines
1.7 KiB
TypeScript
59 lines
1.7 KiB
TypeScript
|
|
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
||
|
|
import { developerService } from './developerService';
|
||
|
|
|
||
|
|
describe('developerService', () => {
|
||
|
|
beforeEach(() => {
|
||
|
|
vi.clearAllMocks();
|
||
|
|
});
|
||
|
|
|
||
|
|
describe('listKeys', () => {
|
||
|
|
it('should return list of API keys', async () => {
|
||
|
|
const keys = await developerService.listKeys();
|
||
|
|
|
||
|
|
expect(keys).toBeDefined();
|
||
|
|
expect(Array.isArray(keys)).toBe(true);
|
||
|
|
expect(keys.length).toBeGreaterThan(0);
|
||
|
|
expect(keys[0]).toHaveProperty('id');
|
||
|
|
expect(keys[0]).toHaveProperty('name');
|
||
|
|
expect(keys[0]).toHaveProperty('prefix');
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
describe('createKey', () => {
|
||
|
|
it('should create a new API key', async () => {
|
||
|
|
const newKey = await developerService.createKey({
|
||
|
|
name: 'Test Key',
|
||
|
|
scopes: ['read', 'write'],
|
||
|
|
});
|
||
|
|
|
||
|
|
expect(newKey).toBeDefined();
|
||
|
|
expect(newKey.name).toBe('Test Key');
|
||
|
|
expect(newKey.scopes).toEqual(['read', 'write']);
|
||
|
|
expect(newKey.status).toBe('active');
|
||
|
|
expect(newKey).toHaveProperty('id');
|
||
|
|
expect(newKey).toHaveProperty('prefix');
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
describe('revokeKey', () => {
|
||
|
|
it('should revoke an API key', async () => {
|
||
|
|
const result = await developerService.revokeKey('key-1');
|
||
|
|
|
||
|
|
expect(result).toBeDefined();
|
||
|
|
expect(result.success).toBe(true);
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
describe('getStats', () => {
|
||
|
|
it('should return developer statistics', async () => {
|
||
|
|
const stats = await developerService.getStats();
|
||
|
|
|
||
|
|
expect(stats).toBeDefined();
|
||
|
|
expect(stats).toHaveProperty('requests_24h');
|
||
|
|
expect(stats).toHaveProperty('avg_latency');
|
||
|
|
expect(stats).toHaveProperty('active_keys');
|
||
|
|
});
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|