| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import { describe, expect, it } from 'vitest'
- import {
- computeSuccessAndNonSuccessRates,
- sumErrors,
- sumTotal,
- sumWarnings,
- toLogsBarChartData,
- } from './ProjectUsage.metrics'
- describe('ProjectUsage.metrics', () => {
- const rows = [
- { timestamp: '2025-10-22T13:00:00Z', ok_count: 90, warning_count: 5, error_count: 5 },
- { timestamp: '2025-10-22T13:01:00Z', ok_count: 50, warning_count: 10, error_count: 0 },
- ]
- it('toLogsBarChartData maps and coerces fields correctly', () => {
- const data = toLogsBarChartData(rows)
- expect(data).toHaveLength(2)
- expect(data[0]).toEqual({
- timestamp: '2025-10-22T13:00:00Z',
- ok_count: 90,
- warning_count: 5,
- error_count: 5,
- })
- })
- it('sum helpers compute totals correctly', () => {
- const data = toLogsBarChartData(rows)
- expect(sumTotal(data)).toBe(160)
- expect(sumWarnings(data)).toBe(15)
- expect(sumErrors(data)).toBe(5)
- })
- it('computeSuccessAndNonSuccessRates returns expected percentages', () => {
- const data = toLogsBarChartData(rows)
- const total = sumTotal(data)
- const warns = sumWarnings(data)
- const errs = sumErrors(data)
- const { successRate, nonSuccessRate } = computeSuccessAndNonSuccessRates(total, warns, errs)
- // success = 160 - (15 + 5) = 140 → 87.5%
- expect(successRate).toBeCloseTo(87.5)
- expect(nonSuccessRate).toBeCloseTo(12.5)
- })
- })
|