@allurereport/web-awesome 3.0.0-beta.8 → 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.
Files changed (65) hide show
  1. package/dist/multi/{141.app-4375537b.js → 141.app-f32e4213.js} +1 -1
  2. package/dist/multi/{222.app-4375537b.js → 222.app-f32e4213.js} +1 -1
  3. package/dist/multi/{335.app-4375537b.js → 335.app-f32e4213.js} +1 -1
  4. package/dist/multi/{34.app-4375537b.js → 34.app-f32e4213.js} +1 -1
  5. package/dist/multi/{349.app-4375537b.js → 349.app-f32e4213.js} +1 -1
  6. package/dist/multi/{378.app-4375537b.js → 378.app-f32e4213.js} +1 -1
  7. package/dist/multi/{406.app-4375537b.js → 406.app-f32e4213.js} +1 -1
  8. package/dist/multi/{476.app-4375537b.js → 476.app-f32e4213.js} +1 -1
  9. package/dist/multi/{53.app-4375537b.js → 53.app-f32e4213.js} +1 -1
  10. package/dist/multi/{584.app-4375537b.js → 584.app-f32e4213.js} +1 -1
  11. package/dist/multi/{690.app-4375537b.js → 690.app-f32e4213.js} +1 -1
  12. package/dist/multi/{747.app-4375537b.js → 747.app-f32e4213.js} +1 -1
  13. package/dist/multi/{767.app-4375537b.js → 767.app-f32e4213.js} +1 -1
  14. package/dist/multi/{816.app-4375537b.js → 816.app-f32e4213.js} +1 -1
  15. package/dist/multi/{83.app-4375537b.js → 83.app-f32e4213.js} +1 -1
  16. package/dist/multi/{873.app-4375537b.js → 873.app-f32e4213.js} +1 -1
  17. package/dist/multi/{920.app-4375537b.js → 920.app-f32e4213.js} +1 -1
  18. package/dist/multi/{991.app-4375537b.js → 991.app-f32e4213.js} +1 -1
  19. package/dist/multi/app-f32e4213.js +2 -0
  20. package/dist/multi/manifest.json +20 -20
  21. package/dist/multi/{styles-4375537b.css → styles-f32e4213.css} +2 -1
  22. package/dist/single/app-7fa8e43f.js +2 -0
  23. package/dist/single/manifest.json +1 -1
  24. package/package.json +5 -4
  25. package/src/components/BaseLayout/index.tsx +1 -0
  26. package/src/components/ReportBody/Filters.tsx +1 -3
  27. package/src/components/ReportBody/index.tsx +4 -3
  28. package/src/components/Tabs/index.tsx +5 -0
  29. package/src/components/TestResult/TestResultEmpty/index.tsx +4 -3
  30. package/src/components/TestResult/TestResultOverview.tsx +7 -4
  31. package/src/components/TestResult/TestResultSetup/index.tsx +12 -3
  32. package/src/components/TestResult/TestResultSteps/index.tsx +12 -3
  33. package/src/components/TestResult/TestResultSteps/testResultStep.tsx +9 -2
  34. package/src/components/TestResult/TestResultTeardown/index.tsx +13 -3
  35. package/src/components/TestResult/TestStepsEmpty/index.tsx +23 -0
  36. package/src/components/TestResult/TestStepsEmpty/styles.scss +25 -0
  37. package/src/components/Tree/Tree.tsx +10 -3
  38. package/src/components/Tree/index.tsx +2 -10
  39. package/src/i18n/locales/am.json +3 -1
  40. package/src/i18n/locales/az.json +3 -1
  41. package/src/i18n/locales/de.json +3 -1
  42. package/src/i18n/locales/en.json +3 -1
  43. package/src/i18n/locales/es.json +3 -1
  44. package/src/i18n/locales/fr.json +3 -1
  45. package/src/i18n/locales/he.json +3 -1
  46. package/src/i18n/locales/it.json +3 -1
  47. package/src/i18n/locales/ja.json +3 -1
  48. package/src/i18n/locales/ka.json +3 -1
  49. package/src/i18n/locales/kr.json +3 -1
  50. package/src/i18n/locales/nl.json +3 -1
  51. package/src/i18n/locales/pl.json +3 -1
  52. package/src/i18n/locales/pt.json +3 -1
  53. package/src/i18n/locales/ru.json +3 -1
  54. package/src/i18n/locales/sv.json +3 -1
  55. package/src/i18n/locales/tr.json +3 -1
  56. package/src/i18n/locales/zh.json +3 -1
  57. package/src/index.html +1 -0
  58. package/src/stores/tree.ts +42 -11
  59. package/src/utils/loadFromLocalStorage.ts +8 -0
  60. package/types.d.ts +15 -2
  61. package/webpack.config.js +2 -0
  62. package/dist/multi/app-4375537b.js +0 -2
  63. package/dist/single/app-f16f6693.js +0 -2
  64. /package/dist/multi/{app-4375537b.js.LICENSE.txt → app-f32e4213.js.LICENSE.txt} +0 -0
  65. /package/dist/single/{app-f16f6693.js.LICENSE.txt → app-7fa8e43f.js.LICENSE.txt} +0 -0
