Skip to content

Commit e15be27

Browse files
Merge pull request #468 from primeroIMS/trigyn-testcases-record-form-form
Trigyn testcases record form form
2 parents 8d69b7a + 55ceb6d commit e15be27

11 files changed

+607
-675
lines changed

app/javascript/components/record-form/form/components/workflow-indicator.jsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ const WorkflowIndicator = ({ locale, primeroModule, recordType, record }) => {
4444
}
4545

4646
return (
47-
<Stepper classes={{ root: css.stepper }} activeStep={activeStep || 0}>
47+
<Stepper data-testid="stepper" classes={{ root: css.stepper }} activeStep={activeStep || 0}>
4848
{workflowSteps?.map((s, index) => {
4949
const label = displayNameHelper(s.display_text, locale) || "";
5050

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
import { mountedComponent, screen, userEvent } from "../../../test-utils";
2+
import { SELECT_FIELD } from "../constants";
3+
4+
import FormSectionField from "./form-section-field";
5+
import { TEXT_FIELD_NAME } from "./constants";
6+
7+
describe("<FormSectionField />", () => {
8+
const props = {
9+
name: "Test",
10+
isReadWriteForm: false,
11+
field: {
12+
type: TEXT_FIELD_NAME,
13+
display_name: { en: "Test" },
14+
disabled: false
15+
},
16+
mode: {
17+
isShow: true
18+
},
19+
formSection: {}
20+
};
21+
22+
it("render a FormSectionField", () => {
23+
mountedComponent(<FormSectionField {...props} />);
24+
expect(screen.queryByTestId(/form-section/i)).toBeNull();
25+
});
26+
27+
describe("When is select field", () => {
28+
const selectFieldProps = {
29+
name: "Test",
30+
field: {
31+
type: SELECT_FIELD,
32+
display_name: { en: "Test" },
33+
disabled: false,
34+
visible: true,
35+
options: [{ id: 1, display_text: "test" }]
36+
},
37+
mode: {
38+
isEdit: true,
39+
isShow: false
40+
},
41+
isReadWriteForm: true
42+
};
43+
44+
describe("and violationOptions is present ", () => {
45+
const violationOptions = [{ id: 2, display_text: "test2" }];
46+
const violationProps = { ...selectFieldProps, violationOptions };
47+
48+
it("should have violation options for select", async () => {
49+
mountedComponent(<FormSectionField {...violationProps} />, {}, [], {}, { registerField: () => {} });
50+
51+
const user = userEvent.setup();
52+
53+
const autoCompleteDropdown = screen.getByRole("button", { name: "Open" });
54+
55+
await user.click(autoCompleteDropdown);
56+
57+
expect(screen.queryByText("test")).toBeNull();
58+
expect(screen.getByText("test2")).toBeInTheDocument();
59+
});
60+
});
61+
62+
describe("and violationOptions is NOT present ", () => {
63+
it("should not have violation options for select", async () => {
64+
mountedComponent(<FormSectionField {...selectFieldProps} />, {}, [], {}, { registerField: () => {} });
65+
const user = userEvent.setup();
66+
67+
const autoCompleteDropdown = screen.getByRole("button", { name: "Open" });
68+
69+
await user.click(autoCompleteDropdown);
70+
71+
expect(screen.getByText("test")).toBeInTheDocument();
72+
expect(screen.queryByText("test2")).toBeNull();
73+
});
74+
});
75+
});
76+
});

app/javascript/components/record-form/form/form-section-field.unit.test.js

-83
This file was deleted.

app/javascript/components/record-form/form/record-form-title.jsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import css from "./styles.css";
88

99
const RecordFormTitle = ({ displayText, handleToggleNav, mobileDisplay }) => {
1010
const showMobileIcon = mobileDisplay ? (
11-
<IconButton onClick={handleToggleNav}>
12-
<MenuOpen />
11+
<IconButton onClick={handleToggleNav} data-testid="icon-button">
12+
<MenuOpen data-testid="menu-open" />
1313
</IconButton>
1414
) : null;
1515

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { mountedComponent, screen } from "../../../test-utils";
2+
3+
import RecordFormTitle from "./record-form-title";
4+
5+
describe("<RecordFormTitle />", () => {
6+
const props = {
7+
displayText: "Test title",
8+
handleToggleNav: () => {},
9+
mobileDisplay: true
10+
};
11+
12+
it("renders a <IconButton />", () => {
13+
mountedComponent(<RecordFormTitle {...props} />, {});
14+
expect(screen.getByTestId("icon-button")).toBeInTheDocument();
15+
});
16+
17+
it("renders a <MenuOpen />", () => {
18+
mountedComponent(<RecordFormTitle {...props} />, {});
19+
expect(screen.getByTestId("menu-open")).toBeInTheDocument();
20+
});
21+
22+
it("renders a valid text passed as a prop", () => {
23+
mountedComponent(<RecordFormTitle {...props} />, {});
24+
expect(screen.queryByText("Test title")).toBeInTheDocument();
25+
});
26+
});

app/javascript/components/record-form/form/record-form-title.unit.test.js

-34
This file was deleted.

app/javascript/components/record-form/form/record-form-toolbar.jsx

+6-1
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,12 @@ const RecordFormToolbar = ({
145145
{mode.isShow && params && (
146146
<Permission resources={params.recordType} actions={FLAG_RECORDS}>
147147
<DisableOffline button>
148-
<Badge color="error" badgeContent={record.get("flag_count")} className={css.badgeIndicator}>
148+
<Badge
149+
data-testid="badge"
150+
color="error"
151+
badgeContent={record.get("flag_count")}
152+
className={css.badgeIndicator}
153+
>
149154
<Flagging record={params.id} recordType={params.recordType} />
150155
</Badge>
151156
</DisableOffline>

0 commit comments

Comments
 (0)