@tapjs/reporter
Version:
Pretty test output reporters for tap
59 lines • 3.29 kB
JavaScript
import { Box, Text } from 'ink';
import React from 'react';
import { BailedOut } from './bailed-out.js';
import { useAssertTotals } from './hooks/use-assert-totals.js';
import { useComments } from './hooks/use-comments.js';
import { useSuiteTotals } from './hooks/use-suite-totals.js';
import { TimedOut } from './timed-out.js';
const Complete = ({ pass, fail = 0, total }) => (React.createElement(Text, { bold: true, dimColor: true },
pass + fail,
" of ",
total,
" complete"));
const Skip = ({ skip = 0 }) => (React.createElement(Text, { color: "cyan" },
skip,
" skip"));
const Fail = ({ fail = 0 }) => (React.createElement(Text, { color: "red", dimColor: fail === 0, bold: fail !== 0 },
fail,
" fail"));
const Pass = ({ pass }) => (React.createElement(Text, { color: "green" },
pass,
" pass"));
const Todo = ({ todo = 0 }) => todo ?
React.createElement(Box, { flexDirection: "column", alignItems: "flex-end" },
React.createElement(Text, { color: "magenta" },
todo,
" todo"),
React.createElement(Text, null, " "))
: React.createElement(React.Fragment, null);
export const SuiteSummary = ({ test }) => {
const suites = useSuiteTotals(test);
const asserts = useAssertTotals(test);
const comments = useComments(test);
return (React.createElement(Box, { flexDirection: "column" },
React.createElement(Box, { marginY: 1, flexDirection: "column" },
React.createElement(Box, null,
React.createElement(Box, { flexDirection: "row", gap: 2, alignSelf: "flex-end" },
React.createElement(Box, { flexDirection: "column" },
React.createElement(Text, { bold: true }, "Asserts:"),
React.createElement(Text, { bold: true }, "Suites:")),
React.createElement(Box, { flexDirection: "column", alignItems: "flex-end" },
React.createElement(Pass, { ...asserts }),
React.createElement(Pass, { ...suites })),
React.createElement(Box, { flexDirection: "column", alignItems: "flex-end" },
React.createElement(Fail, { ...asserts }),
React.createElement(Fail, { ...suites })),
(!!suites.skip || !!asserts.skip) && (React.createElement(Box, { flexDirection: "column", alignItems: "flex-end" },
React.createElement(Skip, { ...asserts }),
React.createElement(Skip, { ...suites }))),
React.createElement(Todo, { ...asserts }),
React.createElement(Box, { flexDirection: "column", alignItems: "flex-end" },
React.createElement(Complete, { ...asserts }),
React.createElement(Complete, { ...suites })))),
React.createElement(BailedOut, { test: test }),
React.createElement(TimedOut, { test: test })),
comments.length ?
React.createElement(Box, { flexDirection: "column", marginBottom: 1 }, comments.map((c, key) => (React.createElement(Text, { key: key, dimColor: true }, c))))
: React.createElement(React.Fragment, null)));
};
//# sourceMappingURL=suite-summary.js.map