lhcb-ntuple-wizard-test 2.1.0 → 2.2.1
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/dist/components/AddTupleToolButton.d.ts +1 -0
- package/dist/components/AddTupleToolButton.js +16 -0
- package/dist/components/BookkeepingPathDropdown.d.ts +1 -1
- package/dist/components/BookkeepingPathDropdown.js +1 -4
- package/dist/components/DatasetEventTypeBadge.js +1 -1
- package/dist/components/DatasetInfo.js +3 -3
- package/dist/components/DecayCard.d.ts +1 -1
- package/dist/components/DecayCard.js +12 -40
- package/dist/components/DecayLatex.d.ts +1 -1
- package/dist/components/DecayLatex.js +4 -87
- package/dist/components/DecayListItem.js +2 -2
- package/dist/components/DecayTagBadge.d.ts +1 -1
- package/dist/components/DecayTagBadge.js +0 -3
- package/dist/components/DecayTreeCard.d.ts +1 -7
- package/dist/components/DecayTreeCard.js +13 -18
- package/dist/components/DecayTreeCardHeader.d.ts +2 -3
- package/dist/components/DecayTreeCardHeader.js +2 -2
- package/dist/components/DecayTreeGraph.d.ts +1 -4
- package/dist/components/DecayTreeGraph.js +66 -41
- package/dist/components/DeleteButton.d.ts +2 -1
- package/dist/components/DeleteButton.js +2 -2
- package/dist/components/DttNameInput.d.ts +9 -0
- package/dist/components/DttNameInput.js +43 -0
- package/dist/components/GuideLinkButton.d.ts +15 -0
- package/dist/components/GuideLinkButton.js +16 -0
- package/dist/components/NtupleWizard.js +1 -7
- package/dist/components/ParticleDropdown.d.ts +11 -1
- package/dist/components/ParticleDropdown.js +3 -6
- package/dist/components/ParticleLatex.d.ts +6 -0
- package/dist/components/ParticleLatex.js +13 -0
- package/dist/components/ParticleTagBadge.d.ts +2 -1
- package/dist/components/ParticleTagBadge.js +5 -7
- package/dist/components/ParticleTagFilters.d.ts +1 -6
- package/dist/components/ParticleTagFilters.js +16 -17
- package/dist/components/RequestButtonGroup.d.ts +1 -1
- package/dist/components/RequestButtonGroup.js +0 -3
- package/dist/components/RequestRow.d.ts +1 -1
- package/dist/components/RequestRow.js +4 -9
- package/dist/components/StrippingLineDropdown.js +14 -16
- package/dist/components/StrippingLineInfo.d.ts +5 -5
- package/dist/components/StrippingLineInfo.js +14 -4
- package/dist/components/StrippingLineInfoButton.d.ts +6 -0
- package/dist/components/StrippingLineInfoButton.js +7 -0
- package/dist/components/StrippingLineVersionBadge.d.ts +7 -0
- package/dist/components/{StrippingLineBadge.js → StrippingLineVersionBadge.js} +5 -5
- package/dist/components/StrippingLinesCountBadge.d.ts +8 -0
- package/dist/components/StrippingLinesCountBadge.js +11 -0
- package/dist/components/TagDropdown.d.ts +3 -3
- package/dist/components/TagDropdown.js +2 -2
- package/dist/components/TupleToolClassDropdown.js +11 -14
- package/dist/components/TupleToolDocsAccordion.d.ts +1 -1
- package/dist/components/TupleToolDocsAccordion.js +4 -8
- package/dist/components/TupleToolGroupsAccordion.d.ts +5 -0
- package/dist/components/TupleToolGroupsAccordion.js +31 -0
- package/dist/components/TupleToolLabel.d.ts +1 -1
- package/dist/components/TupleToolLabel.js +2 -5
- package/dist/components/TupleToolsAccordion.d.ts +1 -0
- package/dist/components/TupleToolsAccordion.js +22 -0
- package/dist/components/modals/AddTupleToolModal.js +3 -2
- package/dist/components/modals/ConfigureTupleToolModal.js +1 -1
- package/dist/components/modals/UploadDttConfigModal.d.ts +1 -1
- package/dist/components/modals/UploadDttConfigModal.js +1 -4
- package/dist/config.d.ts +1 -0
- package/dist/config.js +3 -2
- package/dist/models/bkPath.js +1 -1
- package/dist/models/dtt.d.ts +5 -2
- package/dist/models/dtt.js +37 -18
- package/dist/models/rowData.d.ts +1 -1
- package/dist/models/yamlFile.js +1 -1
- package/dist/pages/DecaySearchPage.js +4 -9
- package/dist/pages/DecayTreeConfigPage.js +4 -38
- package/dist/pages/RequestPage.js +2 -4
- package/dist/providers/DttProvider.d.ts +3 -3
- package/dist/providers/DttProvider.js +30 -55
- package/dist/providers/MetadataProvider.d.ts +1 -1
- package/dist/providers/MetadataProvider.js +11 -5
- package/dist/providers/RequestProvider.js +2 -2
- package/dist/providers/RowProvider.d.ts +2 -2
- package/dist/providers/RowProvider.js +10 -9
- package/dist/providers/RowsProvider.js +0 -3
- package/dist/tests/components/BookkeepingPathDropdown.test.d.ts +1 -0
- package/dist/tests/components/BookkeepingPathDropdown.test.js +118 -0
- package/dist/tests/components/DatasetInfo.test.d.ts +1 -0
- package/dist/tests/components/DatasetInfo.test.js +38 -0
- package/dist/tests/components/DecayCard.test.d.ts +1 -0
- package/dist/tests/components/DecayCard.test.js +115 -0
- package/dist/tests/components/DecayLatex.test.d.ts +1 -0
- package/dist/tests/components/DecayLatex.test.js +31 -0
- package/dist/tests/components/DecayList.test.d.ts +1 -0
- package/dist/tests/components/DecayList.test.js +76 -0
- package/dist/tests/components/DecayListItem.test.d.ts +1 -0
- package/dist/tests/components/DecayListItem.test.js +51 -0
- package/dist/tests/components/DecayTreeCard.test.d.ts +1 -0
- package/dist/tests/components/DecayTreeCard.test.js +119 -0
- package/dist/tests/components/DecayTreeGraph.test.d.ts +1 -0
- package/dist/tests/components/DecayTreeGraph.test.js +125 -0
- package/dist/tests/components/DeleteButton.test.d.ts +1 -0
- package/dist/tests/components/DeleteButton.test.js +45 -0
- package/dist/tests/components/DttNameInput.test.d.ts +1 -0
- package/dist/tests/components/DttNameInput.test.js +75 -0
- package/dist/tests/components/NtupleWizard.test.d.ts +1 -0
- package/dist/tests/components/NtupleWizard.test.js +57 -0
- package/dist/tests/components/ParticleDropdown.test.d.ts +1 -0
- package/dist/tests/components/ParticleDropdown.test.js +23 -0
- package/dist/tests/components/ParticleTagFilters.test.d.ts +1 -0
- package/dist/tests/components/ParticleTagFilters.test.js +87 -0
- package/dist/tests/components/RequestButtonGroup.test.d.ts +1 -0
- package/dist/tests/components/RequestButtonGroup.test.js +132 -0
- package/dist/tests/components/RequestRow.test.d.ts +1 -0
- package/dist/tests/components/RequestRow.test.js +58 -0
- package/dist/tests/components/StrippingLineDropdown.test.d.ts +1 -0
- package/dist/tests/components/StrippingLineDropdown.test.js +88 -0
- package/dist/tests/components/badges.test.d.ts +1 -0
- package/dist/tests/components/badges.test.js +120 -0
- package/dist/tests/components/dropdowns.test.d.ts +1 -0
- package/dist/tests/components/dropdowns.test.js +110 -0
- package/dist/tests/components/dttComponents.test.d.ts +1 -0
- package/dist/tests/components/dttComponents.test.js +287 -0
- package/dist/tests/components/formInputs.test.d.ts +1 -0
- package/dist/tests/components/formInputs.test.js +96 -0
- package/dist/tests/components/metadataComponents.test.d.ts +1 -0
- package/dist/tests/components/metadataComponents.test.js +137 -0
- package/dist/tests/components/miscComponents.test.d.ts +1 -0
- package/dist/tests/components/miscComponents.test.js +134 -0
- package/dist/tests/components/modals.test.d.ts +1 -0
- package/dist/tests/components/modals.test.js +554 -0
- package/dist/tests/components/tupleToolParams.test.d.ts +1 -0
- package/dist/tests/components/tupleToolParams.test.js +213 -0
- package/dist/tests/config.test.d.ts +1 -0
- package/dist/tests/config.test.js +31 -0
- package/dist/tests/mockSetup.d.ts +1 -0
- package/dist/tests/mockSetup.js +30 -0
- package/dist/tests/models/BkPath.test.d.ts +1 -0
- package/dist/tests/models/BkPath.test.js +87 -0
- package/dist/tests/models/Dtt.test.d.ts +1 -0
- package/dist/tests/models/Dtt.test.js +376 -0
- package/dist/tests/models/TupleTool.test.d.ts +1 -0
- package/dist/tests/models/TupleTool.test.js +80 -0
- package/dist/tests/models/YamlFile.test.d.ts +1 -0
- package/dist/tests/models/YamlFile.test.js +123 -0
- package/dist/tests/pages/DecaySearchPage.test.d.ts +1 -0
- package/dist/tests/pages/DecaySearchPage.test.js +228 -0
- package/dist/tests/pages/DecayTreeConfigPage.test.d.ts +1 -0
- package/dist/tests/pages/DecayTreeConfigPage.test.js +105 -0
- package/dist/tests/pages/RequestPage.test.d.ts +1 -0
- package/dist/tests/pages/RequestPage.test.js +439 -0
- package/dist/tests/providers/DttProvider.test.d.ts +1 -0
- package/dist/tests/providers/DttProvider.test.js +105 -0
- package/dist/tests/providers/MetadataProvider.test.d.ts +1 -0
- package/dist/tests/providers/MetadataProvider.test.js +129 -0
- package/dist/tests/providers/RequestProvider.test.d.ts +1 -0
- package/dist/tests/providers/RequestProvider.test.js +306 -0
- package/dist/tests/providers/RowProvider.test.d.ts +1 -0
- package/dist/tests/providers/RowProvider.test.js +110 -0
- package/dist/tests/providers/RowsProvider.test.d.ts +1 -0
- package/dist/tests/providers/RowsProvider.test.js +84 -0
- package/dist/tests/providers/WizardConfigProvider.test.d.ts +1 -0
- package/dist/tests/providers/WizardConfigProvider.test.js +36 -0
- package/dist/tests/setupTests.d.ts +1 -0
- package/dist/tests/setupTests.js +15 -0
- package/dist/tests/testUtils.d.ts +33 -0
- package/dist/tests/testUtils.js +196 -0
- package/dist/tests/utils/latexUtils.test.d.ts +1 -0
- package/dist/tests/utils/latexUtils.test.js +62 -0
- package/dist/tests/utils/utils.test.d.ts +1 -0
- package/dist/tests/utils/utils.test.js +394 -0
- package/dist/utils/latexUtils.d.ts +13 -0
- package/dist/utils/latexUtils.js +86 -0
- package/dist/utils/utils.d.ts +1 -0
- package/dist/utils/utils.js +4 -1
- package/package.json +19 -9
- package/dist/components/NumStrippingLinesBadge.d.ts +0 -8
- package/dist/components/NumStrippingLinesBadge.js +0 -10
- package/dist/components/StrippingLineBadge.d.ts +0 -7
- package/dist/components/TupleToolGroup.d.ts +0 -5
- package/dist/components/TupleToolGroup.js +0 -22
- package/dist/components/TupleToolList.d.ts +0 -6
- package/dist/components/TupleToolList.js +0 -42
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { describe, expect, it, vi } from "vitest";
|
|
3
|
+
// Restore the real module — the global mock in mockSetup.tsx is overridden here
|
|
4
|
+
vi.mock("../../components/GuideLinkButton", async (importOriginal) => await importOriginal());
|
|
5
|
+
import { render, screen } from "@testing-library/react";
|
|
6
|
+
import { fireEvent } from "@testing-library/react";
|
|
7
|
+
import { DecayTreeCardHeader } from "../../components/DecayTreeCardHeader";
|
|
8
|
+
import { StrippingLinesCountBadge } from "../../components/StrippingLinesCountBadge";
|
|
9
|
+
import { GuideLinkButton } from "../../components/GuideLinkButton";
|
|
10
|
+
import { ConfigFilesUploadingAlert } from "../../components/ConfigFilesUploadingAlert";
|
|
11
|
+
import { AddTupleToolButton } from "../../components/AddTupleToolButton";
|
|
12
|
+
// Modals used by AddTupleToolButton
|
|
13
|
+
vi.mock("../../components/modals/AddTupleToolModal", () => ({
|
|
14
|
+
AddTupleToolModal: ({ onClose }) => (_jsxs("div", { "data-testid": "add-modal", children: [_jsx("button", { "data-testid": "close-no-tool", onClick: () => onClose(), children: "CloseNoTool" }), _jsx("button", { "data-testid": "close-loki", onClick: () => onClose({ class: "LoKi__Hybrid__TupleTool" }), children: "CloseLoki" })] })),
|
|
15
|
+
}));
|
|
16
|
+
vi.mock("../../components/modals/ConfigureTupleToolModal", () => ({
|
|
17
|
+
ConfigureTupleToolModal: ({ onClose }) => (_jsx("div", { "data-testid": "configure-modal", children: _jsx("button", { onClick: onClose, children: "CloseConfig" }) })),
|
|
18
|
+
}));
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
// DecayTreeCardHeader
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
describe("DecayTreeCardHeader", () => {
|
|
23
|
+
it("renders the dtt name", () => {
|
|
24
|
+
render(_jsx(DecayTreeCardHeader, { dttName: "MyTree" }));
|
|
25
|
+
expect(screen.getByText("MyTree")).toBeInTheDocument();
|
|
26
|
+
});
|
|
27
|
+
it("shows '1 input location' when an input is provided", () => {
|
|
28
|
+
render(_jsx(DecayTreeCardHeader, { dttName: "MyTree", input: "/Event/Leptonic/Phys/MyLine/Particles" }));
|
|
29
|
+
expect(screen.getByText("1 input location")).toBeInTheDocument();
|
|
30
|
+
});
|
|
31
|
+
it("shows 'No input location' when no input is provided", () => {
|
|
32
|
+
render(_jsx(DecayTreeCardHeader, { dttName: "MyTree" }));
|
|
33
|
+
expect(screen.getByText("No input location")).toBeInTheDocument();
|
|
34
|
+
});
|
|
35
|
+
it("renders the input path in an accordion body", () => {
|
|
36
|
+
const inputPath = "/Event/Leptonic/Phys/MyLine/Particles";
|
|
37
|
+
render(_jsx(DecayTreeCardHeader, { dttName: "MyTree", input: inputPath }));
|
|
38
|
+
expect(screen.getByText(inputPath)).toBeInTheDocument();
|
|
39
|
+
});
|
|
40
|
+
it("shows warning text when input is missing", () => {
|
|
41
|
+
render(_jsx(DecayTreeCardHeader, { dttName: "MyTree" }));
|
|
42
|
+
expect(screen.getByText(/choose at least one stripping line/i)).toBeInTheDocument();
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
// ---------------------------------------------------------------------------
|
|
46
|
+
// StrippingLinesCountBadge
|
|
47
|
+
// ---------------------------------------------------------------------------
|
|
48
|
+
describe("StrippingLinesCountBadge", () => {
|
|
49
|
+
const strippingLineVersions = {
|
|
50
|
+
"Leptonic/StrippingBuToKJpsiee2Line": ["28r2", "28r1"],
|
|
51
|
+
};
|
|
52
|
+
it("renders the count badge with number of lines", () => {
|
|
53
|
+
render(_jsx(StrippingLinesCountBadge, { strippingLineVersions: strippingLineVersions, selected: false }));
|
|
54
|
+
expect(screen.getByText("1 stripping line")).toBeInTheDocument();
|
|
55
|
+
});
|
|
56
|
+
it("uses primary background when selected=true", () => {
|
|
57
|
+
render(_jsx(StrippingLinesCountBadge, { strippingLineVersions: strippingLineVersions, selected: true }));
|
|
58
|
+
expect(screen.getByText("1 stripping line")).toHaveClass("bg-primary");
|
|
59
|
+
});
|
|
60
|
+
it("uses secondary background when selected=false", () => {
|
|
61
|
+
render(_jsx(StrippingLinesCountBadge, { strippingLineVersions: strippingLineVersions, selected: false }));
|
|
62
|
+
expect(screen.getByText("1 stripping line")).toHaveClass("bg-secondary");
|
|
63
|
+
});
|
|
64
|
+
it("renders plural 'stripping lines' for multiple lines", () => {
|
|
65
|
+
render(_jsx(StrippingLinesCountBadge, { strippingLineVersions: {
|
|
66
|
+
"Leptonic/StrippingLine1": ["28r2"],
|
|
67
|
+
"Hadronic/StrippingLine2": ["28r2"],
|
|
68
|
+
}, selected: false }));
|
|
69
|
+
expect(screen.getByText("2 stripping lines")).toBeInTheDocument();
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
// ---------------------------------------------------------------------------
|
|
73
|
+
// GuideLinkButton
|
|
74
|
+
// ---------------------------------------------------------------------------
|
|
75
|
+
describe("GuideLinkButton", () => {
|
|
76
|
+
it("renders an anchor element", () => {
|
|
77
|
+
const { container } = render(_jsx(GuideLinkButton, { page: "tupleTools", topic: "Tuple tools" }));
|
|
78
|
+
expect(container.querySelector("a")).not.toBeNull();
|
|
79
|
+
});
|
|
80
|
+
it("opens in a new tab (target=_blank)", () => {
|
|
81
|
+
const { container } = render(_jsx(GuideLinkButton, { page: "tupleTools", topic: "Tuple tools" }));
|
|
82
|
+
expect(container.querySelector("a")?.target).toBe("_blank");
|
|
83
|
+
});
|
|
84
|
+
it("links to the tupleTools guide page", () => {
|
|
85
|
+
const { container } = render(_jsx(GuideLinkButton, { page: "tupleTools", topic: "Tuple tools" }));
|
|
86
|
+
expect(container.querySelector("a")?.href).toContain("tupletools");
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
// ---------------------------------------------------------------------------
|
|
90
|
+
// ConfigFilesUploadingAlert
|
|
91
|
+
// ---------------------------------------------------------------------------
|
|
92
|
+
describe("ConfigFilesUploadingAlert", () => {
|
|
93
|
+
it("renders a spinner", () => {
|
|
94
|
+
render(_jsx(ConfigFilesUploadingAlert, {}));
|
|
95
|
+
expect(screen.getByRole("status")).toBeInTheDocument();
|
|
96
|
+
});
|
|
97
|
+
it("renders the uploading heading", () => {
|
|
98
|
+
render(_jsx(ConfigFilesUploadingAlert, {}));
|
|
99
|
+
expect(screen.getByText(/uploading configuration files/i)).toBeInTheDocument();
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
// ---------------------------------------------------------------------------
|
|
103
|
+
// AddTupleToolButton
|
|
104
|
+
// ---------------------------------------------------------------------------
|
|
105
|
+
describe("AddTupleToolButton", () => {
|
|
106
|
+
it("renders an 'Add tool' button", () => {
|
|
107
|
+
render(_jsx(AddTupleToolButton, {}));
|
|
108
|
+
expect(screen.getByText(/add tool/i)).toBeInTheDocument();
|
|
109
|
+
});
|
|
110
|
+
it("opens the AddTupleToolModal when clicked", () => {
|
|
111
|
+
render(_jsx(AddTupleToolButton, {}));
|
|
112
|
+
fireEvent.click(screen.getByText(/add tool/i));
|
|
113
|
+
expect(screen.getByTestId("add-modal")).toBeInTheDocument();
|
|
114
|
+
});
|
|
115
|
+
it("closes the AddTupleToolModal when onClose is called without a LoKi tool", () => {
|
|
116
|
+
render(_jsx(AddTupleToolButton, {}));
|
|
117
|
+
fireEvent.click(screen.getByText(/add tool/i));
|
|
118
|
+
fireEvent.click(screen.getByTestId("close-no-tool"));
|
|
119
|
+
expect(screen.queryByTestId("add-modal")).not.toBeInTheDocument();
|
|
120
|
+
});
|
|
121
|
+
it("shows ConfigureTupleToolModal after adding a LoKi tool", () => {
|
|
122
|
+
render(_jsx(AddTupleToolButton, {}));
|
|
123
|
+
fireEvent.click(screen.getByText(/add tool/i));
|
|
124
|
+
fireEvent.click(screen.getByTestId("close-loki"));
|
|
125
|
+
expect(screen.getByTestId("configure-modal")).toBeInTheDocument();
|
|
126
|
+
});
|
|
127
|
+
it("closes ConfigureTupleToolModal when its onClose is called", () => {
|
|
128
|
+
render(_jsx(AddTupleToolButton, {}));
|
|
129
|
+
fireEvent.click(screen.getByText(/add tool/i));
|
|
130
|
+
fireEvent.click(screen.getByTestId("close-loki"));
|
|
131
|
+
fireEvent.click(screen.getByText("CloseConfig"));
|
|
132
|
+
expect(screen.queryByTestId("configure-modal")).not.toBeInTheDocument();
|
|
133
|
+
});
|
|
134
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|