diff --git a/site/package.json b/site/package.json index 98b0ee16e2..9cb33d1670 100644 --- a/site/package.json +++ b/site/package.json @@ -7,6 +7,7 @@ "postinstall": "yarn typegen", "build": "NODE_ENV=production webpack build --config=webpack.prod.ts", "build:analyze": "NODE_ENV=production webpack --profile --progress --json --config=webpack.prod.ts > out/stats.json && webpack-bundle-analyzer out/stats.json out", + "check:all": "yarn format:check && yarn lint && yarn test", "chromatic": "chromatic", "dev": "webpack-dev-server --config=webpack.dev.ts", "format:check": "prettier --check '**/*.{css,html,js,json,jsx,md,ts,tsx,yaml,yml}'", diff --git a/site/src/forms/CreateTemplateForm.test.tsx b/site/src/forms/CreateTemplateForm.test.tsx deleted file mode 100644 index 0f531a1539..0000000000 --- a/site/src/forms/CreateTemplateForm.test.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { render, screen } from "@testing-library/react" -import React from "react" -import { MockOrganization, MockProvisioner, MockTemplate } from "../testHelpers/renderHelpers" -import { CreateTemplateForm } from "./CreateTemplateForm" - -describe("CreateTemplateForm", () => { - it("renders", async () => { - // Given - const provisioners = [MockProvisioner] - const organizations = [MockOrganization] - const onSubmit = () => Promise.resolve(MockTemplate) - const onCancel = () => Promise.resolve() - - // When - render( - , - ) - - // Then - // Simple smoke test to verify form renders - const element = await screen.findByText("Create Template") - expect(element).toBeDefined() - }) -}) diff --git a/site/src/forms/CreateTemplateForm.tsx b/site/src/forms/CreateTemplateForm.tsx deleted file mode 100644 index 5242ad1a0c..0000000000 --- a/site/src/forms/CreateTemplateForm.tsx +++ /dev/null @@ -1,154 +0,0 @@ -import Button from "@material-ui/core/Button" -import { makeStyles } from "@material-ui/core/styles" -import { FormikContextType, useFormik } from "formik" -import React from "react" -import * as Yup from "yup" -import * as TypesGen from "../api/typesGenerated" -import { FormCloseButton } from "../components/FormCloseButton/FormCloseButton" -import { FormDropdownField, FormDropdownItem } from "../components/FormDropdownField/FormDropdownField" -import { FormSection } from "../components/FormSection/FormSection" -import { FormTextField } from "../components/FormTextField/FormTextField" -import { FormTitle } from "../components/FormTitle/FormTitle" -import { LoadingButton } from "../components/LoadingButton/LoadingButton" -import { maxWidth } from "../theme/constants" - -// It appears that to create a template you need to create a template version -// and then a template so this contains the information to do both. -export type CreateTemplateRequest = TypesGen.CreateTemplateVersionRequest & Pick - -export interface CreateTemplateFormProps { - provisioners: TypesGen.ProvisionerDaemon[] - organizations: TypesGen.Organization[] - onSubmit: (organizationId: string, request: CreateTemplateRequest) => Promise - onCancel: () => void -} - -interface CreateTemplateFields extends Pick { - organizationId: string -} - -const validationSchema = Yup.object({ - provisioner: Yup.string().required("Provisioner is required."), - organizationId: Yup.string().required("Organization is required."), - name: Yup.string().required("Name is required"), -}) - -export const CreateTemplateForm: React.FC = ({ - provisioners, - organizations, - onSubmit, - onCancel, -}) => { - const styles = useStyles() - - const form: FormikContextType = useFormik({ - initialValues: { - provisioner: provisioners[0].id, - organizationId: organizations[0].name, - name: "", - }, - enableReinitialize: true, - validationSchema: validationSchema, - onSubmit: (req) => { - return onSubmit(req.organizationId, { - name: req.name, - storage_method: "file", - storage_source: "hash", - provisioner: req.provisioner, - }) - }, - }) - - const organizationDropDownItems: FormDropdownItem[] = organizations.map((org) => { - return { - value: org.name, - name: org.name, - } - }) - - const provisionerDropDownItems: FormDropdownItem[] = provisioners.map((provisioner) => { - return { - value: provisioner.id, - name: provisioner.name, - } - }) - - return ( -
- - - - - - - - - - - - - - - -
- - - Submit - -
-
- ) -} - -const useStyles = makeStyles(() => ({ - root: { - maxWidth, - width: "100%", - display: "flex", - flexDirection: "column", - alignItems: "center", - }, - footer: { - display: "flex", - flex: "0", - flexDirection: "row", - justifyContent: "center", - alignItems: "center", - }, - button: { - margin: "1em", - }, -}))