690615:1449 237 #01
CI / CD Pipeline / build (push) Failing after 3m41s
CI / CD Pipeline / deploy (push) Has been skipped

This commit is contained in:
2026-06-15 14:49:26 +07:00
parent b46c0874f2
commit 4dde6570c1
54 changed files with 7802 additions and 727 deletions
@@ -0,0 +1,79 @@
// File: lib/api/__tests__/dashboard.test.ts
// Change Log:
// - 2026-06-14: สร้างใหม่สำหรับ Phase 3 Coverage
import { describe, it, expect } from 'vitest';
import { dashboardApi } from '../dashboard';
describe('dashboardApi', () => {
describe('getStats', () => {
it('ควร return dashboard stats', async () => {
const stats = await dashboardApi.getStats();
expect(stats).toHaveProperty('totalDocuments');
expect(stats).toHaveProperty('documentsThisMonth');
expect(stats).toHaveProperty('pendingApprovals');
expect(stats).toHaveProperty('approved');
expect(stats).toHaveProperty('totalRfas');
expect(stats).toHaveProperty('totalCirculations');
});
it('ควร return numbers สำหรับ stats', async () => {
const stats = await dashboardApi.getStats();
expect(typeof stats.totalDocuments).toBe('number');
expect(typeof stats.documentsThisMonth).toBe('number');
expect(typeof stats.pendingApprovals).toBe('number');
});
});
describe('getRecentActivity', () => {
it('ควร return array of activity logs', async () => {
const activities = await dashboardApi.getRecentActivity();
expect(Array.isArray(activities)).toBe(true);
expect(activities.length).toBeGreaterThan(0);
});
it('ควร return activities ที่มี id, user, action, description', async () => {
const activities = await dashboardApi.getRecentActivity();
expect(activities[0]).toHaveProperty('id');
expect(activities[0]).toHaveProperty('user');
expect(activities[0]).toHaveProperty('action');
expect(activities[0]).toHaveProperty('description');
});
it('ควร return activities ที่มี user.name และ user.initials', async () => {
const activities = await dashboardApi.getRecentActivity();
expect(activities[0].user).toHaveProperty('name');
expect(activities[0].user).toHaveProperty('initials');
});
});
describe('getPendingTasks', () => {
it('ควร return array of pending tasks', async () => {
const tasks = await dashboardApi.getPendingTasks();
expect(Array.isArray(tasks)).toBe(true);
expect(tasks.length).toBeGreaterThan(0);
});
it('ควร return tasks ที่มี publicId, workflowCode, currentState', async () => {
const tasks = await dashboardApi.getPendingTasks();
expect(tasks[0]).toHaveProperty('publicId');
expect(tasks[0]).toHaveProperty('workflowCode');
expect(tasks[0]).toHaveProperty('currentState');
});
it('ควร return tasks ที่มี entityType, documentNumber, subject', async () => {
const tasks = await dashboardApi.getPendingTasks();
expect(tasks[0]).toHaveProperty('entityType');
expect(tasks[0]).toHaveProperty('documentNumber');
expect(tasks[0]).toHaveProperty('subject');
});
});
});