@allurereport/web-awesome 3.0.0-beta.7 → 3.0.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +4 -1
- package/dist/multi/141.app-f32e4213.js +1 -0
- package/dist/multi/222.app-f32e4213.js +1 -0
- package/dist/multi/335.app-f32e4213.js +1 -0
- package/dist/multi/34.app-f32e4213.js +1 -0
- package/dist/multi/349.app-f32e4213.js +1 -0
- package/dist/multi/378.app-f32e4213.js +1 -0
- package/dist/multi/406.app-f32e4213.js +1 -0
- package/dist/multi/476.app-f32e4213.js +1 -0
- package/dist/multi/53.app-f32e4213.js +1 -0
- package/dist/multi/584.app-f32e4213.js +1 -0
- package/dist/multi/690.app-f32e4213.js +1 -0
- package/dist/multi/747.app-f32e4213.js +1 -0
- package/dist/multi/767.app-f32e4213.js +1 -0
- package/dist/multi/{816.app-4468f0e2.js → 816.app-f32e4213.js} +1 -1
- package/dist/multi/83.app-f32e4213.js +1 -0
- package/dist/multi/873.app-f32e4213.js +1 -0
- package/dist/multi/920.app-f32e4213.js +1 -0
- package/dist/multi/991.app-f32e4213.js +1 -0
- package/dist/multi/app-f32e4213.js +2 -0
- package/dist/multi/manifest.json +20 -20
- package/dist/multi/styles-f32e4213.css +284 -0
- package/dist/single/app-7fa8e43f.js +2 -0
- package/dist/single/manifest.json +1 -1
- package/package.json +7 -4
- package/src/assets/scss/fonts.scss +2 -20
- package/src/components/{app/ArrowButton → ArrowButton}/index.tsx +3 -4
- package/src/components/{app/BaseLayout → BaseLayout}/index.tsx +18 -16
- package/src/components/{app/Footer → Footer}/FooterLogo.tsx +2 -2
- package/src/components/Footer/FooterVersion.tsx +33 -0
- package/src/components/Footer/index.tsx +13 -0
- package/src/components/Header/index.tsx +14 -0
- package/src/components/{app/LanguagePicker → LanguagePicker}/index.tsx +2 -3
- package/src/components/MainReport/index.tsx +19 -0
- package/src/components/{app/Metadata → Metadata}/index.tsx +23 -16
- package/src/components/{app/Metadata → Metadata}/styles.scss +1 -1
- package/src/components/{app/MetadataButton → MetadataButton}/index.tsx +3 -4
- package/src/components/{app/Modal → Modal}/index.tsx +9 -19
- package/src/components/{app/ReportBody → ReportBody}/Filters.tsx +5 -11
- package/src/components/{app/ReportBody → ReportBody}/HeaderActions.tsx +1 -1
- package/src/components/{app/ReportBody → ReportBody}/SortBy.tsx +12 -14
- package/src/components/{app/ReportBody → ReportBody}/index.tsx +4 -3
- package/src/components/{app/ReportHeader → ReportHeader}/ReportHeaderLabelList.tsx +2 -2
- package/src/components/{app/ReportHeader → ReportHeader}/ReportHeaderLogo.tsx +2 -2
- package/src/components/{app/ReportHeader → ReportHeader}/ReportHeaderPie.tsx +2 -2
- package/src/components/{app/ReportHeader → ReportHeader}/index.tsx +5 -5
- package/src/components/{app/ReportLogo → ReportLogo}/index.tsx +3 -4
- package/src/components/{app/ReportLogoFull → ReportLogoFull}/index.tsx +3 -4
- package/src/components/{app/ReportMetadata → ReportMetadata}/MetadataItem.tsx +2 -2
- package/src/components/{app/ReportMetadata → ReportMetadata}/MetadataSummary.tsx +8 -10
- package/src/components/{app/ReportMetadata → ReportMetadata}/MetadataTestType.tsx +5 -5
- package/src/components/ReportMetadata/MetadataWithIcon.tsx +21 -0
- package/src/components/{app/ReportMetadata → ReportMetadata}/index.tsx +5 -5
- package/src/components/{app/ReportMetadata → ReportMetadata}/styles.scss +1 -1
- package/src/components/{app/Tabs → Tabs}/index.tsx +6 -1
- package/src/components/{app/TestResult → TestResult}/TestResultAttachmentsView/index.tsx +1 -1
- package/src/components/{app/TestResult → TestResult}/TestResultDescription/index.tsx +4 -4
- package/src/components/TestResult/TestResultDropdown/index.tsx +23 -0
- package/src/components/{app/TestResult → TestResult}/TestResultEmpty/index.tsx +7 -7
- package/src/components/TestResult/TestResultError/index.tsx +59 -0
- package/src/components/{app/TestResult → TestResult}/TestResultHeader/index.tsx +10 -10
- package/src/components/{app/TestResult → TestResult}/TestResultHistory/TestResultHistoryItem.tsx +16 -17
- package/src/components/{app/TestResult → TestResult}/TestResultHistory/index.tsx +2 -2
- package/src/components/{app/TestResult → TestResult}/TestResultInfo/TestResultInfoStatuses.tsx +8 -9
- package/src/components/{app/TestResult → TestResult}/TestResultInfo/index.tsx +8 -10
- package/src/components/{app/TestResult → TestResult}/TestResultLinks/index.tsx +12 -16
- package/src/components/{app/TestResult → TestResult}/TestResultMetadata/index.tsx +4 -4
- package/src/components/{app/TestResult → TestResult}/TestResultNavigation/index.tsx +7 -9
- package/src/components/TestResult/TestResultOverview.tsx +43 -0
- package/src/components/{app/TestResult → TestResult}/TestResultParameters/index.tsx +4 -4
- package/src/components/{app/TestResult → TestResult}/TestResultPrevStatuses/index.tsx +6 -9
- package/src/components/TestResult/TestResultRetriesView/TestResultRetriesItem.tsx +52 -0
- package/src/components/TestResult/TestResultRetriesView/index.tsx +24 -0
- package/src/components/{app/TestResult → TestResult}/TestResultSetup/index.tsx +20 -12
- package/src/components/TestResult/TestResultSeverity/index.tsx +27 -0
- package/src/components/{app/TestResult → TestResult}/TestResultStatus/index.tsx +2 -2
- package/src/components/{app/TestResult → TestResult}/TestResultSteps/attachment.tsx +10 -10
- package/src/components/{app/TestResult → TestResult}/TestResultSteps/attachmentCode.tsx +7 -2
- package/src/components/{app/TestResult → TestResult}/TestResultSteps/attachmentImage.tsx +6 -3
- package/src/components/TestResult/TestResultSteps/attachmentVideo.tsx +15 -0
- package/src/components/{app/TestResult → TestResult}/TestResultSteps/index.tsx +17 -8
- package/src/components/{app/TestResult → TestResult}/TestResultSteps/testResultAttachment.tsx +25 -27
- package/src/components/{app/TestResult → TestResult}/TestResultSteps/testResultAttachmentInfo.tsx +8 -12
- package/src/components/{app/TestResult → TestResult}/TestResultSteps/testResultStep.tsx +34 -20
- package/src/components/TestResult/TestResultSteps/testResultStepInfo.tsx +30 -0
- package/src/components/{app/TestResult → TestResult}/TestResultSteps/wrongAttachment.tsx +1 -1
- package/src/components/{app/TestResult → TestResult}/TestResultTabs/index.tsx +1 -1
- package/src/components/{app/TestResult → TestResult}/TestResultTeardown/index.tsx +19 -9
- package/src/components/TestResult/TestStepsEmpty/index.tsx +23 -0
- package/src/components/TestResult/TestStepsEmpty/styles.scss +25 -0
- package/src/components/{app/TestResult → TestResult}/index.tsx +10 -10
- package/src/components/{app/ThemeButton → ThemeButton}/ThemeButton.tsx +2 -4
- package/src/components/{app/Tree → Tree}/Tree.tsx +10 -10
- package/src/components/{app/Tree → Tree}/TreeHeader.tsx +3 -3
- package/src/components/{app/Tree → Tree}/TreeItem.tsx +2 -2
- package/src/components/Tree/TreeItemIcon.tsx +32 -0
- package/src/components/{app/Tree → Tree}/index.tsx +5 -13
- package/src/i18n/locales/am.json +3 -1
- package/src/i18n/locales/az.json +3 -1
- package/src/i18n/locales/de.json +3 -1
- package/src/i18n/locales/en.json +4 -1
- package/src/i18n/locales/es.json +3 -1
- package/src/i18n/locales/fr.json +3 -1
- package/src/i18n/locales/he.json +3 -1
- package/src/i18n/locales/it.json +3 -1
- package/src/i18n/locales/ja.json +3 -1
- package/src/i18n/locales/ka.json +3 -1
- package/src/i18n/locales/kr.json +3 -1
- package/src/i18n/locales/nl.json +3 -1
- package/src/i18n/locales/pl.json +3 -1
- package/src/i18n/locales/pt.json +3 -1
- package/src/i18n/locales/ru.json +3 -1
- package/src/i18n/locales/sv.json +3 -1
- package/src/i18n/locales/tr.json +3 -1
- package/src/i18n/locales/zh.json +3 -1
- package/src/index.html +1 -0
- package/src/index.tsx +2 -2
- package/src/stores/index.ts +1 -1
- package/src/stores/testResults.ts +6 -2
- package/src/stores/tree.ts +43 -12
- package/src/utils/isMac.ts +6 -5
- package/src/utils/loadFromLocalStorage.ts +8 -0
- package/src/utils/treeFilters.ts +107 -58
- package/test/utils/treeFilters.test.ts +25 -1
- package/tsconfig.json +5 -3
- package/types.d.ts +15 -2
- package/vitest.config.ts +7 -1
- package/webpack.config.js +4 -0
- package/dist/multi/141.app-4468f0e2.js +0 -1
- package/dist/multi/222.app-4468f0e2.js +0 -1
- package/dist/multi/335.app-4468f0e2.js +0 -1
- package/dist/multi/34.app-4468f0e2.js +0 -1
- package/dist/multi/349.app-4468f0e2.js +0 -1
- package/dist/multi/378.app-4468f0e2.js +0 -1
- package/dist/multi/406.app-4468f0e2.js +0 -1
- package/dist/multi/476.app-4468f0e2.js +0 -1
- package/dist/multi/53.app-4468f0e2.js +0 -1
- package/dist/multi/584.app-4468f0e2.js +0 -1
- package/dist/multi/690.app-4468f0e2.js +0 -1
- package/dist/multi/747.app-4468f0e2.js +0 -1
- package/dist/multi/767.app-4468f0e2.js +0 -1
- package/dist/multi/83.app-4468f0e2.js +0 -1
- package/dist/multi/873.app-4468f0e2.js +0 -1
- package/dist/multi/920.app-4468f0e2.js +0 -1
- package/dist/multi/991.app-4468f0e2.js +0 -1
- package/dist/multi/app-4468f0e2.js +0 -2
- package/dist/multi/styles-4468f0e2.css +0 -363
- package/dist/single/app-33b3c367.js +0 -2
- package/src/assets/fonts/JetBrainsMono_vf.woff +0 -0
- package/src/assets/fonts/JetBrainsMono_vf.woff2 +0 -0
- package/src/assets/fonts/pt-root-ui_vf.woff +0 -0
- package/src/assets/fonts/pt-root-ui_vf.woff2 +0 -0
- package/src/assets/scss/mixins.scss +0 -26
- package/src/assets/svg/arrows-chevron-down.svg +0 -5
- package/src/assets/svg/github.svg +0 -5
- package/src/assets/svg/line-alerts-notification-box.svg +0 -3
- package/src/assets/svg/line-arrows-chevron-down-double.svg +0 -3
- package/src/assets/svg/line-arrows-chevron-down.svg +0 -3
- package/src/assets/svg/line-arrows-chevron-right.svg +0 -3
- package/src/assets/svg/line-arrows-chevron-up-double.svg +0 -3
- package/src/assets/svg/line-arrows-chevron-up.svg +0 -3
- package/src/assets/svg/line-arrows-corner-down-right.svg +0 -3
- package/src/assets/svg/line-arrows-expand-3.svg +0 -3
- package/src/assets/svg/line-arrows-refresh-ccw-1.svg +0 -3
- package/src/assets/svg/line-arrows-sort-line-asc.svg +0 -3
- package/src/assets/svg/line-arrows-sort-line-desc.svg +0 -3
- package/src/assets/svg/line-arrows-switch-vertical-1.svg +0 -3
- package/src/assets/svg/line-dev-bug-2.svg +0 -3
- package/src/assets/svg/line-dev-code-square.svg +0 -3
- package/src/assets/svg/line-files-file-attachment-2.svg +0 -3
- package/src/assets/svg/line-general-check.svg +0 -3
- package/src/assets/svg/line-general-checklist3.svg +0 -3
- package/src/assets/svg/line-general-copy-3.svg +0 -3
- package/src/assets/svg/line-general-download-cloud.svg +0 -3
- package/src/assets/svg/line-general-equal.svg +0 -3
- package/src/assets/svg/line-general-home-line.svg +0 -3
- package/src/assets/svg/line-general-link-1.svg +0 -3
- package/src/assets/svg/line-general-link-external.svg +0 -3
- package/src/assets/svg/line-general-search-md.svg +0 -3
- package/src/assets/svg/line-general-settings-1.svg +0 -3
- package/src/assets/svg/line-general-x-close.svg +0 -3
- package/src/assets/svg/line-general-zap.svg +0 -3
- package/src/assets/svg/line-helpers-flag.svg +0 -4
- package/src/assets/svg/line-helpers-play-circle.svg +0 -4
- package/src/assets/svg/line-images-image.svg +0 -3
- package/src/assets/svg/line-security-key.svg +0 -3
- package/src/assets/svg/line-shapes-dot-circle.svg +0 -3
- package/src/assets/svg/line-shapes-moon.svg +0 -3
- package/src/assets/svg/line-shapes-sun.svg +0 -3
- package/src/assets/svg/line-time-clock-stopwatch.svg +0 -3
- package/src/assets/svg/report-logo.svg +0 -64
- package/src/assets/svg/solid-alert-circle.svg +0 -3
- package/src/assets/svg/solid-check-circle.svg +0 -3
- package/src/assets/svg/solid-help-circle.svg +0 -3
- package/src/assets/svg/solid-minus-circle.svg +0 -3
- package/src/assets/svg/solid-x-circle.svg +0 -3
- package/src/assets/svg/spinner.svg +0 -18
- package/src/assets/svg/view-off.svg +0 -12
- package/src/assets/svg/view.svg +0 -11
- package/src/components/app/Footer/FooterVersion.tsx +0 -27
- package/src/components/app/Footer/index.tsx +0 -13
- package/src/components/app/Header/index.tsx +0 -17
- package/src/components/app/MainReport/index.tsx +0 -19
- package/src/components/app/ReportMetadata/MetadataWithIcon.tsx +0 -25
- package/src/components/app/TestResult/TestResultDropdown/index.tsx +0 -19
- package/src/components/app/TestResult/TestResultError/index.tsx +0 -53
- package/src/components/app/TestResult/TestResultOverview.tsx +0 -40
- package/src/components/app/TestResult/TestResultRetriesView/TestResultRetriesItem.tsx +0 -50
- package/src/components/app/TestResult/TestResultRetriesView/index.tsx +0 -24
- package/src/components/app/TestResult/TestResultSeverity/index.tsx +0 -34
- package/src/components/app/TestResult/TestResultSteps/attachmentVideo.tsx +0 -12
- package/src/components/app/TestResult/TestResultSteps/testResultStepInfo.tsx +0 -33
- package/src/components/app/Tree/TreeItemIcon.tsx +0 -35
- package/src/components/commons/Button/index.tsx +0 -176
- package/src/components/commons/Button/styles.scss +0 -560
- package/src/components/commons/Counter/index.tsx +0 -29
- package/src/components/commons/Counter/styles.scss +0 -21
- package/src/components/commons/Label/index.tsx +0 -11
- package/src/components/commons/Label/styles.scss +0 -7
- package/src/components/commons/Link/index.tsx +0 -20
- package/src/components/commons/Link/styles.scss +0 -46
- package/src/components/commons/Loadable/index.tsx +0 -32
- package/src/components/commons/Menu/index.tsx +0 -198
- package/src/components/commons/Menu/styles.scss +0 -94
- package/src/components/commons/PageLoader/index.tsx +0 -10
- package/src/components/commons/PageLoader/styles.scss +0 -29
- package/src/components/commons/SearchBox/index.tsx +0 -64
- package/src/components/commons/SearchBox/styles.scss +0 -58
- package/src/components/commons/Spinner/index.tsx +0 -8
- package/src/components/commons/SuccessRatePieChart/index.tsx +0 -52
- package/src/components/commons/SuccessRatePieChart/styles.scss +0 -11
- package/src/components/commons/SvgIcon/index.tsx +0 -46
- package/src/components/commons/SvgIcon/styles.scss +0 -26
- package/src/components/commons/Toggle/index.tsx +0 -30
- package/src/components/commons/Toggle/styles.scss +0 -48
- package/src/components/commons/Tooltip/index.tsx +0 -123
- package/src/components/commons/Tooltip/styles.scss +0 -38
- package/src/components/commons/Typography/index.tsx +0 -99
- package/src/hooks/useDebouncedCallback.ts +0 -31
- /package/dist/multi/{app-4468f0e2.js.LICENSE.txt → app-f32e4213.js.LICENSE.txt} +0 -0
- /package/dist/single/{app-33b3c367.js.LICENSE.txt → app-7fa8e43f.js.LICENSE.txt} +0 -0
- /package/src/assets/scss/{code.css → code.scss} +0 -0
- /package/src/components/{app/ArrowButton → ArrowButton}/styles.scss +0 -0
- /package/src/components/{app/BaseLayout → BaseLayout}/styles.scss +0 -0
- /package/src/components/{app/Footer → Footer}/styles.scss +0 -0
- /package/src/components/{app/Header → Header}/styles.scss +0 -0
- /package/src/components/{app/MetadataButton → MetadataButton}/styles.scss +0 -0
- /package/src/components/{app/Modal → Modal}/styles.scss +0 -0
- /package/src/components/{app/ReportBody → ReportBody}/context.tsx +0 -0
- /package/src/components/{app/ReportBody → ReportBody}/styles.scss +0 -0
- /package/src/components/{app/ReportHeader → ReportHeader}/styles.scss +0 -0
- /package/src/components/{app/ReportLogo → ReportLogo}/styles.scss +0 -0
- /package/src/components/{app/ReportLogoFull → ReportLogoFull}/styles.scss +0 -0
- /package/src/components/{app/Tabs → Tabs}/styles.scss +0 -0
- /package/src/components/{app/TestResult → TestResult}/TestResultAttachmentsView/styles.scss +0 -0
- /package/src/components/{app/TestResult → TestResult}/TestResultDescription/styles.scss +0 -0
- /package/src/components/{app/TestResult → TestResult}/TestResultDropdown/styles.scss +0 -0
- /package/src/components/{app/TestResult → TestResult}/TestResultEmpty/styles.scss +0 -0
- /package/src/components/{app/TestResult → TestResult}/TestResultError/styles.scss +0 -0
- /package/src/components/{app/TestResult → TestResult}/TestResultHeader/styles.scss +0 -0
- /package/src/components/{app/TestResult → TestResult}/TestResultHistory/styles.scss +0 -0
- /package/src/components/{app/TestResult → TestResult}/TestResultInfo/styles.scss +0 -0
- /package/src/components/{app/TestResult → TestResult}/TestResultLinks/styles.scss +0 -0
- /package/src/components/{app/TestResult → TestResult}/TestResultMetadata/styles.scss +0 -0
- /package/src/components/{app/TestResult → TestResult}/TestResultNavigation/styles.scss +0 -0
- /package/src/components/{app/TestResult → TestResult}/TestResultParameters/styles.scss +0 -0
- /package/src/components/{app/TestResult → TestResult}/TestResultPrevStatuses/styles.scss +0 -0
- /package/src/components/{app/TestResult → TestResult}/TestResultRetriesView/styles.scss +0 -0
- /package/src/components/{app/TestResult → TestResult}/TestResultSeverity/styles.scss +0 -0
- /package/src/components/{app/TestResult → TestResult}/TestResultStatus/styles.scss +0 -0
- /package/src/components/{app/TestResult → TestResult}/TestResultSteps/HtmlAttachmentPreview.tsx +0 -0
- /package/src/components/{app/TestResult → TestResult}/TestResultSteps/styles.scss +0 -0
- /package/src/components/{app/TestResult → TestResult}/TestResultTabs/styles.scss +0 -0
- /package/src/components/{app/Tree → Tree}/styles.scss +0 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type DefaultTestStepResult, formatDuration } from "@allurereport/core-api";
|
|
2
|
+
import { SvgIcon, Text, allureIcons } from "@allurereport/web-components";
|
|
3
|
+
import * as styles from "@/components/TestResult/TestResultSteps/styles.scss";
|
|
4
|
+
|
|
5
|
+
export const TestResultStepInfo = (props: { item: DefaultTestStepResult }) => {
|
|
6
|
+
const { item } = props;
|
|
7
|
+
const formattedDuration = formatDuration(item?.duration as number);
|
|
8
|
+
const stepLength = item.steps?.length;
|
|
9
|
+
const attachmentLength = item.steps?.filter((step) => step.type === "attachment")?.length;
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<div className={styles["item-info"]}>
|
|
13
|
+
{Boolean(stepLength) && (
|
|
14
|
+
<div className={styles["item-info-step"]}>
|
|
15
|
+
<SvgIcon id={allureIcons.lineArrowsCornerDownRight} className={styles["item-info-step-icon"]} />
|
|
16
|
+
<Text size={"s"}>{stepLength}</Text>
|
|
17
|
+
</div>
|
|
18
|
+
)}
|
|
19
|
+
{Boolean(attachmentLength) && (
|
|
20
|
+
<div className={styles["item-info-step"]}>
|
|
21
|
+
<SvgIcon id={allureIcons.lineFilesFileAttachment2} className={styles["item-info-step-icon"]} />
|
|
22
|
+
<Text size={"s"}>{attachmentLength}</Text>
|
|
23
|
+
</div>
|
|
24
|
+
)}
|
|
25
|
+
<Text type="ui" size={"s"} className={styles["item-time"]}>
|
|
26
|
+
{formattedDuration}
|
|
27
|
+
</Text>
|
|
28
|
+
</div>
|
|
29
|
+
);
|
|
30
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { Text } from "@allurereport/web-components";
|
|
1
2
|
import { type ComponentChildren, createContext } from "preact";
|
|
2
3
|
import { useContext, useState } from "preact/hooks";
|
|
3
|
-
import { Text } from "@/components/commons/Typography";
|
|
4
4
|
import * as styles from "./styles.scss";
|
|
5
5
|
|
|
6
6
|
type TestResultTabsContextT = {
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { allureIcons } from "@allurereport/web-components";
|
|
1
2
|
import type { FunctionalComponent } from "preact";
|
|
2
3
|
import { useState } from "preact/hooks";
|
|
3
4
|
import type { AllureAwesomeTestResult } from "types";
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
import { TestResultStep } from "@/components/app/TestResult/TestResultSteps/testResultStep";
|
|
5
|
+
import { TestResultDropdown } from "@/components/TestResult/TestResultDropdown";
|
|
6
|
+
import * as styles from "@/components/TestResult/TestResultSteps/styles.scss";
|
|
7
|
+
import { TestResultAttachment } from "@/components/TestResult/TestResultSteps/testResultAttachment";
|
|
8
|
+
import { TestResultStep } from "@/components/TestResult/TestResultSteps/testResultStep";
|
|
9
9
|
import { useI18n } from "@/stores/locale";
|
|
10
|
+
import { collapsedTrees, toggleTree } from "@/stores/tree";
|
|
10
11
|
|
|
11
12
|
const typeMap = {
|
|
12
13
|
before: TestResultStep,
|
|
@@ -17,18 +18,27 @@ const typeMap = {
|
|
|
17
18
|
|
|
18
19
|
export type TestResultTeardownProps = {
|
|
19
20
|
teardown: AllureAwesomeTestResult["teardown"];
|
|
21
|
+
id: string;
|
|
20
22
|
};
|
|
21
23
|
|
|
22
|
-
export const TestResultTeardown: FunctionalComponent<TestResultTeardownProps> = ({ teardown }) => {
|
|
23
|
-
const
|
|
24
|
+
export const TestResultTeardown: FunctionalComponent<TestResultTeardownProps> = ({ teardown, id }) => {
|
|
25
|
+
const teardownId = `${id}-teardown`;
|
|
26
|
+
const isEarlyCollapsed = !collapsedTrees.value.has(teardownId);
|
|
27
|
+
const [isOpened, setIsOpen] = useState<boolean>(isEarlyCollapsed);
|
|
28
|
+
|
|
29
|
+
const handleClick = () => {
|
|
30
|
+
setIsOpen(!isOpened);
|
|
31
|
+
toggleTree(teardownId);
|
|
32
|
+
};
|
|
33
|
+
|
|
24
34
|
const { t } = useI18n("execution");
|
|
25
35
|
|
|
26
36
|
return (
|
|
27
37
|
<div className={styles["test-result-steps"]}>
|
|
28
38
|
<TestResultDropdown
|
|
29
|
-
icon={lineHelpersFlag
|
|
39
|
+
icon={allureIcons.lineHelpersFlag}
|
|
30
40
|
isOpened={isOpened}
|
|
31
|
-
setIsOpen={
|
|
41
|
+
setIsOpen={handleClick}
|
|
32
42
|
counter={teardown?.length}
|
|
33
43
|
title={t("teardown")}
|
|
34
44
|
/>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { SvgIcon, Text, allureIcons } from "@allurereport/web-components";
|
|
2
|
+
import { useI18n } from "@/stores";
|
|
3
|
+
import * as styles from "./styles.scss";
|
|
4
|
+
|
|
5
|
+
const TestStepsEmpty = () => {
|
|
6
|
+
const { t } = useI18n("empty");
|
|
7
|
+
return (
|
|
8
|
+
<div className={styles["test-steps-empty"]}>
|
|
9
|
+
<div className={styles["test-steps-empty-wrapper"]}>
|
|
10
|
+
<SvgIcon
|
|
11
|
+
size={"m"}
|
|
12
|
+
width={"32px"}
|
|
13
|
+
height={"32px"}
|
|
14
|
+
id={allureIcons.lineDevCodeSquare}
|
|
15
|
+
className={styles["test-steps-empty-icon"]}
|
|
16
|
+
/>
|
|
17
|
+
<Text className={styles["test-steps-empty-text"]}>{t("no-test-steps-results")}</Text>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export default TestStepsEmpty;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
.test-steps-empty {
|
|
2
|
+
display: flex;
|
|
3
|
+
justify-content: center;
|
|
4
|
+
flex-wrap: wrap;
|
|
5
|
+
min-height: 320px;
|
|
6
|
+
align-items: center;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.test-steps-empty-wrapper {
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-direction: column;
|
|
12
|
+
align-items: center;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.test-steps-empty-icon {
|
|
16
|
+
width: 32px;
|
|
17
|
+
height: 32px;
|
|
18
|
+
margin-bottom: 16px;
|
|
19
|
+
flex: 1 1 auto;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.test-steps-empty-text {
|
|
23
|
+
color: var(--on-text-secondary);
|
|
24
|
+
flex: 1 1 auto;
|
|
25
|
+
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { FunctionComponent, FunctionalComponent } from "preact";
|
|
2
2
|
import type { AllureAwesomeTestResult } from "types";
|
|
3
|
-
import * as styles from "@/components/
|
|
4
|
-
import { TestResultAttachmentView } from "@/components/
|
|
5
|
-
import TestResultEmpty from "@/components/
|
|
6
|
-
import { TestResultHeader } from "@/components/
|
|
7
|
-
import TestResultHistoryView from "@/components/
|
|
8
|
-
import { TestResultInfo } from "@/components/
|
|
9
|
-
import { TestResultOverview } from "@/components/
|
|
10
|
-
import { TestResultRetriesView } from "@/components/
|
|
11
|
-
import { TestResultTabs, useTestResultTabsContext } from "@/components/
|
|
3
|
+
import * as styles from "@/components/BaseLayout/styles.scss";
|
|
4
|
+
import { TestResultAttachmentView } from "@/components/TestResult/TestResultAttachmentsView";
|
|
5
|
+
import TestResultEmpty from "@/components/TestResult/TestResultEmpty";
|
|
6
|
+
import { TestResultHeader } from "@/components/TestResult/TestResultHeader";
|
|
7
|
+
import TestResultHistoryView from "@/components/TestResult/TestResultHistory";
|
|
8
|
+
import { TestResultInfo } from "@/components/TestResult/TestResultInfo";
|
|
9
|
+
import { TestResultOverview } from "@/components/TestResult/TestResultOverview";
|
|
10
|
+
import { TestResultRetriesView } from "@/components/TestResult/TestResultRetriesView";
|
|
11
|
+
import { TestResultTabs, useTestResultTabsContext } from "@/components/TestResult/TestResultTabs";
|
|
12
12
|
|
|
13
13
|
export type TestResultViewProps = {
|
|
14
14
|
testResult?: AllureAwesomeTestResult;
|
|
@@ -16,7 +16,7 @@ export type TestResultViewProps = {
|
|
|
16
16
|
|
|
17
17
|
const TestResultView: FunctionalComponent<TestResultViewProps> = ({ testResult }) => {
|
|
18
18
|
const { currentTab } = useTestResultTabsContext();
|
|
19
|
-
const viewMap = {
|
|
19
|
+
const viewMap: Record<string, any> = {
|
|
20
20
|
overview: TestResultOverview,
|
|
21
21
|
history: TestResultHistoryView,
|
|
22
22
|
attachments: TestResultAttachmentView,
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
+
import { IconButton, allureIcons } from "@allurereport/web-components";
|
|
1
2
|
import { useEffect } from "preact/hooks";
|
|
2
|
-
import lineShapesMoonIcon from "@/assets/svg/line-shapes-moon.svg";
|
|
3
|
-
import lineShapesSunIcon from "@/assets/svg/line-shapes-sun.svg";
|
|
4
|
-
import { IconButton } from "@/components/commons/Button";
|
|
5
3
|
import { getTheme, themeStore, toggleTheme } from "@/stores/theme";
|
|
6
4
|
|
|
7
5
|
export const ThemeButton = () => {
|
|
@@ -15,7 +13,7 @@ export const ThemeButton = () => {
|
|
|
15
13
|
<IconButton
|
|
16
14
|
onClick={toggleTheme}
|
|
17
15
|
style="ghost"
|
|
18
|
-
icon={theme === "light" ?
|
|
16
|
+
icon={theme === "light" ? allureIcons.lineShapesMoon : allureIcons.lineShapesSun}
|
|
19
17
|
size="s"
|
|
20
18
|
/>
|
|
21
19
|
);
|
|
@@ -2,8 +2,9 @@ import type { Statistic } from "@allurereport/core-api";
|
|
|
2
2
|
import cx from "clsx";
|
|
3
3
|
import type { FunctionComponent } from "preact";
|
|
4
4
|
import { useState } from "preact/hooks";
|
|
5
|
-
import
|
|
6
|
-
import
|
|
5
|
+
import type { AllureAwesomeRecursiveTree, AllureAwesomeStatus } from "types";
|
|
6
|
+
import TreeItem from "@/components/Tree/TreeItem";
|
|
7
|
+
import { collapsedTrees, toggleTree } from "@/stores/tree";
|
|
7
8
|
import TreeHeader from "./TreeHeader";
|
|
8
9
|
import * as styles from "./styles.scss";
|
|
9
10
|
|
|
@@ -16,9 +17,13 @@ interface TreeProps {
|
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
const Tree: FunctionComponent<TreeProps> = ({ tree, statusFilter, root, name, statistic }) => {
|
|
19
|
-
const
|
|
20
|
-
const
|
|
20
|
+
const isEarlyCollapsed = collapsedTrees.value.has(tree.nodeId);
|
|
21
|
+
const haveFailedSteps = statistic === undefined || !!statistic?.failed || !!statistic?.broken;
|
|
22
|
+
const [isOpened, setIsOpen] = useState(() => (isEarlyCollapsed ? !haveFailedSteps : haveFailedSteps));
|
|
23
|
+
|
|
24
|
+
const toggleTreeHeader = () => {
|
|
21
25
|
setIsOpen(!isOpened);
|
|
26
|
+
toggleTree(tree.nodeId);
|
|
22
27
|
};
|
|
23
28
|
const emptyTree = !tree?.trees?.length && !tree?.leaves?.length;
|
|
24
29
|
|
|
@@ -60,12 +65,7 @@ const Tree: FunctionComponent<TreeProps> = ({ tree, statusFilter, root, name, st
|
|
|
60
65
|
return (
|
|
61
66
|
<div className={styles.tree}>
|
|
62
67
|
{name && (
|
|
63
|
-
<TreeHeader
|
|
64
|
-
categoryTitle={name}
|
|
65
|
-
isOpened={isOpened}
|
|
66
|
-
toggleTree={toggleTree}
|
|
67
|
-
statistic={statistic}
|
|
68
|
-
/>
|
|
68
|
+
<TreeHeader categoryTitle={name} isOpened={isOpened} toggleTree={toggleTreeHeader} statistic={statistic} />
|
|
69
69
|
)}
|
|
70
70
|
{treeContent}
|
|
71
71
|
</div>
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { type Statistic, statusesList } from "@allurereport/core-api";
|
|
2
|
+
import { Loadable } from "@allurereport/web-components";
|
|
3
|
+
import { Text } from "@allurereport/web-components";
|
|
2
4
|
import { clsx } from "clsx";
|
|
3
5
|
import { type FunctionComponent } from "preact";
|
|
4
|
-
import { ArrowButton } from "@/components/
|
|
5
|
-
import { Loadable } from "@/components/commons/Loadable";
|
|
6
|
-
import { Text } from "@/components/commons/Typography";
|
|
6
|
+
import { ArrowButton } from "@/components/ArrowButton";
|
|
7
7
|
import { statsStore } from "@/stores";
|
|
8
8
|
import { treeFiltersStore } from "@/stores/tree";
|
|
9
9
|
import * as styles from "./styles.scss";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type TestStatus, formatDuration } from "@allurereport/core-api";
|
|
2
|
+
import { Text } from "@allurereport/web-components";
|
|
2
3
|
import type { FunctionComponent } from "preact";
|
|
3
|
-
import TreeItemIcon from "@/components/
|
|
4
|
-
import { Text } from "@/components/commons/Typography";
|
|
4
|
+
import TreeItemIcon from "@/components/Tree/TreeItemIcon";
|
|
5
5
|
import { navigateTo } from "@/index";
|
|
6
6
|
import * as styles from "./styles.scss";
|
|
7
7
|
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { SvgIcon, allureIcons } from "@allurereport/web-components";
|
|
2
|
+
import { clsx } from "clsx";
|
|
3
|
+
import type { FunctionalComponent } from "preact";
|
|
4
|
+
import * as styles from "./styles.scss";
|
|
5
|
+
|
|
6
|
+
interface TestStatusIconProps {
|
|
7
|
+
status?: "failed" | "broken" | "passed" | "skipped" | "unknown";
|
|
8
|
+
className?: string;
|
|
9
|
+
classNameIcon?: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const { solidAlertCircle, solidCheckCircle, solidHelpCircle, solidMinusCircle, solidXCircle } = allureIcons;
|
|
13
|
+
|
|
14
|
+
const icons = {
|
|
15
|
+
failed: solidXCircle,
|
|
16
|
+
broken: solidAlertCircle,
|
|
17
|
+
passed: solidCheckCircle,
|
|
18
|
+
skipped: solidMinusCircle,
|
|
19
|
+
unknown: solidHelpCircle,
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const TreeItemIcon: FunctionalComponent<TestStatusIconProps> = ({ status = "unknown", className, classNameIcon }) => {
|
|
23
|
+
const statusClass = clsx(styles[`status-${status}`], classNameIcon);
|
|
24
|
+
|
|
25
|
+
return (
|
|
26
|
+
<div data-testid={`tree-leaf-status-${status}`} className={clsx(styles["tree-item-icon"], className)}>
|
|
27
|
+
<SvgIcon className={statusClass} id={icons[status]} />
|
|
28
|
+
</div>
|
|
29
|
+
);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export default TreeItemIcon;
|
|
@@ -1,23 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import { Loadable } from "@/components/commons/Loadable";
|
|
6
|
-
import { PageLoader } from "@/components/commons/PageLoader";
|
|
7
|
-
import { Text } from "@/components/commons/Typography";
|
|
1
|
+
import { Button, Loadable, PageLoader, Text } from "@allurereport/web-components";
|
|
2
|
+
import type { AllureAwesomeStatus } from "types";
|
|
3
|
+
import { useTabsContext } from "@/components/Tabs";
|
|
4
|
+
import Tree from "@/components/Tree/Tree";
|
|
8
5
|
import { useI18n } from "@/stores/locale";
|
|
9
|
-
import { clearTreeFilters, filteredTree, noTests, noTestsFound,
|
|
10
|
-
import type { AllureAwesomeStatus } from "../../../../types";
|
|
6
|
+
import { clearTreeFilters, filteredTree, noTests, noTestsFound, treeStore } from "@/stores/tree";
|
|
11
7
|
import * as styles from "./styles.scss";
|
|
12
8
|
|
|
13
9
|
export const TreeList = () => {
|
|
14
10
|
const { t } = useI18n("empty");
|
|
15
11
|
const { currentTab } = useTabsContext();
|
|
16
12
|
|
|
17
|
-
useEffect(() => {
|
|
18
|
-
setTreeStatus(currentTab as AllureAwesomeStatus);
|
|
19
|
-
}, [currentTab]);
|
|
20
|
-
|
|
21
13
|
return (
|
|
22
14
|
<Loadable
|
|
23
15
|
source={treeStore}
|
package/src/i18n/locales/am.json
CHANGED
|
@@ -65,7 +65,9 @@
|
|
|
65
65
|
"clear-filters": "Մաքրել ֆիլտրները",
|
|
66
66
|
"no-attachments-results": "Կցորդների մասին տեղեկություններ չկան",
|
|
67
67
|
"no-history-results": "Պատմության մասին տեղեկություններ չկան",
|
|
68
|
-
"no-retries-results": "Կրկնությունների մասին տեղեկություններ չկան"
|
|
68
|
+
"no-retries-results": "Կրկնությունների մասին տեղեկություններ չկան",
|
|
69
|
+
"no-test-steps-results": "Թեստի քայլերի մասին տեղեկատվությունը հասանելի չէ։",
|
|
70
|
+
"no-test-case-results": "Թեստի դեպքերի արդյունքներ չկան։"
|
|
69
71
|
},
|
|
70
72
|
"severity": {
|
|
71
73
|
"blocker": "արգելափակում",
|
package/src/i18n/locales/az.json
CHANGED
|
@@ -65,7 +65,9 @@
|
|
|
65
65
|
"clear-filters": "Filtrləri təmizlə",
|
|
66
66
|
"no-attachments-results": "Əlavə məlumatı mövcud deyil",
|
|
67
67
|
"no-history-results": "Tarixçə məlumatı mövcud deyil",
|
|
68
|
-
"no-retries-results": "Təkrar məlumatı mövcud deyil"
|
|
68
|
+
"no-retries-results": "Təkrar məlumatı mövcud deyil",
|
|
69
|
+
"no-test-steps-results": "Test addımları haqqında məlumat mövcud deyil",
|
|
70
|
+
"no-test-case-results": "Test halları haqqında nəticələr yoxdur"
|
|
69
71
|
},
|
|
70
72
|
"severity": {
|
|
71
73
|
"blocker": "bloklayıcı",
|
package/src/i18n/locales/de.json
CHANGED
|
@@ -65,7 +65,9 @@
|
|
|
65
65
|
"clear-filters": "Filter löschen",
|
|
66
66
|
"no-attachments-results": "Keine Anhängeinformationen verfügbar",
|
|
67
67
|
"no-history-results": "Keine Verlaufsinformationen verfügbar",
|
|
68
|
-
"no-retries-results": "Keine Wiederholungsinformationen verfügbar"
|
|
68
|
+
"no-retries-results": "Keine Wiederholungsinformationen verfügbar",
|
|
69
|
+
"no-test-steps-results": "Keine Informationen zu Testschritten verfügbar",
|
|
70
|
+
"no-test-case-results": "Keine Testergebnisse verfügbar"
|
|
69
71
|
},
|
|
70
72
|
"severity": {
|
|
71
73
|
"blocker": "Blocker",
|
package/src/i18n/locales/en.json
CHANGED
|
@@ -62,10 +62,13 @@
|
|
|
62
62
|
"empty": {
|
|
63
63
|
"no-results": "No results",
|
|
64
64
|
"no-tests-found": "No results found",
|
|
65
|
+
"no-message-provided": "No message is provided",
|
|
65
66
|
"clear-filters": "Clear filters",
|
|
66
67
|
"no-attachments-results": "No attachments information available",
|
|
67
68
|
"no-history-results": "No history information available",
|
|
68
|
-
"no-retries-results": "No retries information available"
|
|
69
|
+
"no-retries-results": "No retries information available",
|
|
70
|
+
"no-test-steps-results": "No test steps information available",
|
|
71
|
+
"no-test-case-results": "No test case results"
|
|
69
72
|
},
|
|
70
73
|
"severity": {
|
|
71
74
|
"blocker": "blocker",
|
package/src/i18n/locales/es.json
CHANGED
|
@@ -65,7 +65,9 @@
|
|
|
65
65
|
"clear-filters": "Limpiar filtros",
|
|
66
66
|
"no-attachments-results": "No hay información de adjuntos disponible",
|
|
67
67
|
"no-history-results": "No hay información de historial disponible",
|
|
68
|
-
"no-retries-results": "No hay información de reintentos disponible"
|
|
68
|
+
"no-retries-results": "No hay información de reintentos disponible",
|
|
69
|
+
"no-test-steps-results": "No hay información disponible sobre los pasos de prueba",
|
|
70
|
+
"no-test-case-results": "No hay resultados de casos de prueba"
|
|
69
71
|
},
|
|
70
72
|
"severity": {
|
|
71
73
|
"blocker": "bloqueante",
|
package/src/i18n/locales/fr.json
CHANGED
|
@@ -65,7 +65,9 @@
|
|
|
65
65
|
"clear-filters": "Effacer les filtres",
|
|
66
66
|
"no-attachments-results": "Aucune information sur les pièces jointes disponible",
|
|
67
67
|
"no-history-results": "Aucune information sur l'historique disponible",
|
|
68
|
-
"no-retries-results": "Aucune information sur les réessais disponible"
|
|
68
|
+
"no-retries-results": "Aucune information sur les réessais disponible",
|
|
69
|
+
"no-test-steps-results": "Aucune information sur les étapes de test disponible",
|
|
70
|
+
"no-test-case-results": "Aucun résultat de cas de test"
|
|
69
71
|
},
|
|
70
72
|
"severity": {
|
|
71
73
|
"blocker": "bloquant",
|
package/src/i18n/locales/he.json
CHANGED
|
@@ -65,7 +65,9 @@
|
|
|
65
65
|
"clear-filters": "נקה מסננים",
|
|
66
66
|
"no-attachments-results": "לא נמצאה מידע על קבצים מצורפים",
|
|
67
67
|
"no-history-results": "לא נמצאה מידע על היסטוריה",
|
|
68
|
-
"no-retries-results": "לא נמצאה מידע על נסיונות חוזרים"
|
|
68
|
+
"no-retries-results": "לא נמצאה מידע על נסיונות חוזרים",
|
|
69
|
+
"no-test-steps-results": "אין מידע על שלבי הבדיקה",
|
|
70
|
+
"no-test-case-results": "אין תוצאות של מקרי בדיקה"
|
|
69
71
|
},
|
|
70
72
|
"severity": {
|
|
71
73
|
"blocker": "חוסם",
|
package/src/i18n/locales/it.json
CHANGED
|
@@ -65,7 +65,9 @@
|
|
|
65
65
|
"clear-filters": "Cancella i filtri",
|
|
66
66
|
"no-attachments-results": "Nessuna informazione sugli allegati disponibile",
|
|
67
67
|
"no-history-results": "Nessuna informazione sulla cronologia disponibile",
|
|
68
|
-
"no-retries-results": "Nessuna informazione sui ritentativi disponibile"
|
|
68
|
+
"no-retries-results": "Nessuna informazione sui ritentativi disponibile",
|
|
69
|
+
"no-test-steps-results": "Nessuna informazione disponibile sui passaggi del test",
|
|
70
|
+
"no-test-case-results": "Nessun risultato dei casi di test"
|
|
69
71
|
},
|
|
70
72
|
"severity": {
|
|
71
73
|
"blocker": "bloccante",
|
package/src/i18n/locales/ja.json
CHANGED
|
@@ -65,7 +65,9 @@
|
|
|
65
65
|
"clear-filters": "フィルターをクリア",
|
|
66
66
|
"no-attachments-results": "添付ファイル情報が利用できません",
|
|
67
67
|
"no-history-results": "履歴情報が利用できません",
|
|
68
|
-
"no-retries-results": "再試行情報が利用できません"
|
|
68
|
+
"no-retries-results": "再試行情報が利用できません",
|
|
69
|
+
"no-test-steps-results": "テスト手順の情報は利用できません",
|
|
70
|
+
"no-test-case-results": "テストケースの結果がありません"
|
|
69
71
|
},
|
|
70
72
|
"severity": {
|
|
71
73
|
"blocker": "ブロッカー",
|
package/src/i18n/locales/ka.json
CHANGED
|
@@ -65,7 +65,9 @@
|
|
|
65
65
|
"clear-filters": "ფილტრების გასუფთავება",
|
|
66
66
|
"no-attachments-results": "დანართების ინფორმაცია არ არის ხელმისაწვდომი",
|
|
67
67
|
"no-history-results": "ისტორიის ინფორმაცია არ არის ხელმისაწვდომი",
|
|
68
|
-
"no-retries-results": "ხელახალი ცდების ინფორმ���ცია არ არის ხელმისაწვდომი"
|
|
68
|
+
"no-retries-results": "ხელახალი ცდების ინფორმ���ცია არ არის ხელმისაწვდომი",
|
|
69
|
+
"no-test-steps-results": "ტესტის ნაბიჯების ინფორმაცია ხელმისაწვდომი არ არის",
|
|
70
|
+
"no-test-case-results": "ტესტის შემთხვევის შედეგები არ არის"
|
|
69
71
|
},
|
|
70
72
|
"severity": {
|
|
71
73
|
"blocker": "ბლოკერი",
|
package/src/i18n/locales/kr.json
CHANGED
|
@@ -65,7 +65,9 @@
|
|
|
65
65
|
"clear-filters": "필터 지우기",
|
|
66
66
|
"no-attachments-results": "첨부파일 정보를 사용할 수 없습니다",
|
|
67
67
|
"no-history-results": "기록 정보를 사용할 수 없습니다",
|
|
68
|
-
"no-retries-results": "재시도 정보를 사용할 수 없습니다"
|
|
68
|
+
"no-retries-results": "재시도 정보를 사용할 수 없습니다",
|
|
69
|
+
"no-test-steps-results": "테스트 단계 정보가 없습니다",
|
|
70
|
+
"no-test-case-results": "테스트 케이스 결과가 없습니다"
|
|
69
71
|
},
|
|
70
72
|
"severity": {
|
|
71
73
|
"blocker": "차단자",
|
package/src/i18n/locales/nl.json
CHANGED
|
@@ -65,7 +65,9 @@
|
|
|
65
65
|
"clear-filters": "Filters wissen",
|
|
66
66
|
"no-attachments-results": "Geen bijlageninformatie beschikbaar",
|
|
67
67
|
"no-history-results": "Geen geschiedenisinformatie beschikbaar",
|
|
68
|
-
"no-retries-results": "Geen herhalingsinformatie beschikbaar"
|
|
68
|
+
"no-retries-results": "Geen herhalingsinformatie beschikbaar",
|
|
69
|
+
"no-test-steps-results": "Geen informatie over teststappen beschikbaar",
|
|
70
|
+
"no-test-case-results": "Geen testresultaten"
|
|
69
71
|
},
|
|
70
72
|
"severity": {
|
|
71
73
|
"blocker": "blokkerend",
|
package/src/i18n/locales/pl.json
CHANGED
|
@@ -62,7 +62,9 @@
|
|
|
62
62
|
"clear-filters": "Wyczyść filtry",
|
|
63
63
|
"no-attachments-results": "Brak dostępnych informacji o załącznikach",
|
|
64
64
|
"no-history-results": "Brak dostępnych informacji o historii",
|
|
65
|
-
"no-retries-results": "Brak dostępnych informacji o ponownych próbach"
|
|
65
|
+
"no-retries-results": "Brak dostępnych informacji o ponownych próbach",
|
|
66
|
+
"no-test-steps-results": "Brak dostępnych informacji o krokach testowych",
|
|
67
|
+
"no-test-case-results": "Brak wyników przypadków testowych"
|
|
66
68
|
},
|
|
67
69
|
"severity": {
|
|
68
70
|
"name": "Ważność",
|
package/src/i18n/locales/pt.json
CHANGED
|
@@ -65,7 +65,9 @@
|
|
|
65
65
|
"clear-filters": "Limpar filtros",
|
|
66
66
|
"no-attachments-results": "Nenhuma informação de anexos disponível",
|
|
67
67
|
"no-history-results": "Nenhuma informação de histórico disponível",
|
|
68
|
-
"no-retries-results": "Nenhuma informação de repetições disponível"
|
|
68
|
+
"no-retries-results": "Nenhuma informação de repetições disponível",
|
|
69
|
+
"no-test-steps-results": "Nenhuma informação disponível sobre as etapas do teste",
|
|
70
|
+
"no-test-case-results": "Nenhum resultado de caso de teste"
|
|
69
71
|
},
|
|
70
72
|
"severity": {
|
|
71
73
|
"blocker": "bloqueador",
|
package/src/i18n/locales/ru.json
CHANGED
|
@@ -62,7 +62,9 @@
|
|
|
62
62
|
"clear-filters": "Очистить фильтры",
|
|
63
63
|
"no-attachments-results": "Информация о вложениях отсутствует",
|
|
64
64
|
"no-history-results": "Информация об истории отсутствует",
|
|
65
|
-
"no-retries-results": "Информация о перезапусках отсутствует"
|
|
65
|
+
"no-retries-results": "Информация о перезапусках отсутствует",
|
|
66
|
+
"no-test-steps-results": "Нет информации о шагах тестирования",
|
|
67
|
+
"no-test-case-results": "Нет результатов тест-кейсов"
|
|
66
68
|
},
|
|
67
69
|
"severity": {
|
|
68
70
|
"name": "Важность",
|
package/src/i18n/locales/sv.json
CHANGED
|
@@ -65,7 +65,9 @@
|
|
|
65
65
|
"clear-filters": "Rensa filter",
|
|
66
66
|
"no-attachments-results": "Ingen bilaga information tillgänglig",
|
|
67
67
|
"no-history-results": "Ingen historik information tillgänglig",
|
|
68
|
-
"no-retries-results": "Ingen omtagningar information tillgänglig"
|
|
68
|
+
"no-retries-results": "Ingen omtagningar information tillgänglig",
|
|
69
|
+
"no-test-steps-results": "Ingen information om teststeg tillgänglig",
|
|
70
|
+
"no-test-case-results": "Inga testfallresultat"
|
|
69
71
|
},
|
|
70
72
|
"severity": {
|
|
71
73
|
"blocker": "blockerare",
|
package/src/i18n/locales/tr.json
CHANGED
|
@@ -65,7 +65,9 @@
|
|
|
65
65
|
"clear-filters": "Filtreleri temizle",
|
|
66
66
|
"no-attachments-results": "Ek bilgisi mevcut değil",
|
|
67
67
|
"no-history-results": "Geçmiş bilgisi mevcut değil",
|
|
68
|
-
"no-retries-results": "Tekrar deneme bilgisi mevcut değil"
|
|
68
|
+
"no-retries-results": "Tekrar deneme bilgisi mevcut değil",
|
|
69
|
+
"no-test-steps-results": "Test adımları hakkında bilgi mevcut değil",
|
|
70
|
+
"no-test-case-results": "Test vakası sonuçları yok"
|
|
69
71
|
},
|
|
70
72
|
"severity": {
|
|
71
73
|
"blocker": "engelleyici",
|
package/src/i18n/locales/zh.json
CHANGED
|
@@ -65,7 +65,9 @@
|
|
|
65
65
|
"clear-filters": "清除过滤器",
|
|
66
66
|
"no-attachments-results": "没有附件信息",
|
|
67
67
|
"no-history-results": "没有历史信息",
|
|
68
|
-
"no-retries-results": "没有重试信息"
|
|
68
|
+
"no-retries-results": "没有重试信息",
|
|
69
|
+
"no-test-steps-results": "没有可用的测试步骤信息",
|
|
70
|
+
"no-test-case-results": "没有测试用例结果"
|
|
69
71
|
},
|
|
70
72
|
"severity": {
|
|
71
73
|
"blocker": "阻断",
|
package/src/index.html
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
<html>
|
|
3
3
|
<head>
|
|
4
4
|
<title>Allure Awesome</title>
|
|
5
|
+
<link rel="icon" href="data:image/svg+xml,%3Csvg width='32' height='32' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M22.232 4.662a3.6 3.6 0 0 1 5.09.035c2.855 2.894 4.662 6.885 4.662 11.295a3.6 3.6 0 0 1-7.2 0c0-2.406-.981-4.61-2.587-6.24a3.6 3.6 0 0 1 .035-5.09Z' fill='url(%23a)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12.392 3.6a3.6 3.6 0 0 1 3.6-3.6c4.41 0 8.401 1.807 11.296 4.662a3.6 3.6 0 1 1-5.056 5.126C20.602 8.18 18.398 7.2 15.992 7.2a3.6 3.6 0 0 1-3.6-3.6Z' fill='url(%23b)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0 15.992C0 7.157 7.157 0 15.992 0a3.6 3.6 0 0 1 0 7.2A8.789 8.789 0 0 0 7.2 15.992c0 2.406.981 4.61 2.588 6.24a3.6 3.6 0 0 1-5.126 5.056C1.807 24.393 0 20.402 0 15.992Z' fill='url(%23c)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4.661 22.232a3.6 3.6 0 0 1 5.091-.035c1.63 1.606 3.834 2.587 6.24 2.587a3.6 3.6 0 0 1 0 7.2c-4.41 0-8.401-1.807-11.295-4.661a3.6 3.6 0 0 1-.036-5.091Z' fill='url(%23d)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M28.384 12.392a3.6 3.6 0 0 1 3.6 3.6c0 8.835-7.157 15.992-15.992 15.992a3.6 3.6 0 0 1 0-7.2 8.789 8.789 0 0 0 8.792-8.792 3.6 3.6 0 0 1 3.6-3.6Z' fill='url(%23e)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M28.385 12.392a3.6 3.6 0 0 1 3.6 3.6v12.392a3.6 3.6 0 0 1-7.2 0V15.992a3.6 3.6 0 0 1 3.6-3.6Z' fill='url(%23f)'/%3E%3Cg clip-path='url(%23g)'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M22.232 4.662a3.6 3.6 0 0 1 5.091.035c2.855 2.894 4.662 6.885 4.662 11.295a3.6 3.6 0 0 1-7.2 0c0-2.406-.982-4.61-2.588-6.24a3.6 3.6 0 0 1 .035-5.09Z' fill='url(%23h)'/%3E%3C/g%3E%3Cdefs%3E%3ClinearGradient id='a' x1='26.4' y1='9.6' x2='28.8' y2='15' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%237E22CE'/%3E%3Cstop offset='1' stop-color='%238B5CF6'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' x1='26.8' y1='9.4' x2='17.8' y2='3.6' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23EF4444'/%3E%3Cstop offset='1' stop-color='%23DC2626'/%3E%3C/linearGradient%3E%3ClinearGradient id='c' x1='3.6' y1='14' x2='5.4' y2='24.8' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2322C55E'/%3E%3Cstop offset='1' stop-color='%2315803D'/%3E%3C/linearGradient%3E%3ClinearGradient id='d' x1='4.8' y1='22.2' x2='14.4' y2='29.2' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2394A3B8'/%3E%3Cstop offset='.958' stop-color='%2364748B'/%3E%3Cstop offset='1' stop-color='%2364748B'/%3E%3C/linearGradient%3E%3ClinearGradient id='e' x1='28.4' y1='22.173' x2='22.188' y2='28.384' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23D97706'/%3E%3Cstop offset='1' stop-color='%23FBBF24'/%3E%3C/linearGradient%3E%3ClinearGradient id='f' x1='29.2' y1='54.4' x2='30.626' y2='54.256' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23FBBF24'/%3E%3Cstop offset='1' stop-color='%23FBBF24'/%3E%3C/linearGradient%3E%3ClinearGradient id='h' x1='26.4' y1='9.6' x2='28.8' y2='15' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%237E22CE'/%3E%3Cstop offset='1' stop-color='%238B5CF6'/%3E%3C/linearGradient%3E%3CclipPath id='g'%3E%3Cpath fill='%23fff' transform='translate(24.8 12)' d='M0 0h7.2v8H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E" />
|
|
5
6
|
<base href="http://localhost:8080" />
|
|
6
7
|
</head>
|
|
7
8
|
<body>
|
package/src/index.tsx
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import "@allurereport/web-components/index.css";
|
|
1
2
|
import { render } from "preact";
|
|
2
|
-
import "preact/debug";
|
|
3
3
|
import { useEffect, useState } from "preact/hooks";
|
|
4
4
|
import "@/assets/scss/index.scss";
|
|
5
|
-
import { BaseLayout } from "@/components/
|
|
5
|
+
import { BaseLayout } from "@/components/BaseLayout";
|
|
6
6
|
import { isMac } from "@/utils/isMac";
|
|
7
7
|
|
|
8
8
|
const App = () => {
|
package/src/stores/index.ts
CHANGED
|
@@ -3,13 +3,17 @@ import { signal } from "@preact/signals";
|
|
|
3
3
|
import { type AllureAwesomeTestResult } from "../../types";
|
|
4
4
|
import { type StoreSignalState } from "./types";
|
|
5
5
|
|
|
6
|
-
export
|
|
6
|
+
export type TestResultsStoreState = Record<string, AllureAwesomeTestResult>;
|
|
7
|
+
|
|
8
|
+
export type TestResultNavStoreState = string[];
|
|
9
|
+
|
|
10
|
+
export const testResultStore = signal<StoreSignalState<TestResultsStoreState>>({
|
|
7
11
|
loading: true,
|
|
8
12
|
error: undefined,
|
|
9
13
|
data: undefined,
|
|
10
14
|
});
|
|
11
15
|
|
|
12
|
-
export const testResultNavStore = signal<StoreSignalState<
|
|
16
|
+
export const testResultNavStore = signal<StoreSignalState<TestResultNavStoreState>>({
|
|
13
17
|
loading: true,
|
|
14
18
|
error: undefined,
|
|
15
19
|
data: undefined,
|