65 lines
2.3 KiB
TypeScript
65 lines
2.3 KiB
TypeScript
// File: lib/api/__tests__/drawings.test.ts
|
|
// Change Log:
|
|
// - 2026-06-14: สร้างใหม่สำหรับ Phase 3 Coverage
|
|
|
|
import { describe, it, expect } from 'vitest';
|
|
import { drawingApi } from '../drawings';
|
|
|
|
describe('drawingApi', () => {
|
|
describe('getAll', () => {
|
|
it('ควร return array of drawings พร้อม meta', async () => {
|
|
const result = await drawingApi.getAll();
|
|
|
|
expect(result).toHaveProperty('data');
|
|
expect(result).toHaveProperty('meta');
|
|
expect(Array.isArray(result.data)).toBe(true);
|
|
});
|
|
|
|
it('ควร return drawings ที่มี publicId, drawingNumber, title', async () => {
|
|
const result = await drawingApi.getAll();
|
|
|
|
expect(result.data[0]).toHaveProperty('publicId');
|
|
expect(result.data[0]).toHaveProperty('drawingNumber');
|
|
expect(result.data[0]).toHaveProperty('title');
|
|
});
|
|
|
|
it('ควร return meta.total เท่ากับจำนวน drawings', async () => {
|
|
const result = await drawingApi.getAll();
|
|
|
|
expect(result.meta.total).toBe(result.data.length);
|
|
});
|
|
});
|
|
|
|
describe('getById', () => {
|
|
it('ควร return drawing เมื่อ id ถูกต้อง', async () => {
|
|
const drawing = await drawingApi.getById('dwg-001');
|
|
|
|
expect(drawing).toBeDefined();
|
|
expect(drawing?.publicId).toBe('dwg-001');
|
|
});
|
|
|
|
it('ควร return undefined เมื่อ id ไม่ถูกต้อง', async () => {
|
|
const drawing = await drawingApi.getById('non-existent');
|
|
|
|
expect(drawing).toBeUndefined();
|
|
});
|
|
});
|
|
|
|
describe('getByContract', () => {
|
|
it('ควร return array of drawings สำหรับ contract', async () => {
|
|
const result = await drawingApi.getByContract('contract-001');
|
|
|
|
expect(result).toHaveProperty('data');
|
|
expect(Array.isArray(result.data)).toBe(true);
|
|
});
|
|
|
|
it('ควร return drawings ที่มี discipline, status, revision', async () => {
|
|
const result = await drawingApi.getByContract('contract-001');
|
|
|
|
expect(result.data[0]).toHaveProperty('discipline');
|
|
expect(result.data[0]).toHaveProperty('status');
|
|
expect(result.data[0]).toHaveProperty('revision');
|
|
});
|
|
});
|
|
});
|