From 869d040cc6169fe2fe47f9f43cc8c4c2483cfab0 Mon Sep 17 00:00:00 2001 From: Bruno Quaresma Date: Thu, 7 Sep 2023 13:38:28 -0300 Subject: [PATCH] chore(site): refactor stories and tests from components directory (#9578) * Refactor Alert * Refactor Avatar and its stories * Refactor AvatarData and its stories * Refactor CodeExample and its tests * Refactor ServiceBanner stories * Refactor Navbar and its tests * Refactor ServiceBanner stories * Refactor LicenseBannerView stories * Refactor DeploymentBannerView stories * Extract optionValue into a module * Refactor DeleteDialog stories * Refactor ConfirmDialog tests * Refactor EmptyState tests * Flat ErrorBoundaryState and refactor stories * Refactor Expander stories * Refactor FormFooter stories * Refactor FullPageForm stories * Refactor EnterpriseSnackbar stories * Refactor GroupAvatar stories * Refactor HelpTooltip stories and remove index * Remove unecessary types module from IconField * Refactor LoadingButton stories * Refactor Margins stories * Refactor Markdown stories * Refactor PageHeader stories * Refactor PageButton tests * Refactor Pill stories * Refactor Resources stories * Refactor RichParameterInput stories and flat MultiTextField * Remove unecessary Stack story * Refactor TableRowMenu stories * Refactor TemplateLayout stories * Refactor Typography props * Refactor UserAutocomplete * Refactor WorkspaceBuildLogs components and tests * Refactor WorkspaceStatusBadge stories * Fix wrong imports * Remove Example.args pattern * Fix wrong import * Refactor EmptyState stories * Refactor HelpTooltip stories * Remove not valid ErrorAlert story * Fix AvatarData story * Add border back to CodeExample * Fix Navbar story * Fix AgentRow proxy in the stories --- site/src/components/Alert/Alert.stories.tsx | 13 - site/src/components/Alert/Alert.tsx | 9 - .../components/Alert/ErrorAlert.stories.tsx | 17 - site/src/components/Avatar/Avatar.stories.tsx | 86 +++-- site/src/components/Avatar/Avatar.tsx | 10 +- .../src/components/Avatar/firstLetter.test.ts | 11 - site/src/components/Avatar/firstLetter.ts | 10 - .../AvatarData/AvatarData.stories.tsx | 30 +- site/src/components/AvatarData/AvatarData.tsx | 4 +- .../CodeExample/CodeExample.stories.tsx | 25 +- .../CodeExample/CodeExample.test.tsx | 14 - .../components/CodeExample/CodeExample.tsx | 23 +- .../DeploymentBannerView.stories.tsx | 22 +- .../LicenseBannerView.stories.tsx | 48 +-- .../Dashboard/Navbar/NavbarView.stories.tsx | 53 ++- .../Dashboard/Navbar/NavbarView.test.tsx | 69 ---- .../{BorderedMenu => }/BorderedMenu.tsx | 0 .../{BorderedMenu => }/BorderedMenuRow.tsx | 4 +- .../UserDropdown/UserDropdown.stories.tsx | 26 +- .../Navbar/UserDropdown/UserDropdown.test.tsx | 30 -- .../Navbar/UserDropdown/UserDropdown.tsx | 12 +- .../UserDropdownContent.stories.tsx | 42 +++ .../UserDropdown/UserDropdownContent.test.tsx | 36 ++ .../UserDropdownContent.tsx | 2 +- .../UserDropdownContent.stories.tsx | 43 --- .../UserDropdownContent.test.tsx | 77 ---- .../ServiceBannerView.stories.tsx | 31 +- .../DeploySettingsLayout/OptionsTable.tsx | 25 +- .../{Options.test.tsx => optionValue.test.ts} | 2 +- .../DeploySettingsLayout/optionValue.ts | 25 ++ .../ConfirmDialog/ConfirmDialog.stories.tsx | 79 ++-- .../ConfirmDialog/ConfirmDialog.test.tsx | 90 +---- .../DeleteDialog/DeleteDialog.stories.tsx | 27 +- .../EmptyState/EmptyState.stories.tsx | 21 ++ .../components/EmptyState/EmptyState.test.tsx | 36 -- .../ErrorBoundary/ErrorBoundary.tsx | 2 +- .../RuntimeErrorState.stories.tsx | 24 ++ .../RuntimeErrorState.tsx | 2 +- .../RuntimeErrorState.stories.tsx | 29 -- .../components/Expander/Expander.stories.tsx | 30 +- .../FormFooter/FormFooter.stories.tsx | 39 +- .../FullPageForm/FullPageForm.stories.tsx | 28 +- .../EnterpriseSnackbar.stories.tsx | 35 ++ .../EnterpriseSnackbar.tsx | 2 +- .../EnterpriseSnackbar.stories.tsx | 35 -- .../GlobalSnackbar/GlobalSnackbar.tsx | 6 +- .../GroupAvatar/GroupAvatar.stories.tsx | 18 +- .../HelpTooltip/HelpTooltip.stories.tsx | 52 ++- site/src/components/HelpTooltip/index.ts | 1 - site/src/components/IconField/IconField.tsx | 7 +- .../components/IconField/LazyIconField.tsx | 5 +- site/src/components/IconField/types.ts | 5 - .../LoadingButton/LoadingButton.stories.tsx | 29 +- .../components/Margins/Margins.stories.tsx | 25 +- .../components/Markdown/Markdown.stories.tsx | 27 +- .../PageHeader/PageHeader.stories.tsx | 41 ++- .../PaginationWidget.stories.tsx | 43 ++- .../PaginationWidget.test.tsx | 48 +-- site/src/components/Pill/Pill.stories.tsx | 81 ++-- .../Resources/AgentMetadata.stories.tsx | 152 ++++---- .../components/Resources/AgentRow.stories.tsx | 345 +++++++++--------- site/src/components/Resources/AgentRow.tsx | 5 +- .../Resources/AgentRowPreview.stories.tsx | 69 ++-- .../Resources/AppLink/AppLink.stories.tsx | 183 +++++----- .../Resources/PortForwardButton.tsx | 2 +- .../Resources/ResourceAvatar.stories.tsx | 79 ++-- .../Resources/ResourceCard.stories.tsx | 227 ++++++------ .../Resources/SSHButton/SSHButton.stories.tsx | 33 +- .../TerminalLink/TerminalLink.stories.tsx | 16 +- .../VSCodeDesktopButton.stories.tsx | 39 +- .../{MultiTextField => }/MultiTextField.tsx | 0 .../MultiTextField/MultiTextField.stories.tsx | 16 - .../RichParameterInput/RichParameterInput.tsx | 4 +- site/src/components/Stack/Stack.stories.tsx | 21 -- .../TableRowMenu/TableRowMenu.stories.tsx | 34 +- .../TemplatePageHeader.stories.tsx | 30 +- .../TemplateVersionWarnings.stories.tsx | 21 +- .../Typography/Typography.stories.tsx | 34 +- .../UserAutocomplete.stories.tsx | 27 +- .../WorkspaceBuildLogs/{Logs => }/Logs.tsx | 30 +- .../WorkspaceBuildLogs/Logs/Logs.stories.tsx | 27 -- .../WorkspaceBuildLogs.test.ts | 37 -- .../WorkspaceBuildLogs/WorkspaceBuildLogs.tsx | 2 +- .../WorkspaceStatusBadge.stories.tsx | 117 +++--- .../workspaceAgentLogsXService.ts | 2 +- 85 files changed, 1382 insertions(+), 1836 deletions(-) delete mode 100644 site/src/components/Avatar/firstLetter.test.ts delete mode 100644 site/src/components/Avatar/firstLetter.ts delete mode 100644 site/src/components/CodeExample/CodeExample.test.tsx rename site/src/components/Dashboard/Navbar/UserDropdown/{BorderedMenu => }/BorderedMenu.tsx (100%) rename site/src/components/Dashboard/Navbar/UserDropdown/{BorderedMenu => }/BorderedMenuRow.tsx (95%) delete mode 100644 site/src/components/Dashboard/Navbar/UserDropdown/UserDropdown.test.tsx create mode 100644 site/src/components/Dashboard/Navbar/UserDropdown/UserDropdownContent.stories.tsx create mode 100644 site/src/components/Dashboard/Navbar/UserDropdown/UserDropdownContent.test.tsx rename site/src/components/Dashboard/Navbar/UserDropdown/{UserDropdownContent => }/UserDropdownContent.tsx (98%) delete mode 100644 site/src/components/Dashboard/Navbar/UserDropdown/UserDropdownContent/UserDropdownContent.stories.tsx delete mode 100644 site/src/components/Dashboard/Navbar/UserDropdown/UserDropdownContent/UserDropdownContent.test.tsx rename site/src/components/DeploySettingsLayout/{Options.test.tsx => optionValue.test.ts} (96%) create mode 100644 site/src/components/DeploySettingsLayout/optionValue.ts create mode 100644 site/src/components/EmptyState/EmptyState.stories.tsx delete mode 100644 site/src/components/EmptyState/EmptyState.test.tsx create mode 100644 site/src/components/ErrorBoundary/RuntimeErrorState.stories.tsx rename site/src/components/ErrorBoundary/{RuntimeErrorState => }/RuntimeErrorState.tsx (99%) delete mode 100644 site/src/components/ErrorBoundary/RuntimeErrorState/RuntimeErrorState.stories.tsx create mode 100644 site/src/components/GlobalSnackbar/EnterpriseSnackbar.stories.tsx rename site/src/components/GlobalSnackbar/{EnterpriseSnackbar => }/EnterpriseSnackbar.tsx (97%) delete mode 100644 site/src/components/GlobalSnackbar/EnterpriseSnackbar/EnterpriseSnackbar.stories.tsx delete mode 100644 site/src/components/HelpTooltip/index.ts delete mode 100644 site/src/components/IconField/types.ts rename site/src/components/RichParameterInput/{MultiTextField => }/MultiTextField.tsx (100%) delete mode 100644 site/src/components/RichParameterInput/MultiTextField/MultiTextField.stories.tsx delete mode 100644 site/src/components/Stack/Stack.stories.tsx rename site/src/components/WorkspaceBuildLogs/{Logs => }/Logs.tsx (80%) delete mode 100644 site/src/components/WorkspaceBuildLogs/Logs/Logs.stories.tsx delete mode 100644 site/src/components/WorkspaceBuildLogs/WorkspaceBuildLogs.test.ts diff --git a/site/src/components/Alert/Alert.stories.tsx b/site/src/components/Alert/Alert.stories.tsx index 42142a77c9..797157de85 100644 --- a/site/src/components/Alert/Alert.stories.tsx +++ b/site/src/components/Alert/Alert.stories.tsx @@ -1,6 +1,5 @@ import { Alert } from "./Alert"; import Button from "@mui/material/Button"; -import Link from "@mui/material/Link"; import type { Meta, StoryObj } from "@storybook/react"; const meta: Meta = { @@ -21,7 +20,6 @@ export const Success: Story = { args: { children: "You're doing great!", severity: "success", - onRetry: undefined, }, }; @@ -56,14 +54,3 @@ export const WarningWithActionAndDismiss: Story = { severity: "warning", }, }; - -export const WithChildren: Story = { - args: { - severity: "warning", - children: ( -
- This is a message with a link -
- ), - }, -}; diff --git a/site/src/components/Alert/Alert.tsx b/site/src/components/Alert/Alert.tsx index b0cba398c7..fb3f5e07c1 100644 --- a/site/src/components/Alert/Alert.tsx +++ b/site/src/components/Alert/Alert.tsx @@ -8,14 +8,12 @@ import Box from "@mui/material/Box"; export type AlertProps = MuiAlertProps & { actions?: ReactNode; dismissible?: boolean; - onRetry?: () => void; onDismiss?: () => void; }; export const Alert: FC = ({ children, actions, - onRetry, dismissible, severity, onDismiss, @@ -34,13 +32,6 @@ export const Alert: FC = ({ {/* CTAs passed in by the consumer */} {actions} - {/* retry CTA */} - {onRetry && ( - - )} - {/* close CTA */} {dismissible && ( , + }, +}; diff --git a/site/src/components/EmptyState/EmptyState.test.tsx b/site/src/components/EmptyState/EmptyState.test.tsx deleted file mode 100644 index 5e5ad5089d..0000000000 --- a/site/src/components/EmptyState/EmptyState.test.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { screen } from "@testing-library/react"; -import { render } from "../../testHelpers/renderHelpers"; -import { EmptyState } from "./EmptyState"; - -describe("EmptyState", () => { - it("renders (smoke test)", async () => { - // When - render(); - - // Then - await screen.findByText("Hello, world"); - }); - - it("renders description text", async () => { - // When - render( - , - ); - - // Then - await screen.findByText("Hello, world"); - await screen.findByText("Friendly greeting"); - }); - - it("renders cta component", async () => { - // Given - const cta =