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

Commit003dc5c

Browse files
stirbySomewhatJustinethanndicksonDanielleMaywood
authored
chore: patch known bugs in stable (#14925)
- [x]#14601- [x]#14602- [x]#14633---------Co-authored-by: Justin Fowler <justinfowler1996@gmail.com>Co-authored-by: Ethan <39577870+ethanndickson@users.noreply.github.com>Co-authored-by: Danielle Maywood <danielle@themaywoods.com>
1 parent190cd1c commit003dc5c

File tree

4 files changed

+70
-13
lines changed

4 files changed

+70
-13
lines changed

‎codersdk/users_test.go‎

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import (
77
"github.com/google/uuid"
88
"github.com/stretchr/testify/require"
99

10-
"github.com/coder/coder/v2/coderd/coderdtest"
1110
"github.com/coder/coder/v2/codersdk"
1211
)
1312

@@ -109,9 +108,9 @@ func TestCreateUserRequestJSON(t *testing.T) {
109108
t.Parallel()
110109

111110
req:= codersdk.CreateUserRequestWithOrgs{
112-
Email:coderdtest.RandomName(t),
113-
Username:coderdtest.RandomName(t),
114-
Name:coderdtest.RandomName(t),
111+
Email:"alice@coder.com",
112+
Username:"alice",
113+
Name:"Alice User",
115114
Password:"",
116115
UserLoginType:codersdk.LoginTypePassword,
117116
OrganizationIDs: []uuid.UUID{uuid.New(),uuid.New()},
@@ -123,9 +122,9 @@ func TestCreateUserRequestJSON(t *testing.T) {
123122
t.Parallel()
124123

125124
req:= codersdk.CreateUserRequestWithOrgs{
126-
Email:coderdtest.RandomName(t),
127-
Username:coderdtest.RandomName(t),
128-
Name:coderdtest.RandomName(t),
125+
Email:"alice@coder.com",
126+
Username:"alice",
127+
Name:"Alice User",
129128
Password:"",
130129
UserLoginType:codersdk.LoginTypePassword,
131130
OrganizationIDs: []uuid.UUID{uuid.New()},
@@ -137,9 +136,9 @@ func TestCreateUserRequestJSON(t *testing.T) {
137136
t.Parallel()
138137

139138
req:= codersdk.CreateUserRequestWithOrgs{
140-
Email:coderdtest.RandomName(t),
141-
Username:coderdtest.RandomName(t),
142-
Name:coderdtest.RandomName(t),
139+
Email:"alice@coder.com",
140+
Username:"alice",
141+
Name:"Alice User",
143142
Password:"",
144143
UserLoginType:codersdk.LoginTypePassword,
145144
OrganizationIDs: []uuid.UUID{},

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,8 @@ export const WorkspaceParametersForm: FC<WorkspaceParameterFormProps> = ({
154154
<FormFooter
155155
onCancel={onCancel}
156156
isLoading={isSubmitting}
157-
submitDisabled={disabled}
157+
submitLabel="Submit and restart"
158+
submitDisabled={disabled||!form.dirty}
158159
/>
159160
</HorizontalForm>
160161
</>

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

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

‎site/src/utils/docs.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ function defaultDocsUrl(): string {
99
}
1010

1111
// Strip the postfix version info that's not part of the link.
12-
consti=version?.indexOf("-")??-1;
12+
consti=version?.match(/[+-]/)?.index??-1;
1313
if(i>=0){
1414
version=version.slice(0,i);
1515
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp