Files
dashboard-cpsp/components/counting/__tests__/CountingAccuracyWarningBanner.test.tsx
T
2026-10-01 13:23:45 +07:00

44 lines
1.5 KiB
TypeScript

import { render, screen } from '@testing-library/react';
import { describe, expect, it } from 'vitest';
import CountingAccuracyWarningBanner from '../CountingAccuracyWarningBanner.tsx';
import type { CountingAccuracyWarning } from '../../../utils/countingAccuracyWarning.ts';
const base: CountingAccuracyWarning = {
day: 2,
date: '2026-08-12',
iotCount: 900,
stockAkhir: 1000,
accuracy: 90,
ratioPercent: 90,
direction: 'under',
};
describe('CountingAccuracyWarningBanner', () => {
it('renders under-count manager checklist', () => {
render(<CountingAccuracyWarningBanner warning={base} />);
expect(screen.getByText(/IoT lebih rendah dari stock/i)).toBeInTheDocument();
expect(screen.getByText(/video kamera lengkap/i)).toBeInTheDocument();
expect(screen.getByText(/Hari 2/i)).toBeInTheDocument();
expect(screen.getByText(/90%/)).toBeInTheDocument();
});
it('renders over-count fraud / AI checklist', () => {
render(
<CountingAccuracyWarningBanner
warning={{
...base,
iotCount: 1060,
stockAkhir: 1000,
accuracy: 94.3,
ratioPercent: 106,
direction: 'over',
}}
/>
);
expect(screen.getByText(/lebih tinggi dari stock manual/i)).toBeInTheDocument();
expect(screen.getByText(/fraud/i)).toBeInTheDocument();
expect(screen.getByText(/akurasi 94,3%/i)).toBeInTheDocument();
expect(screen.queryByText(/106%/)).not.toBeInTheDocument();
});
});