Files
lcbp3/frontend/lib/api/__tests__/admin.test.ts
T
admin 4dde6570c1
CI / CD Pipeline / build (push) Failing after 3m41s
CI / CD Pipeline / deploy (push) Has been skipped
690615:1449 237 #01
2026-06-15 14:49:26 +07:00

124 lines
3.7 KiB
TypeScript

// File: lib/api/__tests__/admin.test.ts
// Change Log:
// - 2026-06-14: สร้างใหม่สำหรับ Phase 3 Coverage
import { describe, it, expect, vi } from 'vitest';
import { adminApi } from '../admin';
describe('adminApi', () => {
describe('getUsers', () => {
it('ควร return array of users', async () => {
const users = await adminApi.getUsers();
expect(Array.isArray(users)).toBe(true);
expect(users.length).toBeGreaterThan(0);
});
it('ควร return users ที่มี publicId, username, email', async () => {
const users = await adminApi.getUsers();
expect(users[0]).toHaveProperty('publicId');
expect(users[0]).toHaveProperty('username');
expect(users[0]).toHaveProperty('email');
});
});
describe('createUser', () => {
it('ควร create user ใหม่และ return user object', async () => {
const userData = {
username: 'testuser',
email: 'test@example.com',
firstName: 'Test',
lastName: 'User',
isActive: true,
roles: [2],
};
const newUser = await adminApi.createUser(userData);
expect(newUser).toHaveProperty('publicId');
expect(newUser.username).toBe('testuser');
expect(newUser.email).toBe('test@example.com');
});
it('ควร assign userId ใหม่ให้ user', async () => {
const userData = {
username: 'newuser',
email: 'new@example.com',
firstName: 'New',
lastName: 'User',
isActive: true,
roles: [2],
};
const newUser = await adminApi.createUser(userData);
expect(newUser.userId).toBeGreaterThan(0);
});
});
describe('getOrganizations', () => {
it('ควร return array of organizations', async () => {
const orgs = await adminApi.getOrganizations();
expect(Array.isArray(orgs)).toBe(true);
expect(orgs.length).toBeGreaterThan(0);
});
it('ควร return organizations ที่มี publicId, orgCode, orgName', async () => {
const orgs = await adminApi.getOrganizations();
expect(orgs[0]).toHaveProperty('publicId');
expect(orgs[0]).toHaveProperty('orgCode');
expect(orgs[0]).toHaveProperty('orgName');
});
});
describe('createOrganization', () => {
it('ควร create organization ใหม่และ return org object', async () => {
const orgData = {
publicId: 'org-003',
orgCode: 'TEST',
orgName: 'Test Organization',
description: 'Test description',
};
const newOrg = await adminApi.createOrganization(orgData);
expect(newOrg).toHaveProperty('publicId');
expect(newOrg.orgCode).toBe('TEST');
expect(newOrg.orgName).toBe('Test Organization');
});
it('ควร assign orgId ใหม่ให้ organization', async () => {
const orgData = {
publicId: 'org-004',
orgCode: 'TEST2',
orgName: 'Test Organization 2',
description: 'Test description 2',
};
const newOrg = await adminApi.createOrganization(orgData);
expect(newOrg.orgId).toBeGreaterThan(0);
});
});
describe('getAuditLogs', () => {
it('ควร return array of audit logs', async () => {
const logs = await adminApi.getAuditLogs();
expect(Array.isArray(logs)).toBe(true);
expect(logs.length).toBeGreaterThan(0);
});
it('ควร return logs ที่มี publicId, userName, action', async () => {
const logs = await adminApi.getAuditLogs();
expect(logs[0]).toHaveProperty('publicId');
expect(logs[0]).toHaveProperty('userName');
expect(logs[0]).toHaveProperty('action');
});
});
});