Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit0f4657d

Browse files
test: add test for submit button behaviour
1 parent13ca57d commit0f4657d

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

‎site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersPage.test.tsx

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,56 @@ test("Submit the workspace settings page successfully", async () => {
7373
});
7474
});
7575
});
76+
77+
test("Submit button is only enabled when changes are made",async()=>{
78+
// Mock the API calls that loads data
79+
jest
80+
.spyOn(API,"getWorkspaceByOwnerAndName")
81+
.mockResolvedValueOnce(MockWorkspace);
82+
jest.spyOn(API,"getTemplateVersionRichParameters").mockResolvedValueOnce([
83+
MockTemplateVersionParameter1,
84+
MockTemplateVersionParameter2,
85+
// Immutable parameters
86+
MockTemplateVersionParameter4,
87+
]);
88+
jest.spyOn(API,"getWorkspaceBuildParameters").mockResolvedValueOnce([
89+
MockWorkspaceBuildParameter1,
90+
MockWorkspaceBuildParameter2,
91+
// Immutable value
92+
MockWorkspaceBuildParameter4,
93+
]);
94+
// Setup event and rendering
95+
constuser=userEvent.setup();
96+
renderWithWorkspaceSettingsLayout(<WorkspaceParametersPage/>,{
97+
route:"/@test-user/test-workspace/settings",
98+
path:"/:username/:workspace/settings",
99+
// Need this because after submit the user is redirected
100+
extraRoutes:[{path:"/:username/:workspace",element:<div/>}],
101+
});
102+
awaitwaitForLoaderToBeRemoved();
103+
104+
constsubmitButton:HTMLButtonElement=screen.getByRole("button",{name:"Submit"});
105+
106+
constform=screen.getByTestId("form");
107+
constparameter1=within(form).getByLabelText(
108+
MockWorkspaceBuildParameter1.name,
109+
{exact:false},
110+
);
111+
112+
// There are no changes, the button should be disabled.
113+
expect(submitButton.disabled).toBeTruthy();
114+
115+
// Make changes to the form
116+
awaituser.clear(parameter1);
117+
awaituser.type(parameter1,"new-value");
118+
119+
// There are now changes, the button should be enabled.
120+
expect(submitButton.disabled).toBeFalsy();
121+
122+
// Change form value back to default
123+
awaituser.clear(parameter1);
124+
awaituser.type(parameter1,MockWorkspaceBuildParameter1.value);
125+
126+
// There are now no changes, the button should be disabled.
127+
expect(submitButton.disabled).toBeTruthy();
128+
});

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp