@tapjs/reporter
Version:
Pretty test output reporters for tap
47 lines • 2.03 kB
JavaScript
import { Box, Text } from 'ink';
import React from 'react';
import { assertName } from './assert-name.js';
import { ResultDetails } from './result-details.js';
export const ResultTag = ({ result, details = false, test, }) => {
const showCallsite = !details;
const c = result.skip ? '~ '
: result.todo ? '☐ '
: !result.ok ? '✖'
: '✓ ';
const textc = result.skip ? 'cyan'
: result.todo ? 'magenta'
: !result.ok ? 'red'
: 'green';
const pref = (React.createElement(Text, { bold: true, color: textc }, c));
let st = result.skip || result.todo || result.tapError;
const suff = typeof st === 'string' ? React.createElement(Text, { color: textc },
" ",
st) : React.createElement(React.Fragment, null);
const at = result.diag?.at;
const fileName = at?.fileName;
const callsite = showCallsite && at && fileName ?
React.createElement(Text, { dimColor: true },
fileName,
at.lineNumber && at.columnNumber ?
`:${at.lineNumber}:${at.columnNumber}`
: '')
: React.createElement(React.Fragment, null);
const name = assertName(result, test).trim();
const inline = name.length < 25 && !details;
return (React.createElement(Box, { flexDirection: "column", gap: 0 },
React.createElement(Box, null,
React.createElement(Box, null,
pref,
React.createElement(Text, null, name)),
suff,
inline ?
React.createElement(React.Fragment, null,
React.createElement(Text, null, " "),
callsite)
: React.createElement(React.Fragment, null)),
inline ?
React.createElement(React.Fragment, null)
: React.createElement(Box, { paddingLeft: 2 }, callsite),
!!details && React.createElement(ResultDetails, { result: result })));
};
//# sourceMappingURL=result-tag.js.map