import type { DefaultTestStepResult } from "@allurereport/core-api"; import { Code, LinkifiedText, allureIcons } from "@allurereport/web-components"; import type { FunctionComponent } from "preact"; import { useState } from "preact/hooks"; import { ArrowButton } from "@/components/ArrowButton"; import { MetadataList } from "@/components/Metadata"; import { type MetadataItem } from "@/components/ReportMetadata"; import { TestResultAttachment } from "@/components/TestResult/TestResultSteps/testResultAttachment"; import { TestResultStepInfo } from "@/components/TestResult/TestResultSteps/testResultStepInfo"; import TreeItemIcon from "@/components/Tree/TreeItemIcon"; import * as styles from "@/components/TestResult/TestResultSteps/styles.scss"; export const TestResultStepParameters = (props: { parameters: DefaultTestStepResult["parameters"] }) => { const { parameters } = props; return (
); }; export const TestResultStepsContent = (props: { item: DefaultTestStepResult }) => { const { item } = props; return (
{Boolean(item?.parameters?.length) && } {Boolean(item?.steps?.length) && ( <> {item.steps?.map((subItem, key) => { if (subItem.type === "step") { return ; } if (subItem.type === "attachment") { return ; } return null; })} )}
); }; export const TestResultStep: FunctionComponent<{ item: DefaultTestStepResult; stepIndex?: number; className?: string; }> = ({ item, stepIndex }) => { const [isOpened, setIsOpen] = useState(false); const hasContent = Boolean(item?.steps?.length || item?.parameters?.length); return (
setIsOpen(!isOpened)}> {!hasContent ? (
) : ( )} {stepIndex}
{hasContent && isOpened && }
); };