feat(ai): add ADR-036 unified OCR architecture and frontend test coverage
- Add ADR-036 unified OCR architecture (typhoon-ocr via Ollama) - Extend AI execution profiles for OCR sandbox configuration - Add comprehensive frontend test coverage (components, hooks, services) - Add backend test coverage for document-numbering services - Update OCR sidecar with typhoon-ocr integration - Add AI policy service and execution profile management - Update AGENTS.md and architecture documentation
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
// File: frontend/lib/stores/__tests__/ui-store.test.ts
|
||||
// Change Log:
|
||||
// - 2026-06-13: Initial creation - test coverage for useUIStore (Zustand)
|
||||
|
||||
import { describe, it, expect, beforeEach } from 'vitest';
|
||||
import { act, renderHook } from '@testing-library/react';
|
||||
import { useUIStore } from '../ui-store';
|
||||
|
||||
describe('useUIStore', () => {
|
||||
beforeEach(() => {
|
||||
// รีเซ็ต store ก่อนแต่ละ test
|
||||
act(() => {
|
||||
useUIStore.setState({ isSidebarOpen: true });
|
||||
});
|
||||
});
|
||||
|
||||
it('ค่า default ควรเป็น isSidebarOpen: true', () => {
|
||||
const { result } = renderHook(() => useUIStore());
|
||||
expect(result.current.isSidebarOpen).toBe(true);
|
||||
});
|
||||
|
||||
it('toggleSidebar ควรสลับค่า isSidebarOpen จาก true เป็น false', () => {
|
||||
const { result } = renderHook(() => useUIStore());
|
||||
act(() => {
|
||||
result.current.toggleSidebar();
|
||||
});
|
||||
expect(result.current.isSidebarOpen).toBe(false);
|
||||
});
|
||||
|
||||
it('toggleSidebar ควรสลับค่า isSidebarOpen จาก false เป็น true', () => {
|
||||
act(() => {
|
||||
useUIStore.setState({ isSidebarOpen: false });
|
||||
});
|
||||
const { result } = renderHook(() => useUIStore());
|
||||
act(() => {
|
||||
result.current.toggleSidebar();
|
||||
});
|
||||
expect(result.current.isSidebarOpen).toBe(true);
|
||||
});
|
||||
|
||||
it('closeSidebar ควรตั้งค่า isSidebarOpen เป็น false', () => {
|
||||
const { result } = renderHook(() => useUIStore());
|
||||
act(() => {
|
||||
result.current.closeSidebar();
|
||||
});
|
||||
expect(result.current.isSidebarOpen).toBe(false);
|
||||
});
|
||||
|
||||
it('openSidebar ควรตั้งค่า isSidebarOpen เป็น true', () => {
|
||||
act(() => {
|
||||
useUIStore.setState({ isSidebarOpen: false });
|
||||
});
|
||||
const { result } = renderHook(() => useUIStore());
|
||||
act(() => {
|
||||
result.current.openSidebar();
|
||||
});
|
||||
expect(result.current.isSidebarOpen).toBe(true);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user