Skip to content
Snippets Groups Projects
Commit 2f761240 authored by Max Frederiksen's avatar Max Frederiksen Committed by Max Frederiksen
Browse files

Add typing /stories

parent 12d7f114
No related branches found
No related tags found
2 merge requests!612Release 5.0.0,!590CE-3429: Convert to typescript
import { Meta } from "@storybook/react";
import { IOCLiveStatus } from "../../../../components/IOC/IOCLiveStatus"; import { IOCLiveStatus } from "../../../../components/IOC/IOCLiveStatus";
import { AppHarness } from "../../../../mocks/AppHarness"; import { AppHarness } from "../../../../mocks/AppHarness";
import { userImpersonatorArgs } from "../../../utils/common-args"; import { userImpersonatorArgs } from "../../../utils/common-args";
import iocs from "../../../../mocks/fixtures/PagedIOCResponse.json"; import iocs from "../../../../mocks/fixtures/PagedIOCResponse.json";
import { IocDetails } from "../../../../store/deployApi";
import { User } from "../../../../types/common";
export default { export default {
title: "IOC/IOCLiveStatus" title: "IOC/IOCLiveStatus"
}; } as Meta<typeof IOCLiveStatus>;
interface Args {
ioc: IocDetails;
isLoggedIn: boolean;
user?: User;
userRoles?: string[];
}
const Template = (args) => { const Template = (args: Args) => {
return ( return (
<AppHarness <AppHarness
useTestUser={args.isLoggedIn} useTestUser={args.isLoggedIn}
...@@ -18,13 +28,13 @@ const Template = (args) => { ...@@ -18,13 +28,13 @@ const Template = (args) => {
); );
}; };
export const Default = (args) => <Template {...args} />; export const Default = (args: Args) => <Template {...args} />;
Default.args = { Default.args = {
ioc: iocs.iocList.find((ioc) => ioc.id === 15), ioc: iocs.iocList.find((ioc) => ioc.id === 15),
isLoggedIn: false isLoggedIn: false
}; };
export const LoggedIn = (args) => <Template {...args} />; export const LoggedIn = (args: Args) => <Template {...args} />;
LoggedIn.args = { LoggedIn.args = {
...userImpersonatorArgs, ...userImpersonatorArgs,
...Default.args, ...Default.args,
......
import { Meta, StoryFn } from "@storybook/react";
import { Container } from "@mui/material"; import { Container } from "@mui/material";
import { http } from "msw"; import { http, delay } from "msw";
import hosts from "../../../../mocks/fixtures/Hosts.json"; import hosts from "../../../../mocks/fixtures/Hosts.json";
import { HostTable } from "../../../../components/host/HostTable"; import { HostTable } from "../../../../components/host/HostTable";
import { RouterHarness } from "../../../../mocks/AppHarness"; import { RouterHarness } from "../../../../mocks/AppHarness";
...@@ -19,9 +20,11 @@ export default { ...@@ -19,9 +20,11 @@ export default {
setLazyParams: hideStorybookControls, setLazyParams: hideStorybookControls,
setColumnSort: hideStorybookControls setColumnSort: hideStorybookControls
} }
}; } as Meta<typeof HostTable>;
type HostTableStory = StoryFn<typeof HostTable>;
const Template = (args) => ( const Template: HostTableStory = (args) => (
<RouterHarness> <RouterHarness>
<Container> <Container>
<HostTable {...args} /> <HostTable {...args} />
...@@ -29,27 +32,21 @@ const Template = (args) => ( ...@@ -29,27 +32,21 @@ const Template = (args) => (
</RouterHarness> </RouterHarness>
); );
export const Empty = (args) => <Template {...args} />; export const Empty: HostTableStory = (args) => <Template {...args} />;
Empty.args = { Empty.args = {
loading: false, loading: false,
hosts: [], hosts: []
totalCount: 0,
rowsPerPage: [5, 10, 20, 50, 100],
lazyParams: { rows: 10, page: 0 },
columnSort: { sortField: null, sortOrder: null },
setLazyParams: () => {},
setColumnSort: () => {}
}; };
export const EmptyLoading = (args) => <Template {...args} />; export const EmptyLoading: HostTableStory = (args) => <Template {...args} />;
EmptyLoading.args = { EmptyLoading.args = {
...Empty.args, ...Empty.args,
loading: true loading: true
}; };
export const BeforeAsync = (args) => <Template {...args} />; export const BeforeAsync: HostTableStory = (args) => <Template {...args} />;
BeforeAsync.args = { BeforeAsync.args = {
...Empty.args, ...Empty.args,
...@@ -62,18 +59,13 @@ BeforeAsync.argTypes = { ...@@ -62,18 +59,13 @@ BeforeAsync.argTypes = {
BeforeAsync.parameters = { BeforeAsync.parameters = {
msw: { msw: {
handlers: [ handlers: [
http.get("*/hosts/*", (req, res, ctx) => res(ctx.delay("infinite"))), http.get("*/hosts/*", async () => await delay("infinite")),
http.get("*/hosts/:host_id/status", (req, res, ctx) => { http.get("*/hosts/:host_id/status", async () => await delay("infinite")),
const { host_id } = req.params; // eslint-disable-line http.get("*/hosts/:host_id/alerts", async () => delay("infinite"))
res(ctx.delay("infinite"));
}),
http.get("*/hosts/:host_id/alerts", (req, res, ctx) => {
res(ctx.delay("infinite"));
})
] ]
} }
}; };
export const AfterAsync = (args) => <Template {...args} />; export const AfterAsync: HostTableStory = (args) => <Template {...args} />;
AfterAsync.args = { ...BeforeAsync.args }; AfterAsync.args = { ...BeforeAsync.args };
AfterAsync.argTypes = { ...BeforeAsync.argTypes }; AfterAsync.argTypes = { ...BeforeAsync.argTypes };
import { Box } from "@mui/material"; import { Box } from "@mui/material";
import { RouterHarness } from "../../../../mocks/AppHarness"; import { RouterHarness } from "../../../../mocks/AppHarness";
import { JobTable } from "../../../../components/Job/JobTable"; import { JobTable } from "../../../../components/Job/JobTable";
import { type BaseJob } from "../../../../store/deployApi";
import operationList from "../../../../mocks/fixtures/Jobs.json";
import { import {
hideStorybookControls, hideStorybookControls,
paginationNoResults paginationNoResults
} from "../../../utils/common-args"; } from "../../../utils/common-args";
import operationList from "../../../../mocks/fixtures/Jobs.json"; import type { Meta, StoryFn } from "@storybook/react";
export default { export default {
title: "Jobs/JobTable", title: "Jobs/JobTable",
...@@ -18,9 +20,11 @@ export default { ...@@ -18,9 +20,11 @@ export default {
pagination: hideStorybookControls, pagination: hideStorybookControls,
onPage: hideStorybookControls onPage: hideStorybookControls
} }
}; } as Meta<typeof JobTable>;
type JobTableStory = StoryFn<typeof JobTable>;
const Template = (args) => ( const Template: JobTableStory = (args) => (
<RouterHarness> <RouterHarness>
<Box height="90vh"> <Box height="90vh">
<JobTable {...args} /> <JobTable {...args} />
...@@ -28,28 +32,27 @@ const Template = (args) => ( ...@@ -28,28 +32,27 @@ const Template = (args) => (
</RouterHarness> </RouterHarness>
); );
export const Empty = (args) => <Template {...args} />; export const Empty: JobTableStory = (args) => <Template {...args} />;
Empty.args = { Empty.args = {
rowType: "jobLog",
loading: false, loading: false,
jobs: [], jobs: [],
pagination: paginationNoResults, pagination: paginationNoResults,
onPage: () => {} onPage: () => {}
}; };
export const EmptyLoading = (args) => <Template {...args} />; export const EmptyLoading: JobTableStory = (args) => <Template {...args} />;
EmptyLoading.args = { EmptyLoading.args = {
...Empty.args, ...Empty.args,
loading: true loading: true
}; };
export const Populated = (args) => <Template {...args} />; export const Populated: JobTableStory = (args) => <Template {...args} />;
Populated.args = { Populated.args = {
...Empty.args, ...Empty.args,
jobs: operationList.jobs, jobs: operationList?.jobs as BaseJob[],
pagination: { ...paginationNoResults, totalCount: operationList.totalCount } pagination: { ...paginationNoResults, totalCount: operationList.totalCount }
}; };
......
import { AppHarness } from "../../../mocks/AppHarness"; import { AppHarness } from "../../../mocks/AppHarness";
import { User } from "../../../types/common";
import { HostDetailsContainer } from "../../../views/host/details/HostDetailsContainer"; import { HostDetailsContainer } from "../../../views/host/details/HostDetailsContainer";
import { userImpersonatorArgs } from "../../utils/common-args"; import { userImpersonatorArgs } from "../../utils/common-args";
...@@ -6,42 +7,41 @@ export default { ...@@ -6,42 +7,41 @@ export default {
title: "Views/Host/HostDetailsView" title: "Views/Host/HostDetailsView"
}; };
const Template = (args) => ( interface Args {
user: User;
userRoles: string[];
hostId: string;
}
const Template = (args: Args) => (
<AppHarness <AppHarness
useTestUser useTestUser
{...args} {...args}
> >
<HostDetailsContainer <HostDetailsContainer hostId={args.hostId} />
hostId={args.hostId}
hostFqdn={args.hostFqdn}
/>
</AppHarness> </AppHarness>
); );
export const Active = (args) => <Template {...args} />; export const Active = (args: Args) => <Template {...args} />;
Active.args = { Active.args = {
...userImpersonatorArgs, ...userImpersonatorArgs,
hostId: "MjE5MV9mYWxzZQ", hostId: "MjE5MV9mYWxzZQ"
hostFqdn: "mebt-vm-ioc01.tn.esss.lu.se"
}; };
export const InActive = (args) => <Template {...args} />; export const InActive = (args: Args) => <Template {...args} />;
InActive.args = { InActive.args = {
...userImpersonatorArgs, ...userImpersonatorArgs,
hostId: "MjEwOF9mYWxzZQ", hostId: "MjEwOF9mYWxzZQ"
hostFqdn: "mebt-vm-ioc02.tn.esss.lu.se"
}; };
export const ActiveWithError = (args) => <Template {...args} />; export const ActiveWithError = (args: Args) => <Template {...args} />;
ActiveWithError.args = { ActiveWithError.args = {
...userImpersonatorArgs, ...userImpersonatorArgs,
hostId: "NDkzN190cnVl", hostId: "NDkzN190cnVl"
hostFqdn: "mebt-ifc1410-03.tn.esss.lu.se"
}; };
export const InActiveWithError = (args) => <Template {...args} />; export const InActiveWithError = (args: Args) => <Template {...args} />;
InActiveWithError.args = { InActiveWithError.args = {
...userImpersonatorArgs, ...userImpersonatorArgs,
hostId: "NTU4MF90cnVl", hostId: "NTU4MF90cnVl"
hostFqdn: "mebt-llrf3-mtca-ioc.tn.esss.lu.se"
}; };
import { http } from "msw"; import { http, delay, HttpResponse } from "msw";
import { AppHarness } from "../../../mocks/AppHarness"; import { AppHarness } from "../../../mocks/AppHarness";
import { CreateIOCView } from "../../../views/IOC/CreateIOCView"; import { CreateIOCView } from "../../../views/IOC/CreateIOCView";
import { handlers } from "../../../mocks/handlers"; import { handlers } from "../../../mocks/handlers";
import { userImpersonatorArgs } from "../../utils/common-args"; import { userImpersonatorArgs } from "../../utils/common-args";
import general_exception from "../../../mocks/fixtures/GeneralException.json"; import general_exception from "../../../mocks/fixtures/GeneralException.json";
import { User } from "../../../types/common";
export default { export default {
title: "Views/IOC/CreateIOCView" title: "Views/IOC/CreateIOCView"
}; };
const Template = (args) => ( interface Args {
user: User;
userRoles: string[];
}
const Template = (args: Args) => (
<AppHarness <AppHarness
useTestUser useTestUser
{...args} {...args}
...@@ -18,33 +24,33 @@ const Template = (args) => ( ...@@ -18,33 +24,33 @@ const Template = (args) => (
</AppHarness> </AppHarness>
); );
export const Default = (args) => <Template {...args} />; export const Default = (args: Args) => <Template {...args} />;
Default.args = { Default.args = {
...userImpersonatorArgs ...userImpersonatorArgs
}; };
export const CreateLoading = (args) => <Template {...args} />; export const CreateLoading = (args: Args) => <Template {...args} />;
CreateLoading.args = { CreateLoading.args = {
...Default.args ...Default.args
}; };
CreateLoading.parameters = { CreateLoading.parameters = {
msw: { msw: {
handlers: [ handlers: [
http.post("*/iocs", (req, res, ctx) => res(ctx.delay("infinite"))), http.post("*/iocs", async () => await delay("infinite")),
...handlers ...handlers
] ]
} }
}; };
export const CreateWithError = (args) => <Template {...args} />; export const CreateWithError = (args: Args) => <Template {...args} />;
CreateWithError.args = { CreateWithError.args = {
...Default.args ...Default.args
}; };
CreateWithError.parameters = { CreateWithError.parameters = {
msw: { msw: {
handlers: [ handlers: [
http.post("*/iocs", (req, res, ctx) => http.post("*/iocs", () =>
res(ctx.status(400), ctx.json(general_exception)) HttpResponse.json({ message: general_exception }, { status: 400 })
), ),
...handlers ...handlers
] ]
......
...@@ -6,7 +6,11 @@ export default { ...@@ -6,7 +6,11 @@ export default {
title: "Views/IOC/IOCDetailsView" title: "Views/IOC/IOCDetailsView"
}; };
const Template = (args) => ( interface Args {
id: string;
}
const Template = (args: Args) => (
<AppHarness <AppHarness
useTestUser useTestUser
{...args} {...args}
...@@ -20,20 +24,20 @@ const config = { ...@@ -20,20 +24,20 @@ const config = {
...userImpersonatorArgs ...userImpersonatorArgs
}; };
export const NotDeployed = (args) => <Template {...args} />; export const NotDeployed = (args: Args) => <Template {...args} />;
NotDeployed.args = { NotDeployed.args = {
...config, ...config,
id: 18 id: "18"
}; };
export const Deployed = (args) => <Template {...args} />; export const Deployed = (args: Args) => <Template {...args} />;
Deployed.args = { Deployed.args = {
...config, ...config,
id: 14 id: "14"
}; };
export const DeployedErrors = (args) => <Template {...args} />; export const DeployedErrors = (args: Args) => <Template {...args} />;
DeployedErrors.args = { DeployedErrors.args = {
...config, ...config,
id: 39 id: "39"
}; };
import { http } from "msw"; import { http, delay } from "msw";
import { AppHarness } from "../../../mocks/AppHarness"; import { AppHarness } from "../../../mocks/AppHarness";
import { handlers } from "../../../mocks/handlers"; import { handlers } from "../../../mocks/handlers";
import { IOCListView } from "../../../views/IOC/IOCListView"; import { IOCListView } from "../../../views/IOC/IOCListView";
...@@ -19,7 +19,7 @@ export const LoadingAsyncCells = () => <Template />; ...@@ -19,7 +19,7 @@ export const LoadingAsyncCells = () => <Template />;
LoadingAsyncCells.parameters = { LoadingAsyncCells.parameters = {
msw: { msw: {
handlers: [ handlers: [
http.get("*/iocs/*", (req, res, ctx) => res(ctx.delay("infinite"))), http.get("*/iocs/*", async () => await delay("infinite")),
...handlers ...handlers
] ]
} }
......
import { JobsDetails } from "../../../components/Job/JobDetails"; import { JobsDetails } from "../../../components/Job/JobDetails";
import { AppHarness } from "../../../mocks/AppHarness"; import { AppHarness } from "../../../mocks/AppHarness";
import jobs from "../../../mocks/fixtures/Jobs.json"; import jobs from "../../../mocks/fixtures/Jobs.json";
import { JobDetails } from "../../../store/deployApi";
const STATUS_OPTIONS = ["SUCCESSFUL", "FAILED", "QUEUED", "RUNNING", "UNKNOWN"]; const STATUS_OPTIONS = ["SUCCESSFUL", "FAILED", "QUEUED", "RUNNING", "UNKNOWN"];
const JOB_ACTION_OPTIONS = [ const JOB_ACTION_OPTIONS = [
...@@ -26,7 +27,12 @@ export default { ...@@ -26,7 +27,12 @@ export default {
} }
}; };
const Template = (args) => { interface Args {
actionType: JobDetails["action"];
status: JobDetails["status"];
}
const Template = (args: Args) => {
const currentJob = jobs.jobs.find((job) => job.action === args.actionType); const currentJob = jobs.jobs.find((job) => job.action === args.actionType);
return ( return (
<AppHarness> <AppHarness>
...@@ -35,13 +41,12 @@ const Template = (args) => { ...@@ -35,13 +41,12 @@ const Template = (args) => {
action: args.actionType, action: args.actionType,
status: args.status status: args.status
})} })}
awxJob={args.operation}
/> />
</AppHarness> </AppHarness>
); );
}; };
export const Default = (args) => <Template {...args} />; export const Default = (args: Args) => <Template {...args} />;
Default.args = { Default.args = {
actionType: JOB_ACTION_OPTIONS[0], actionType: JOB_ACTION_OPTIONS[0],
......
...@@ -9,7 +9,6 @@ export const Default = () => ( ...@@ -9,7 +9,6 @@ export const Default = () => (
<AppHarness <AppHarness
initialHistory={["/login"]} initialHistory={["/login"]}
useTestUser useTestUser
user={null}
> >
<LoginView /> <LoginView />
</AppHarness> </AppHarness>
......
import { UserDetailsContainer } from "../../../views/UserPage"; import { UserDetailsContainer } from "../../../views/UserPage";
import { AppHarness } from "../../../mocks/AppHarness"; import { AppHarness } from "../../../mocks/AppHarness";
import { userImpersonatorArgs } from "../../utils/common-args"; import { userImpersonatorArgs } from "../../utils/common-args";
import { User } from "../../../types/common";
export default { export default {
title: "Views/UserPage/UserPageView" title: "Views/UserPage/UserPageView"
}; };
const Template = (args) => ( interface Args {
user: User;
userRoles: string[];
}
const Template = (args: Args) => (
<AppHarness <AppHarness
useTestUser useTestUser
{...args} {...args}
...@@ -15,7 +21,7 @@ const Template = (args) => ( ...@@ -15,7 +21,7 @@ const Template = (args) => (
</AppHarness> </AppHarness>
); );
export const Default = (args) => <Template {...args} />; export const Default = (args: Args) => <Template {...args} />;
Default.args = { Default.args = {
...userImpersonatorArgs ...userImpersonatorArgs
}; };
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment