diff --git a/site/src/pages/DeploymentSettingsPage/SecuritySettingsPage/SecuritySettingsPage.tsx b/site/src/pages/DeploymentSettingsPage/SecuritySettingsPage/SecuritySettingsPage.tsx index 5c1a9bf5752d1..ebcf2b3248fd0 100644 --- a/site/src/pages/DeploymentSettingsPage/SecuritySettingsPage/SecuritySettingsPage.tsx +++ b/site/src/pages/DeploymentSettingsPage/SecuritySettingsPage/SecuritySettingsPage.tsx @@ -14,6 +14,9 @@ const SecuritySettingsPage: FC = () => { diff --git a/site/src/pages/DeploymentSettingsPage/SecuritySettingsPage/SecuritySettingsPageView.stories.tsx b/site/src/pages/DeploymentSettingsPage/SecuritySettingsPage/SecuritySettingsPageView.stories.tsx index 654ba812359aa..1af6d1d14362f 100644 --- a/site/src/pages/DeploymentSettingsPage/SecuritySettingsPage/SecuritySettingsPageView.stories.tsx +++ b/site/src/pages/DeploymentSettingsPage/SecuritySettingsPage/SecuritySettingsPageView.stories.tsx @@ -49,6 +49,7 @@ const meta: Meta = { hidden: false, }, ], + isBrowserOnlyEntitled: true, featureBrowserOnlyEnabled: true, }, }; @@ -66,6 +67,50 @@ export const Page: Story = { "href", docs("/admin/networking#browser-only-connections"), ); + await expect( + canvas.getByRole("heading", { + name: /Browser-Only Connections Enabled/, + }), + ).toBeInTheDocument(); + await expect( + canvas.queryByRole("link", { name: /Start trial for free/ }), + ).not.toBeInTheDocument(); + }, +}; + +export const EntitledAndTurnedOff: Story = { + args: { + isBrowserOnlyEntitled: true, + featureBrowserOnlyEnabled: false, + }, + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + await expect( + canvas.getByRole("heading", { + name: /Browser-Only Connections Disabled/, + }), + ).toBeInTheDocument(); + await expect( + canvas.queryByRole("link", { name: /Start trial for free/ }), + ).not.toBeInTheDocument(); + }, +}; + +export const NotEntitled: Story = { + args: { + isBrowserOnlyEntitled: false, + featureBrowserOnlyEnabled: false, + }, + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + await expect( + canvas.getByRole("heading", { + name: /Browser-Only Connections Disabled/, + }), + ).toBeInTheDocument(); + await expect( + canvas.getByRole("link", { name: /Start trial for free/ }), + ).toBeInTheDocument(); }, }; diff --git a/site/src/pages/DeploymentSettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx b/site/src/pages/DeploymentSettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx index 2e30086a1662f..0e535de0b7254 100644 --- a/site/src/pages/DeploymentSettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx +++ b/site/src/pages/DeploymentSettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx @@ -21,11 +21,15 @@ import OptionsTable from "../OptionsTable"; type SecuritySettingsPageViewProps = { options: SerpentOption[]; + /** True when the license covers browser-only connections. */ + isBrowserOnlyEntitled: boolean; + /** True when the deployment has browser-only connections turned on. */ featureBrowserOnlyEnabled: boolean; }; export const SecuritySettingsPageView: FC = ({ options, + isBrowserOnlyEntitled, featureBrowserOnlyEnabled, }) => { const tlsOptions = options.filter((o) => @@ -78,7 +82,7 @@ export const SecuritySettingsPageView: FC = ({ - {!featureBrowserOnlyEnabled ? ( + {!isBrowserOnlyEntitled ? (