Skip to content

Commit 542a563

Browse files
committed
fix(site): Fix template icon field validation
1 parent 2ea438c commit 542a563

File tree

19 files changed

+89
-78
lines changed

19 files changed

+89
-78
lines changed

site/src/components/AlertBanner/AlertBanner.stories.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Story } from "@storybook/react"
22
import { AlertBanner } from "./AlertBanner"
33
import Button from "@material-ui/core/Button"
4-
import { makeMockApiError } from "testHelpers/entities"
4+
import { makeMockValidationApiError } from "testHelpers/entities"
55
import { AlertBannerProps } from "./alertTypes"
66
import Link from "@material-ui/core/Link"
77

@@ -16,7 +16,7 @@ const ExampleAction = (
1616
</Button>
1717
)
1818

19-
const mockError = makeMockApiError({
19+
const mockError = makeMockValidationApiError({
2020
message: "Email or password was invalid",
2121
detail: "Password is invalid",
2222
})

site/src/components/SignInForm/SignInForm.stories.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Story } from "@storybook/react"
2-
import { makeMockApiError } from "testHelpers/entities"
2+
import { makeMockValidationApiError } from "testHelpers/entities"
33
import { SignInForm, SignInFormProps } from "./SignInForm"
44

55
export default {
@@ -37,7 +37,7 @@ SigningIn.args = {
3737
export const WithError = Template.bind({})
3838
WithError.args = {
3939
...SignedOut.args,
40-
error: makeMockApiError({
40+
error: makeMockValidationApiError({
4141
message: "Email or password was invalid",
4242
validations: [
4343
{

site/src/components/Workspace/Workspace.stories.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ Failed.args = {
9595
...Running.args,
9696
workspace: Mocks.MockFailedWorkspace,
9797
workspaceErrors: {
98-
[WorkspaceErrors.BUILD_ERROR]: Mocks.makeMockApiError({
98+
[WorkspaceErrors.BUILD_ERROR]: Mocks.makeMockValidationApiError({
9999
message: "A workspace build is already active.",
100100
}),
101101
},
@@ -152,7 +152,7 @@ export const GetBuildsError = Template.bind({})
152152
GetBuildsError.args = {
153153
...Running.args,
154154
workspaceErrors: {
155-
[WorkspaceErrors.GET_BUILDS_ERROR]: Mocks.makeMockApiError({
155+
[WorkspaceErrors.GET_BUILDS_ERROR]: Mocks.makeMockValidationApiError({
156156
message: "There is a problem fetching builds.",
157157
}),
158158
},
@@ -162,7 +162,7 @@ export const CancellationError = Template.bind({})
162162
CancellationError.args = {
163163
...Failed.args,
164164
workspaceErrors: {
165-
[WorkspaceErrors.CANCELLATION_ERROR]: Mocks.makeMockApiError({
165+
[WorkspaceErrors.CANCELLATION_ERROR]: Mocks.makeMockValidationApiError({
166166
message: "Job could not be canceled.",
167167
}),
168168
},

site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.stories.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
emptySchedule,
99
} from "pages/WorkspaceSettingsPage/WorkspaceSchedulePage/schedule"
1010
import { emptyTTL } from "pages/WorkspaceSettingsPage/WorkspaceSchedulePage/ttl"
11-
import { makeMockApiError } from "testHelpers/entities"
11+
import { makeMockValidationApiError } from "testHelpers/entities"
1212
import {
1313
WorkspaceScheduleForm,
1414
WorkspaceScheduleFormProps,
@@ -81,7 +81,7 @@ export const WithError = Template.bind({})
8181
WithError.args = {
8282
initialValues: { ...defaultInitialValues, ttl: 100 },
8383
initialTouched: { ttl: true },
84-
submitScheduleError: makeMockApiError({
84+
submitScheduleError: makeMockValidationApiError({
8585
message: "Something went wrong.",
8686
validations: [{ field: "ttl_ms", detail: "Invalid time until shutdown." }],
8787
}),

site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { ComponentMeta, Story } from "@storybook/react"
22
import {
3-
makeMockApiError,
3+
makeMockValidationApiError,
44
mockParameterSchema,
55
MockParameterSchemas,
66
MockTemplate,
@@ -85,7 +85,7 @@ export const GetTemplatesError = Template.bind({})
8585
GetTemplatesError.args = {
8686
...Parameters.args,
8787
createWorkspaceErrors: {
88-
[CreateWorkspaceErrors.GET_TEMPLATES_ERROR]: makeMockApiError({
88+
[CreateWorkspaceErrors.GET_TEMPLATES_ERROR]: makeMockValidationApiError({
8989
message: "Failed to fetch templates.",
9090
detail: "You do not have permission to access this resource.",
9191
}),
@@ -97,10 +97,11 @@ export const GetTemplateSchemaError = Template.bind({})
9797
GetTemplateSchemaError.args = {
9898
...Parameters.args,
9999
createWorkspaceErrors: {
100-
[CreateWorkspaceErrors.GET_TEMPLATE_SCHEMA_ERROR]: makeMockApiError({
101-
message: 'Failed to fetch template schema for "docker-amd64".',
102-
detail: "You do not have permission to access this resource.",
103-
}),
100+
[CreateWorkspaceErrors.GET_TEMPLATE_SCHEMA_ERROR]:
101+
makeMockValidationApiError({
102+
message: 'Failed to fetch template schema for "docker-amd64".',
103+
detail: "You do not have permission to access this resource.",
104+
}),
104105
},
105106
hasTemplateErrors: true,
106107
}
@@ -109,7 +110,7 @@ export const CreateWorkspaceError = Template.bind({})
109110
CreateWorkspaceError.args = {
110111
...Parameters.args,
111112
createWorkspaceErrors: {
112-
[CreateWorkspaceErrors.CREATE_WORKSPACE_ERROR]: makeMockApiError({
113+
[CreateWorkspaceErrors.CREATE_WORKSPACE_ERROR]: makeMockValidationApiError({
113114
message:
114115
'Workspace "test" already exists in the "docker-amd64" template.',
115116
validations: [

site/src/pages/DeploySettingsPage/GeneralSettingsPage/GeneralSettingsPageView.stories.tsx

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { ComponentMeta, Story } from "@storybook/react"
22
import {
3-
makeMockApiError,
3+
makeMockValidationApiError,
44
MockDeploymentDAUResponse,
55
} from "testHelpers/entities"
66
import {
@@ -43,5 +43,7 @@ NoDAUs.args = {
4343
export const DAUError = Template.bind({})
4444
DAUError.args = {
4545
deploymentDAUs: undefined,
46-
getDeploymentDAUsError: makeMockApiError({ message: "Error fetching DAUs." }),
46+
getDeploymentDAUsError: makeMockValidationApiError({
47+
message: "Error fetching DAUs.",
48+
}),
4749
}

site/src/pages/StarterTemplatePage/StarterTemplatePageView.stories.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Story } from "@storybook/react"
22
import {
3-
makeMockApiError,
3+
makeMockValidationApiError,
44
MockOrganization,
55
MockTemplateExample,
66
} from "testHelpers/entities"
@@ -33,7 +33,7 @@ Error.args = {
3333
context: {
3434
exampleId: MockTemplateExample.id,
3535
organizationId: MockOrganization.id,
36-
error: makeMockApiError({
36+
error: makeMockValidationApiError({
3737
message: `Example ${MockTemplateExample.id} not found.`,
3838
}),
3939
starterTemplate: undefined,

site/src/pages/StarterTemplatesPage/StarterTemplatesPageView.stories.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Story } from "@storybook/react"
22
import {
3-
makeMockApiError,
3+
makeMockValidationApiError,
44
MockOrganization,
55
MockTemplateExample,
66
MockTemplateExample2,
@@ -36,7 +36,7 @@ export const Error = Template.bind({})
3636
Error.args = {
3737
context: {
3838
organizationId: MockOrganization.id,
39-
error: makeMockApiError({
39+
error: makeMockValidationApiError({
4040
message: "Error on loading the template examples",
4141
}),
4242
starterTemplatesByTag: undefined,

site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsForm.tsx

+3-2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
nameValidator,
88
templateDisplayNameValidator,
99
onChangeTrimmed,
10+
iconValidator,
1011
} from "utils/formUtils"
1112
import * as Yup from "yup"
1213
import i18next from "i18next"
@@ -37,8 +38,8 @@ export const getValidationSchema = (): Yup.AnyObjectSchema =>
3738
MAX_DESCRIPTION_CHAR_LIMIT,
3839
i18next.t("descriptionMaxError", { ns: "templateSettingsPage" }),
3940
),
40-
4141
allow_user_cancel_workspace_jobs: Yup.boolean(),
42+
icon: iconValidator,
4243
})
4344

4445
export interface TemplateSettingsForm {
@@ -74,7 +75,7 @@ export const TemplateSettingsForm: FC<TemplateSettingsForm> = ({
7475
onSubmit,
7576
initialTouched,
7677
})
77-
const getFieldHelpers = getFormHelpers<UpdateTemplateMeta>(form, error)
78+
const getFieldHelpers = getFormHelpers(form, error)
7879
const { t } = useTranslation("templateSettingsPage")
7980
const styles = useStyles()
8081

site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPageView.stories.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { action } from "@storybook/addon-actions"
22
import { Story } from "@storybook/react"
3-
import { makeMockApiError, MockTemplate } from "testHelpers/entities"
3+
import { makeMockValidationApiError, MockTemplate } from "testHelpers/entities"
44
import {
55
TemplateSettingsPageView,
66
TemplateSettingsPageViewProps,
@@ -25,7 +25,7 @@ Example.args = {}
2525

2626
export const SaveTemplateSettingsError = Template.bind({})
2727
SaveTemplateSettingsError.args = {
28-
submitError: makeMockApiError({
28+
submitError: makeMockValidationApiError({
2929
message: 'Template "test" already exists.',
3030
validations: [
3131
{

site/src/pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariablesPageView.stories.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { action } from "@storybook/addon-actions"
22
import { Story } from "@storybook/react"
33
import {
4-
makeMockApiError,
4+
makeMockValidationApiError,
55
MockTemplateVersion,
66
MockTemplateVersionVariable1,
77
MockTemplateVersionVariable2,
@@ -69,7 +69,7 @@ WithUpdateTemplateError.args = {
6969
MockTemplateVersionVariable4,
7070
],
7171
errors: {
72-
updateTemplateError: makeMockApiError({
72+
updateTemplateError: makeMockValidationApiError({
7373
message: "Something went wrong.",
7474
}),
7575
},

site/src/pages/TemplateVersionPage/TemplateVersionPageView.stories.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { action } from "@storybook/addon-actions"
22
import { Story } from "@storybook/react"
33
import { UseTabResult } from "hooks/useTab"
44
import {
5-
makeMockApiError,
5+
makeMockValidationApiError,
66
MockOrganization,
77
MockTemplate,
88
MockTemplateVersion,
@@ -64,7 +64,7 @@ Error.args = {
6464
...defaultArgs.context,
6565
currentVersion: undefined,
6666
currentFiles: undefined,
67-
error: makeMockApiError({
67+
error: makeMockValidationApiError({
6868
message: "Error on loading the template version",
6969
}),
7070
},

site/src/pages/TemplatesPage/TemplatesPageView.stories.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { ComponentMeta, Story } from "@storybook/react"
22
import {
3-
makeMockApiError,
3+
makeMockValidationApiError,
44
MockOrganization,
55
MockPermissions,
66
MockTemplate,
@@ -89,7 +89,7 @@ Error.args = {
8989
...MockPermissions,
9090
createTemplates: false,
9191
},
92-
error: makeMockApiError({
92+
error: makeMockValidationApiError({
9393
message: "Something went wrong fetching templates.",
9494
}),
9595
templates: undefined,

site/src/pages/UserSettingsPage/SSHKeysPage/SSHKeysPageView.stories.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Story } from "@storybook/react"
2-
import { makeMockApiError } from "testHelpers/entities"
2+
import { makeMockValidationApiError } from "testHelpers/entities"
33
import { SSHKeysPageView, SSHKeysPageViewProps } from "./SSHKeysPageView"
44

55
export default {
@@ -39,15 +39,15 @@ export const WithGetSSHKeyError = Template.bind({})
3939
WithGetSSHKeyError.args = {
4040
...Example.args,
4141
hasLoaded: false,
42-
getSSHKeyError: makeMockApiError({
42+
getSSHKeyError: makeMockValidationApiError({
4343
message: "Failed to get SSH key",
4444
}),
4545
}
4646

4747
export const WithRegenerateSSHKeyError = Template.bind({})
4848
WithRegenerateSSHKeyError.args = {
4949
...Example.args,
50-
regenerateSSHKeyError: makeMockApiError({
50+
regenerateSSHKeyError: makeMockValidationApiError({
5151
message: "Failed to regenerate SSH key",
5252
}),
5353
}

site/src/pages/UserSettingsPage/TokensPage/TokensPageView.stories.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Story } from "@storybook/react"
2-
import { makeMockApiError, MockTokens } from "testHelpers/entities"
2+
import { makeMockValidationApiError, MockTokens } from "testHelpers/entities"
33
import { TokensPageView, TokensPageViewProps } from "./TokensPageView"
44

55
export default {
@@ -41,7 +41,7 @@ export const WithGetTokensError = Template.bind({})
4141
WithGetTokensError.args = {
4242
...Example.args,
4343
hasLoaded: false,
44-
getTokensError: makeMockApiError({
44+
getTokensError: makeMockValidationApiError({
4545
message: "Failed to get tokens.",
4646
}),
4747
}
@@ -50,7 +50,7 @@ export const WithDeleteTokenError = Template.bind({})
5050
WithDeleteTokenError.args = {
5151
...Example.args,
5252
hasLoaded: false,
53-
deleteTokenError: makeMockApiError({
53+
deleteTokenError: makeMockValidationApiError({
5454
message: "Failed to delete token.",
5555
}),
5656
}

site/src/pages/UserSettingsPage/WorkspaceProxyPage/WorspaceProxyView.stories.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Story } from "@storybook/react"
22
import {
3-
makeMockApiError,
3+
makeMockValidationApiError,
44
MockWorkspaceProxies,
55
MockPrimaryWorkspaceProxy,
66
MockHealthyWildWorkspaceProxy,
@@ -61,7 +61,7 @@ export const WithProxiesError = Template.bind({})
6161
WithProxiesError.args = {
6262
...Example.args,
6363
hasLoaded: false,
64-
getWorkspaceProxiesError: makeMockApiError({
64+
getWorkspaceProxiesError: makeMockValidationApiError({
6565
message: "Failed to get proxies.",
6666
}),
6767
}
@@ -70,7 +70,7 @@ export const WithSelectProxyError = Template.bind({})
7070
WithSelectProxyError.args = {
7171
...Example.args,
7272
hasLoaded: false,
73-
selectProxyError: makeMockApiError({
73+
selectProxyError: makeMockValidationApiError({
7474
message: "Failed to select proxy.",
7575
}),
7676
}

site/src/testHelpers/entities.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,8 @@ export const MockTemplate: TypesGen.Template = {
341341
created_by_name: "test_creator",
342342
icon: "/icon/code.svg",
343343
allow_user_cancel_workspace_jobs: true,
344+
allow_user_autostart: false,
345+
allow_user_autostop: false,
344346
}
345347

346348
export const MockTemplateVersionFiles: TemplateVersionFiles = {
@@ -1261,9 +1263,9 @@ type MockAPIOutput = {
12611263
isAxiosError: boolean
12621264
}
12631265

1264-
type MakeMockApiErrorFunction = (input: MockAPIInput) => MockAPIOutput
1266+
type makeMockValidationApiErrorFunction = (input: MockAPIInput) => MockAPIOutput
12651267

1266-
export const makeMockApiError: MakeMockApiErrorFunction = ({
1268+
export const makeMockValidationApiError: makeMockValidationApiErrorFunction = ({
12671269
message,
12681270
detail,
12691271
validations,

0 commit comments

Comments
 (0)