Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 38 additions & 1 deletion web/.storybook/preview.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,15 @@
*/

import { Preview } from '@storybook/react';
import { http, HttpResponse } from 'msw';
import { initialize, mswLoader } from 'msw-storybook-addon';
import { ComponentType, PropsWithChildren } from 'react';

import Box from '../packages/design/src/Box';
import { bblpTheme, darkTheme, lightTheme } from '../packages/design/src/theme';
import { Theme } from '../packages/design/src/theme/themes/types';
import { ConfiguredThemeProvider } from '../packages/design/src/ThemeProvider';
import cfg from '../packages/teleport/src/config';
import history from '../packages/teleport/src/services/history/history';
import { UserContextProvider } from '../packages/teleport/src/User';
import Logger, { ConsoleService } from '../packages/teleterm/src/logger';
Expand All @@ -33,7 +35,42 @@ import {
lightTheme as teletermLightTheme,
} from '../packages/teleterm/src/ui/ThemeProvider/theme';

initialize();
initialize(
{
onUnhandledRequest(request, print) {
try {
// Ignores asset related http requests, otherwise
// it prints noisy warnings, hiding important ones.
const url = new URL(request.url);
if (
url.pathname.startsWith('/sb-common-assets') ||
url.pathname.startsWith('/index.json') ||
url.pathname.startsWith('/.storybook') ||
url.pathname.endsWith('.png') ||
url.pathname.endsWith('.svg') ||
url.pathname.endsWith('.css') ||
url.pathname.endsWith('.yaml')
) {
return;
}
} catch {
/* empty */
}

print.warning();
},
},
[
// we emit these for posthog events (ignores any error),
// and we don't ever mock them in stories.
http.post(cfg.api.captureUserEventPath, () => {
return HttpResponse.json({ message: 'ok' });
}),
http.post(cfg.api.capturePreUserEventPath, () => {
return HttpResponse.json({ message: 'ok' });
}),
]
);

history.init();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,10 @@
*/

import { delay, http, HttpResponse } from 'msw';
import { MemoryRouter, Route } from 'react-router';
import { Route } from 'react-router';

import { ContextProvider } from 'teleport';
import cfg from 'teleport/config';
import { createTeleportContext } from 'teleport/mocks/contexts';
import { TeleportProviderBasic } from 'teleport/mocks/providers';

import { connectors } from '../fixtures';
import { GitHubConnectorEditor } from './GitHubConnectorEditor';
Expand All @@ -30,70 +29,64 @@ export default {
title: 'Teleport/AuthConnectors/GitHubConnectorEditor',
};

