@tapjs/reporter
Version:
Pretty test output reporters for tap
33 lines • 1.62 kB
JavaScript
import { Box, Text } from 'ink';
import React from 'react';
import { useCountsLists } from './hooks/use-counts-lists.js';
import { useTestTime } from './hooks/use-test-time.js';
import { ms } from './ms.js';
import { TestBadge } from './test-badge.js';
import { TestResultsList } from './test-results-list.js';
export const TestSummary = ({ test, details = false, }) => {
const [counts] = useCountsLists(test);
const time = useTestTime(test);
const { total, todo, skip, fail } = counts;
const { exitCode, signal } = test.options;
const ok = !todo && !skip && !fail && !exitCode && !signal;
return (React.createElement(Box, { flexDirection: "column" },
React.createElement(Box, { gap: 1 },
React.createElement(TestBadge, { test: test }),
React.createElement(Text, null, test.name),
!!fail && React.createElement(Text, { color: "red" },
fail,
" failed"),
!!todo && React.createElement(Text, { color: "magenta" },
todo,
" todo"),
!!skip && React.createElement(Text, { color: "cyan" },
skip,
" skip"),
!!(fail || todo || skip) && React.createElement(Text, null, "of"),
React.createElement(Text, { bold: true }, total),
ok && React.createElement(Text, { color: "green" }, "OK"),
time !== 0 && (React.createElement(Text, { bold: true, dimColor: true }, ms(time)))),
React.createElement(TestResultsList, { test: test, details: details })));
};
//# sourceMappingURL=test-summary.js.map