From e9133c4a75bb0ffb8fcd3b4a877761481c24ce29 Mon Sep 17 00:00:00 2001 From: fmtabbara Date: Thu, 8 Sep 2022 16:19:30 +0100 Subject: [PATCH] add stories for test my node --- .../TestMyNode/Results/Packets.stories.tsx | 27 ++++++++++ .../TestMyNode/Results/Path.stories.tsx | 35 +++++++++++++ .../TestMyNode/Results/Results.stories.tsx | 18 +++++++ .../TestMyNode/Results/Speed.stories.tsx | 33 +++++++++++++ .../components/TestMyNode/Results/index.tsx | 49 +++++++++++++------ .../TestProgress/TestProgress.stories.tsx | 38 ++++++++++++++ nym-wallet/src/pages/test-my-node/index.tsx | 2 +- 7 files changed, 185 insertions(+), 17 deletions(-) create mode 100644 nym-wallet/src/components/TestMyNode/Results/Packets.stories.tsx create mode 100644 nym-wallet/src/components/TestMyNode/Results/Path.stories.tsx create mode 100644 nym-wallet/src/components/TestMyNode/Results/Results.stories.tsx create mode 100644 nym-wallet/src/components/TestMyNode/Results/Speed.stories.tsx create mode 100644 nym-wallet/src/components/TestMyNode/TestProgress/TestProgress.stories.tsx diff --git a/nym-wallet/src/components/TestMyNode/Results/Packets.stories.tsx b/nym-wallet/src/components/TestMyNode/Results/Packets.stories.tsx new file mode 100644 index 0000000000..32901ea50c --- /dev/null +++ b/nym-wallet/src/components/TestMyNode/Results/Packets.stories.tsx @@ -0,0 +1,27 @@ +import * as React from 'react'; +import { ComponentMeta, ComponentStory } from '@storybook/react'; +import { Box } from '@mui/material'; +import { Packets } from '.'; + +export default { + title: 'Test my node / Packets', + component: Packets, +} as ComponentMeta; + +const Transfer: ComponentStory = (args) => ( + + + +); + +export const HighTransfer = Transfer.bind({}); +HighTransfer.args = { + sent: '100', + received: '80', +}; + +export const LowTransfer = Transfer.bind({}); +LowTransfer.args = { + sent: '100', + received: '50', +}; diff --git a/nym-wallet/src/components/TestMyNode/Results/Path.stories.tsx b/nym-wallet/src/components/TestMyNode/Results/Path.stories.tsx new file mode 100644 index 0000000000..2c4601801a --- /dev/null +++ b/nym-wallet/src/components/TestMyNode/Results/Path.stories.tsx @@ -0,0 +1,35 @@ +import * as React from 'react'; +import { ComponentMeta, ComponentStory } from '@storybook/react'; +import { Box } from '@mui/material'; +import { Path } from '.'; + +export default { + title: 'Test my node / Node path', + component: Path, +} as ComponentMeta; + +const Template: ComponentStory = (args) => ( + + + +); + +export const Gateway = Template.bind({}); +Gateway.args = { + layer: 'gateway', +}; + +export const LayerOne = Template.bind({}); +LayerOne.args = { + layer: '1', +}; + +export const LayerTwo = Template.bind({}); +LayerTwo.args = { + layer: '2', +}; + +export const LayerThree = Template.bind({}); +LayerThree.args = { + layer: '3', +}; diff --git a/nym-wallet/src/components/TestMyNode/Results/Results.stories.tsx b/nym-wallet/src/components/TestMyNode/Results/Results.stories.tsx new file mode 100644 index 0000000000..30dbc9f941 --- /dev/null +++ b/nym-wallet/src/components/TestMyNode/Results/Results.stories.tsx @@ -0,0 +1,18 @@ +import * as React from 'react'; +import { ComponentMeta, ComponentStory } from '@storybook/react'; +import { Box } from '@mui/material'; +import { NodeSpeed, Results } from '.'; + +export default { + title: 'Test my node / Results', + component: Results, +} as ComponentMeta; + +const Template: ComponentStory = (args) => ; + +export const Default = Template.bind({}); +Default.args = { + layer: '1', + packetsSent: '1000', + packetsReceived: '5000', +}; diff --git a/nym-wallet/src/components/TestMyNode/Results/Speed.stories.tsx b/nym-wallet/src/components/TestMyNode/Results/Speed.stories.tsx new file mode 100644 index 0000000000..e8e3d9d078 --- /dev/null +++ b/nym-wallet/src/components/TestMyNode/Results/Speed.stories.tsx @@ -0,0 +1,33 @@ +import * as React from 'react'; +import { ComponentMeta, ComponentStory } from '@storybook/react'; +import { Box } from '@mui/material'; +import { NodeSpeed } from '.'; + +export default { + title: 'Test my node / Node speed', + component: NodeSpeed, +} as ComponentMeta; + +const Template: ComponentStory = (args) => ( + + + +); + +export const FastNode = Template.bind({}); +FastNode.args = { + Mbps: 500, + performance: 'good', +}; + +export const FairNode = Template.bind({}); +FairNode.args = { + Mbps: 100, + performance: 'fair', +}; + +export const SlowNode = Template.bind({}); +SlowNode.args = { + Mbps: 10, + performance: 'poor', +}; diff --git a/nym-wallet/src/components/TestMyNode/Results/index.tsx b/nym-wallet/src/components/TestMyNode/Results/index.tsx index a35d6401c3..6c94f7618e 100644 --- a/nym-wallet/src/components/TestMyNode/Results/index.tsx +++ b/nym-wallet/src/components/TestMyNode/Results/index.tsx @@ -4,10 +4,16 @@ import { Box, Button, Card, Chip, CircularProgress, Divider, Grid, Stack, Typogr import format from 'date-fns/format'; import { ResultsCard } from '../components/ResultsCard'; import { ResultsCardDetail } from '../components/ResultsCardDetail'; -import { PathChip } from '../components/PathChip'; import { NodePath } from 'src/svg-icons/node-path'; -const NodeSpeed = ({ Mbps, performance }: { Mbps: number; performance: 'poor' | 'fair' | 'good' }) => ( +export type Layer = '1' | '2' | '3' | 'gateway'; + +const getLayerDescription = (layer: Layer) => { + if (layer === 'gateway') return 'Your node was in the Gateway layer'; + return `Your node was in layer ${layer}`; +}; + +export const NodeSpeed = ({ Mbps, performance }: { Mbps: number; performance: 'poor' | 'fair' | 'good' }) => ( ); -const Packets = ({ sent, received }: { sent: string; received: string }) => ( - - - - - - -); +export const Packets = ({ sent, received }: { sent: string; received: string }) => { + const percentage = Math.round((+received / +sent) * 100); + return ( + 75}> + + + + + + ); +}; -const Path = ({ layer }: { layer: '1' | '2' | '3' | 'gateway' }) => ( - - +export const Path = ({ layer }: { layer: Layer }) => ( + + ); -export const Results = () => ( +export const Results = ({ + packetsSent, + packetsReceived, + layer, +}: { + packetsSent: string; + packetsReceived: string; + layer: '1' | '2' | '3' | 'gateway'; +}) => ( <> @@ -76,8 +93,8 @@ export const Results = () => ( - - + + diff --git a/nym-wallet/src/components/TestMyNode/TestProgress/TestProgress.stories.tsx b/nym-wallet/src/components/TestMyNode/TestProgress/TestProgress.stories.tsx new file mode 100644 index 0000000000..47241e8f1e --- /dev/null +++ b/nym-wallet/src/components/TestMyNode/TestProgress/TestProgress.stories.tsx @@ -0,0 +1,38 @@ +import * as React from 'react'; +import { ComponentMeta, ComponentStory } from '@storybook/react'; +import { Box } from '@mui/material'; +import { TestProgress } from '.'; + +export default { + title: 'Test my node / Test progress', + component: TestProgress, +} as ComponentMeta; + +const Template: ComponentStory = ({ packetsSent, totalPackets }) => { + const [sent, setSent] = React.useState(packetsSent); + + const mockPacketTransfer = (sent: number) => { + if (sent - 1 < totalPackets) { + setSent(sent); + setTimeout(() => { + mockPacketTransfer(sent + 1); + }, 25); + } + }; + + React.useEffect(() => { + mockPacketTransfer(0); + }, []); + + return ( + + + + ); +}; + +export const Default = Template.bind({}); +Default.args = { + packetsSent: 0, + totalPackets: 100, +}; diff --git a/nym-wallet/src/pages/test-my-node/index.tsx b/nym-wallet/src/pages/test-my-node/index.tsx index 237edb4385..521d0dd7a3 100644 --- a/nym-wallet/src/pages/test-my-node/index.tsx +++ b/nym-wallet/src/pages/test-my-node/index.tsx @@ -30,7 +30,7 @@ export const TestNode = () => { {view === 'overview' && } {view === 'start-test' && } - {view === 'results' && } + {view === 'results' && } ); };