export function Processing() {
export function Loaded() {
return (
<MemoryRouter
<TeleportProviderBasic
initialEntries={[
cfg.getEditAuthConnectorRoute('github', 'github_connector'),
]}
>
<ContextWrapper>
<Route path={cfg.routes.ssoConnector.edit}>
<GitHubConnectorEditor />
</Route>
</ContextWrapper>
</MemoryRouter>
<Route path={cfg.routes.ssoConnector.edit}>
<GitHubConnectorEditor />
</Route>
</TeleportProviderBasic>
);
}
Processing.parameters = {
Loaded.parameters = {
msw: {
handlers: [
http.get(
cfg.getGithubConnectorUrl('github_connector'),
async () => await delay('infinite')
http.get(cfg.getGithubConnectorUrl('github_connector'), () =>
HttpResponse.json(connectors[0])
),
],
},
};

export function Loaded() {
export function Processing() {
return (
<MemoryRouter
<TeleportProviderBasic
initialEntries={[
cfg.getEditAuthConnectorRoute('github', 'github_connector'),
]}
>
<ContextWrapper>
<Route path={cfg.routes.ssoConnector.edit}>
<GitHubConnectorEditor />
</Route>
</ContextWrapper>
</MemoryRouter>
<Route path={cfg.routes.ssoConnector.edit}>
<GitHubConnectorEditor />
</Route>
</TeleportProviderBasic>
);
}
Loaded.parameters = {
Processing.parameters = {
msw: {
handlers: [
http.get(cfg.getGithubConnectorUrl('github_connector'), () =>
HttpResponse.json(connectors[0])
http.get(
cfg.getGithubConnectorUrl('github_connector'),
async () => await delay('infinite')
),
],
},
};

export function Failed() {
return (
<MemoryRouter
<TeleportProviderBasic
initialEntries={[
cfg.getEditAuthConnectorRoute('github', 'github_connector'),
]}
>
<ContextWrapper>
<Route path={cfg.routes.ssoConnector.edit}>
<GitHubConnectorEditor />
</Route>
</ContextWrapper>
</MemoryRouter>
<Route path={cfg.routes.ssoConnector.edit}>
<GitHubConnectorEditor />
</Route>
</TeleportProviderBasic>
);
}
Failed.parameters = {
Expand All @@ -110,8 +103,3 @@ Failed.parameters = {
],
},
};

function ContextWrapper({ children }: { children: JSX.Element }) {
const ctx = createTeleportContext();
return <ContextProvider ctx={ctx}>{children}</ContextProvider>;
}
61 changes: 23 additions & 38 deletions web/packages/teleport/src/AuthConnectors/AuthConnectors.story.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,9 @@
*/

import { delay, http, HttpResponse } from 'msw';
import { MemoryRouter } from 'react-router';

import { ContextProvider } from 'teleport';
import cfg from 'teleport/config';
import { createTeleportContext } from 'teleport/mocks/contexts';
import { TeleportProviderBasic } from 'teleport/mocks/providers';

import { AuthConnectors } from './AuthConnectors';
import { connectors } from './fixtures';
Expand All @@ -30,69 +28,61 @@ export default {
title: 'Teleport/AuthConnectors',
};

export function Processing() {
export function Loaded() {
return (
<MemoryRouter initialEntries={[cfg.routes.sso]}>
<ContextWrapper>
<AuthConnectors />
</ContextWrapper>
</MemoryRouter>
<TeleportProviderBasic initialEntries={[cfg.routes.sso]}>
<AuthConnectors />
</TeleportProviderBasic>
);
}
Processing.parameters = {
Loaded.parameters = {
msw: {
handlers: [
http.get(
cfg.getGithubConnectorsUrl(),
async () => await delay('infinite')
http.get(cfg.getGithubConnectorsUrl(), () =>
HttpResponse.json({ connectors: [connectors[0], connectors[1]] })
),
],
},
};

export function Loaded() {
export function Processing() {
return (
<MemoryRouter initialEntries={[cfg.routes.sso]}>
<ContextWrapper>
<AuthConnectors />
</ContextWrapper>
</MemoryRouter>
<TeleportProviderBasic initialEntries={[cfg.routes.sso]}>
<AuthConnectors />
</TeleportProviderBasic>
);
}
Loaded.parameters = {
Processing.parameters = {
msw: {
handlers: [
http.get(cfg.getGithubConnectorsUrl(), () =>
HttpResponse.json([connectors[0], connectors[1]])
http.get(
cfg.getGithubConnectorsUrl(),
async () => await delay('infinite')
),
],
},
};

export function Empty() {
return (
<MemoryRouter initialEntries={[cfg.routes.sso]}>
<ContextWrapper>
<AuthConnectors />
</ContextWrapper>
</MemoryRouter>
<TeleportProviderBasic initialEntries={[cfg.routes.sso]}>
<AuthConnectors />
</TeleportProviderBasic>
);
}
Empty.parameters = {
msw: {
handlers: [
http.get(cfg.getGithubConnectorsUrl(), () => HttpResponse.json([])),
http.get(cfg.getGithubConnectorsUrl(), () => HttpResponse.json({})),
],
},
};

export function Failed() {
return (
<MemoryRouter initialEntries={[cfg.routes.sso]}>
<ContextWrapper>
<AuthConnectors />
</ContextWrapper>
</MemoryRouter>
<TeleportProviderBasic initialEntries={[cfg.routes.sso]}>
<AuthConnectors />
</TeleportProviderBasic>
);
}
Failed.parameters = {
Expand All @@ -109,8 +99,3 @@ Failed.parameters = {
],
},
};

function ContextWrapper({ children }: { children: JSX.Element }) {
const ctx = createTeleportContext();
return <ContextProvider ctx={ctx}>{children}</ContextProvider>;
}
21 changes: 6 additions & 15 deletions web/packages/teleport/src/Bots/Add/AddBotsPicker.story.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,25 +16,16 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

import { MemoryRouter } from 'react-router';

import { ContextProvider } from 'teleport';
import { createTeleportContext } from 'teleport/mocks/contexts';
import { TeleportProviderBasic } from 'teleport/mocks/providers';

import { AddBotsPicker } from './AddBotsPicker';

export default {
title: 'Teleport/Bots/Add/AddBotsPicker',
};

export const Picker = () => {
const ctx = createTeleportContext();

return (
<MemoryRouter>
<ContextProvider ctx={ctx}>
<AddBotsPicker />
</ContextProvider>
</MemoryRouter>
);
};
export const Picker = () => (
<TeleportProviderBasic>
<AddBotsPicker />
</TeleportProviderBasic>
);
Loading
Loading