@@ -1,3 +1,3 @@
1
1
  {
2
- "main.js": "app-f16f6693.js"
2
+ "main.js": "app-7fa8e43f.js"
3
3
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@allurereport/web-awesome",
3
- "version": "3.0.0-beta.8",
3
+ "version": "3.0.0-beta.9",
4
4
  "description": "The static files for Allure Awesome Report",
5
5
  "keywords": [
6
6
  "allure",
@@ -31,9 +31,9 @@
31
31
  "IE 11"
32
32
  ],
33
33
  "dependencies": {
34
- "@allurereport/core-api": "3.0.0-beta.8",
35
- "@allurereport/web-commons": "3.0.0-beta.8",
36
- "@allurereport/web-components": "3.0.0-beta.8",
34
+ "@allurereport/core-api": "3.0.0-beta.9",
35
+ "@allurereport/web-commons": "3.0.0-beta.9",
36
+ "@allurereport/web-components": "3.0.0-beta.9",
37
37
  "@preact/signals": "^1.3.0",
38
38
  "clsx": "^2.1.1",
39
39
  "d3-shape": "^3.2.0",
@@ -50,6 +50,7 @@
50
50
  "@babel/preset-typescript": "^7.24.7",
51
51
  "@eslint/js": "^9.10.0",
52
52
  "@floating-ui/dom": "^1.6.12",
53
+ "@preact/compat": "^18.3.1",
53
54
  "@stylistic/eslint-plugin": "^2.6.1",
54
55
  "@types/babel__core": "^7.20.5",
55
56
  "@types/d3-shape": "^3.1.6",
@@ -5,6 +5,7 @@ import { Footer } from "@/components/Footer";
5
5
  import MainReport from "@/components/MainReport";
6
6
  import Modal from "@/components/Modal";
7
7
  import TestResult from "@/components/TestResult";
8
+ import TestResultEmpty from "@/components/TestResult/TestResultEmpty";
8
9
  import { fetchStats, getLocale, getTheme } from "@/stores";
9
10
  import { fetchPieChartData } from "@/stores/chart";
10
11
  import { fetchEnvInfo } from "@/stores/envInfo";
@@ -1,6 +1,4 @@
1
- import { Button, allureIcons } from "@allurereport/web-components";
2
- import { Menu } from "@allurereport/web-components";
3
- import { Toggle } from "@allurereport/web-components";
1
+ import { Button, Menu, Toggle, allureIcons } from "@allurereport/web-components";
4
2
  import { useI18n } from "@/stores/locale";
5
3
  import { setTreeFilter, treeFiltersStore } from "@/stores/tree";
6
4
  import * as styles from "./styles.scss";
@@ -1,8 +1,8 @@
1
1
  import { statusesList } from "@allurereport/core-api";
2
- import { Loadable } from "@allurereport/web-components";
3
- import { Counter } from "@allurereport/web-components";
2
+ import { Counter, Loadable } from "@allurereport/web-components";
4
3
  import { statsStore } from "@/stores";
5
4
  import { useI18n } from "@/stores/locale";
5
+ import { treeFiltersStore } from "@/stores/tree";
6
6
  import { capitalize } from "@/utils/capitalize";
7
7
  import { Tab, Tabs, TabsList } from "../Tabs";
8
8
  import { TreeList } from "../Tree";
@@ -58,10 +58,11 @@ const Body = () => {
58
58
  };
59
59
 
60
60
  export const ReportBody = () => {
61
+ const initialTab = treeFiltersStore.value.status;
61
62
  return (
62
63
  <ReportContentProvider>
63
64
  <section>
64
- <Tabs initialTab="total">
65
+ <Tabs initialTab={initialTab}>
65
66
  <Header />
66
67
  <Body />
67
68
  </Tabs>
@@ -1,6 +1,8 @@
1
1
  import { Text } from "@allurereport/web-components";
2
2
  import { type ComponentChildren, createContext } from "preact";
3
3
  import { useContext, useState } from "preact/hooks";
4
+ import { setTreeStatus } from "@/stores/tree";
5
+ import type { AllureAwesomeStatus } from "../../../types";
4
6
  import * as styles from "./styles.scss";
5
7
 
6
8
  type TabsContextT = {
@@ -41,10 +43,13 @@ export const Tab = (props: { id: string; children: ComponentChildren }) => {
41
43
  const isCurrentTab = currentTab === id;
42
44
  const handleTabClick = () => {
43
45
  if (isCurrentTab) {
46
+ setCurrentTab("total");
47
+ setTreeStatus("total");
44
48
  return;
45
49
  }
46
50
 
47
51
  setCurrentTab(id);
52
+ setTreeStatus(id as AllureAwesomeStatus);
48
53
  };
49
54
 
50
55
  return (
@@ -1,10 +1,11 @@
1
- import { SvgIcon, allureIcons } from "@allurereport/web-components";
2
- import { Text } from "@allurereport/web-components";
1
+ import { SvgIcon, Text, allureIcons } from "@allurereport/web-components";
3
2
  import * as baseStyles from "@/components/BaseLayout/styles.scss";
4
3
  import { TestResultInfo } from "@/components/TestResult/TestResultInfo";
4
+ import { useI18n } from "@/stores";
5
5
  import * as styles from "./styles.scss";
6
6
 
7
7
  const TestResultThumb = () => {
8
+ const { t } = useI18n("empty");
8
9
  return (
9
10
  <div className={styles["test-result-thumb"]}>
10
11
  <div className={styles["test-result-thumb-wrapper"]}>
@@ -15,7 +16,7 @@ const TestResultThumb = () => {
15
16
  id={allureIcons.lineDevCodeSquare}
16
17
  className={styles["test-result-thumb-icon"]}
17
18
  />
18
- <Text className={styles["test-result-thumb-text"]}>No test case results</Text>
19
+ <Text className={styles["test-result-thumb-text"]}>{t("no-test-case-results")}</Text>
19
20
  </div>
20
21
  </div>
21
22
  );
@@ -9,13 +9,15 @@ import { TestResultParameters } from "@/components/TestResult/TestResultParamete
9
9
  import { TestResultSetup } from "@/components/TestResult/TestResultSetup";
10
10
  import { TestResultSteps } from "@/components/TestResult/TestResultSteps";
11
11
  import { TestResultTeardown } from "@/components/TestResult/TestResultTeardown";
12
+ import TestStepsEmpty from "@/components/TestResult/TestStepsEmpty";
12
13
 
13
14
  export type TestResultOverviewProps = {
14
15
  testResult?: AllureAwesomeTestResult;
15
16
  };
16
17
 
17
18
  export const TestResultOverview: FunctionalComponent<TestResultOverviewProps> = ({ testResult }) => {
18
- const { error, parameters, groupedLabels, links, description, setup, steps, teardown } = testResult || {};
19
+ const { error, parameters, groupedLabels, links, description, setup, steps, teardown, id } = testResult || {};
20
+ const isNoSteps = !setup?.length && !steps.length && !teardown.length;
19
21
 
20
22
  return (
21
23
  <>
@@ -31,9 +33,10 @@ export const TestResultOverview: FunctionalComponent<TestResultOverviewProps> =
31
33
  {Boolean(links?.length) && <TestResultLinks links={links} />}
32
34
  {Boolean(description) && <TestResultDescription description={description} />}
33
35
  <div className={styles["test-results"]}>
34
- {Boolean(setup?.length) && <TestResultSetup setup={setup} />}
35
- {Boolean(steps?.length) && <TestResultSteps steps={steps} />}
36
- {Boolean(teardown?.length) && <TestResultTeardown teardown={teardown} />}
36
+ {isNoSteps && <TestStepsEmpty />}
37
+ {Boolean(setup?.length) && <TestResultSetup id={id} setup={setup} />}
38
+ {Boolean(steps?.length) && <TestResultSteps id={id} steps={steps} />}
39
+ {Boolean(teardown?.length) && <TestResultTeardown id={id} teardown={teardown} />}
37
40
  </div>
38
41
  </>
39
42
  );
@@ -7,6 +7,7 @@ import * as styles from "@/components/TestResult/TestResultSteps/styles.scss";
7
7
  import { TestResultAttachment } from "@/components/TestResult/TestResultSteps/testResultAttachment";
8
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,10 +18,18 @@ const typeMap = {
17
18
 
18
19
  export type TestResultSetupProps = {
19
20
  setup: AllureAwesomeTestResult["setup"];
21
+ id?: string;
20
22
  };
21
23
 
22
- export const TestResultSetup: FunctionalComponent<TestResultSetupProps> = ({ setup }) => {
23
- const [isOpened, setIsOpen] = useState(false);
24
+ export const TestResultSetup: FunctionalComponent<TestResultSetupProps> = ({ setup, id }) => {
25
+ const teardownId = `${id}-setup`;
26
+ const isEarlyCollapsed = Boolean(!collapsedTrees.value.has(teardownId));
27
+ const [isOpened, setIsOpen] = useState<boolean>(isEarlyCollapsed);
28
+
29
+ const handleClick = () => {
30
+ setIsOpen(!isOpened);
31
+ toggleTree(teardownId);
32
+ };
24
33
  const { t } = useI18n("execution");
25
34
 
26
35
  return (
@@ -28,7 +37,7 @@ export const TestResultSetup: FunctionalComponent<TestResultSetupProps> = ({ set
28
37
  <TestResultDropdown
29
38
  icon={allureIcons.lineTimeClockStopwatch}
30
39
  isOpened={isOpened}
31
- setIsOpen={setIsOpen}
40
+ setIsOpen={handleClick}
32
41
  counter={setup?.length}
33
42
  title={t("setup")}
34
43
  />
@@ -6,6 +6,7 @@ import { TestResultDropdown } from "@/components/TestResult/TestResultDropdown";
6
6
  import { TestResultAttachment } from "@/components/TestResult/TestResultSteps/testResultAttachment";
7
7
  import { TestResultStep } from "@/components/TestResult/TestResultSteps/testResultStep";
8
8
  import { useI18n } from "@/stores/locale";
9
+ import { collapsedTrees, toggleTree } from "@/stores/tree";
9
10
  import * as styles from "./styles.scss";
10
11
 
11
12
  const typeMap = {
@@ -15,6 +16,7 @@ const typeMap = {
15
16
 
16
17
  export type TestResultStepsProps = {
17
18
  steps: AllureAwesomeTestResult["steps"];
19
+ id?: string;
18
20
  };
19
21
 
20
22
  type StepComponentProps = FunctionalComponent<{
@@ -22,8 +24,15 @@ type StepComponentProps = FunctionalComponent<{
22
24
  stepIndex?: number;
23
25
  }>;
24
26
 
25
- export const TestResultSteps: FunctionalComponent<TestResultStepsProps> = ({ steps }) => {
26
- const [isOpened, setIsOpen] = useState(true);
27
+ export const TestResultSteps: FunctionalComponent<TestResultStepsProps> = ({ steps, id }) => {
28
+ const stepsId = `${id}-steps`;
29
+ const isEarlyCollapsed = Boolean(!collapsedTrees.value.has(stepsId));
30
+ const [isOpened, setIsOpen] = useState<boolean>(isEarlyCollapsed);
31
+
32
+ const handleClick = () => {
33
+ setIsOpen(!isOpened);
34
+ toggleTree(stepsId);
35
+ };
27
36
 
28
37
  const { t } = useI18n("execution");
29
38
  return (
@@ -31,7 +40,7 @@ export const TestResultSteps: FunctionalComponent<TestResultStepsProps> = ({ ste
31
40
  <TestResultDropdown
32
41
  icon={allureIcons.lineHelpersPlayCircle}
33
42
  isOpened={isOpened}
34
- setIsOpen={setIsOpen}
43
+ setIsOpen={handleClick}
35
44
  counter={steps?.length}
36
45
  title={t("body")}
37
46
  />
@@ -9,6 +9,7 @@ import * as styles from "@/components/TestResult/TestResultSteps/styles.scss";
9
9
  import { TestResultAttachment } from "@/components/TestResult/TestResultSteps/testResultAttachment";
10
10
  import { TestResultStepInfo } from "@/components/TestResult/TestResultSteps/testResultStepInfo";
11
11
  import TreeItemIcon from "@/components/Tree/TreeItemIcon";
12
+ import { collapsedTrees, toggleTree } from "@/stores/tree";
12
13
 
13
14
  export const TestResultStepParameters = (props: { parameters: DefaultTestStepResult["parameters"] }) => {
14
15
  const { parameters } = props;
@@ -49,12 +50,18 @@ export const TestResultStep: FunctionComponent<{
49
50
  stepIndex?: number;
50
51
  className?: string;
51
52
  }> = ({ item, stepIndex }) => {
52
- const [isOpened, setIsOpen] = useState(false);
53
+ const isEarlyOpened = collapsedTrees.value.has(item.stepId);
54
+ const [isOpened, setIsOpen] = useState(isEarlyOpened || false);
53
55
  const hasContent = Boolean(item?.steps?.length || item?.parameters?.length);
54
56
 
57
+ const handleClick = () => {
58
+ setIsOpen(!isOpened);
59
+ toggleTree(item.stepId);
60
+ };
61
+
55
62
  return (
56
63
  <div className={styles["test-result-step"]}>
57
- <div className={styles["test-result-step-header"]} onClick={() => setIsOpen(!isOpened)}>
64
+ <div className={styles["test-result-step-header"]} onClick={handleClick}>
58
65
  {!hasContent ? (
59
66
  <div className={styles["test-result-strut"]} />
60
67
  ) : (
@@ -7,6 +7,7 @@ import * as styles from "@/components/TestResult/TestResultSteps/styles.scss";
7
7
  import { TestResultAttachment } from "@/components/TestResult/TestResultSteps/testResultAttachment";
8
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,10 +18,19 @@ 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 [isOpened, setIsOpen] = useState(false);
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 (
@@ -28,7 +38,7 @@ export const TestResultTeardown: FunctionalComponent<TestResultTeardownProps> =
28
38
  <TestResultDropdown
29
39
  icon={allureIcons.lineHelpersFlag}
30
40
  isOpened={isOpened}
31
- setIsOpen={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
+ }
@@ -4,6 +4,7 @@ import type { FunctionComponent } from "preact";
4
4
  import { useState } from "preact/hooks";
5
5
  import type { AllureAwesomeRecursiveTree, AllureAwesomeStatus } from "types";
6
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 [isOpened, setIsOpen] = useState(statistic === undefined || !!statistic.failed || !!statistic.broken);
20
- const toggleTree = () => {
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
 
@@ -59,7 +64,9 @@ const Tree: FunctionComponent<TreeProps> = ({ tree, statusFilter, root, name, st
59
64
 
60
65
  return (
61
66
  <div className={styles.tree}>
62
- {name && <TreeHeader categoryTitle={name} isOpened={isOpened} toggleTree={toggleTree} statistic={statistic} />}
67
+ {name && (
68
+ <TreeHeader categoryTitle={name} isOpened={isOpened} toggleTree={toggleTreeHeader} statistic={statistic} />
69
+ )}
63
70
  {treeContent}
64
71
  </div>
65
72
  );
@@ -1,23 +1,15 @@
1
- import { Button } from "@allurereport/web-components";
2
- import { Loadable } from "@allurereport/web-components";
3
- import { PageLoader } from "@allurereport/web-components";
4
- import { Text } from "@allurereport/web-components";
5
- import { useEffect } from "preact/hooks";
1
+ import { Button, Loadable, PageLoader, Text } from "@allurereport/web-components";
6
2
  import type { AllureAwesomeStatus } from "types";
7
3
  import { useTabsContext } from "@/components/Tabs";
8
4
  import Tree from "@/components/Tree/Tree";
9
5
  import { useI18n } from "@/stores/locale";
10
- import { clearTreeFilters, filteredTree, noTests, noTestsFound, setTreeStatus, treeStore } from "@/stores/tree";
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}
@@ -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": "արգելափակում",
@@ -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ı",
@@ -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",
@@ -66,7 +66,9 @@
66
66
  "clear-filters": "Clear filters",
67
67
  "no-attachments-results": "No attachments information available",
68
68
  "no-history-results": "No history information available",
69
- "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"
70
72
  },
71
73
  "severity": {
72
74
  "blocker": "blocker",
@@ -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",
@@ -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",
@@ -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": "חוסם",
@@ -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",
@@ -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": "ブロッカー",
@@ -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": "ბლოკერი",
@@ -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": "차단자",
@@ -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",
@@ -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ść",
@@ -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",
@@ -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": "Важность",
@@ -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",
@@ -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",