Add pill component
This commit is contained in:
20
lib/component/pill/DangerPill.tsx
Normal file
20
lib/component/pill/DangerPill.tsx
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import type { PillProps } from "$/types/PillTypes";
|
||||||
|
import clsx from "clsx";
|
||||||
|
import Pill from "./Pill";
|
||||||
|
|
||||||
|
|
||||||
|
export default function DangerPill({
|
||||||
|
className,
|
||||||
|
...props
|
||||||
|
}: Readonly<PillProps>){
|
||||||
|
return (
|
||||||
|
<Pill
|
||||||
|
data-testid="mattrixwv-danger-pill"
|
||||||
|
className={clsx(
|
||||||
|
className,
|
||||||
|
"bg-danger text-white"
|
||||||
|
)}
|
||||||
|
{...props}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
20
lib/component/pill/DarkPill.tsx
Normal file
20
lib/component/pill/DarkPill.tsx
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import type { PillProps } from "$/types/PillTypes";
|
||||||
|
import clsx from "clsx";
|
||||||
|
import Pill from "./Pill";
|
||||||
|
|
||||||
|
|
||||||
|
export default function DarkPill({
|
||||||
|
className,
|
||||||
|
...props
|
||||||
|
}: Readonly<PillProps>){
|
||||||
|
return (
|
||||||
|
<Pill
|
||||||
|
data-testid="mattrixwv-dark-pill"
|
||||||
|
className={clsx(
|
||||||
|
className,
|
||||||
|
"bg-dark text-white"
|
||||||
|
)}
|
||||||
|
{...props}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
20
lib/component/pill/InfoPill.tsx
Normal file
20
lib/component/pill/InfoPill.tsx
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import type { PillProps } from "$/types/PillTypes";
|
||||||
|
import clsx from "clsx";
|
||||||
|
import Pill from "./Pill";
|
||||||
|
|
||||||
|
|
||||||
|
export default function InfoPill({
|
||||||
|
className,
|
||||||
|
...props
|
||||||
|
}: Readonly<PillProps>){
|
||||||
|
return (
|
||||||
|
<Pill
|
||||||
|
data-testid="mattrixwv-info-pill"
|
||||||
|
className={clsx(
|
||||||
|
className,
|
||||||
|
"bg-info text-black"
|
||||||
|
)}
|
||||||
|
{...props}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
20
lib/component/pill/LightPill.tsx
Normal file
20
lib/component/pill/LightPill.tsx
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import type { PillProps } from "$/types/PillTypes";
|
||||||
|
import clsx from "clsx";
|
||||||
|
import Pill from "./Pill";
|
||||||
|
|
||||||
|
|
||||||
|
export default function LightPill({
|
||||||
|
className,
|
||||||
|
...props
|
||||||
|
}: Readonly<PillProps>){
|
||||||
|
return (
|
||||||
|
<Pill
|
||||||
|
data-testid="mattrixwv-light-pill"
|
||||||
|
className={clsx(
|
||||||
|
className,
|
||||||
|
"bg-light text-black"
|
||||||
|
)}
|
||||||
|
{...props}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
20
lib/component/pill/MoltenPill.tsx
Normal file
20
lib/component/pill/MoltenPill.tsx
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import type { PillProps } from "$/types/PillTypes";
|
||||||
|
import clsx from "clsx";
|
||||||
|
import Pill from "./Pill";
|
||||||
|
|
||||||
|
|
||||||
|
export default function MoltenPill({
|
||||||
|
className,
|
||||||
|
...props
|
||||||
|
}: Readonly<PillProps>){
|
||||||
|
return (
|
||||||
|
<Pill
|
||||||
|
data-testid="mattrixwv-molten-pill"
|
||||||
|
className={clsx(
|
||||||
|
className,
|
||||||
|
"bg-molten text-black"
|
||||||
|
)}
|
||||||
|
{...props}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
26
lib/component/pill/Pill.tsx
Normal file
26
lib/component/pill/Pill.tsx
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
import type { PillProps } from "$/types/PillTypes";
|
||||||
|
import clsx from "clsx";
|
||||||
|
|
||||||
|
|
||||||
|
export default function Pill({
|
||||||
|
className,
|
||||||
|
rounding = "full",
|
||||||
|
...props
|
||||||
|
}: Readonly<PillProps>){
|
||||||
|
return (
|
||||||
|
<div
|
||||||
|
data-testid="mattrixwv-pill"
|
||||||
|
className={clsx(
|
||||||
|
className,
|
||||||
|
"px-2 text-sm whitespace-nowrap",
|
||||||
|
{
|
||||||
|
"rounded-sm": rounding === "sm",
|
||||||
|
"rounded": rounding === "md",
|
||||||
|
"rounded-lg": rounding === "lg",
|
||||||
|
"rounded-full": rounding === "full"
|
||||||
|
}
|
||||||
|
)}
|
||||||
|
{...props}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
20
lib/component/pill/PrimaryPill.tsx
Normal file
20
lib/component/pill/PrimaryPill.tsx
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import type { PillProps } from "$/types/PillTypes";
|
||||||
|
import clsx from "clsx";
|
||||||
|
import Pill from "./Pill";
|
||||||
|
|
||||||
|
|
||||||
|
export default function PrimaryPill({
|
||||||
|
className,
|
||||||
|
...props
|
||||||
|
}: Readonly<PillProps>){
|
||||||
|
return (
|
||||||
|
<Pill
|
||||||
|
data-testid="mattrixwv-primary-pill"
|
||||||
|
className={clsx(
|
||||||
|
className,
|
||||||
|
"bg-primary text-white"
|
||||||
|
)}
|
||||||
|
{...props}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
20
lib/component/pill/SecondaryPill.tsx
Normal file
20
lib/component/pill/SecondaryPill.tsx
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import type { PillProps } from "$/types/PillTypes";
|
||||||
|
import clsx from "clsx";
|
||||||
|
import Pill from "./Pill";
|
||||||
|
|
||||||
|
|
||||||
|
export default function SecondaryPill({
|
||||||
|
className,
|
||||||
|
...props
|
||||||
|
}: Readonly<PillProps>){
|
||||||
|
return (
|
||||||
|
<Pill
|
||||||
|
data-testid="mattrixwv-secondary-pill"
|
||||||
|
className={clsx(
|
||||||
|
className,
|
||||||
|
"bg-secondary text-white"
|
||||||
|
)}
|
||||||
|
{...props}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
20
lib/component/pill/SuccessPill.tsx
Normal file
20
lib/component/pill/SuccessPill.tsx
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import type { PillProps } from "$/types/PillTypes";
|
||||||
|
import clsx from "clsx";
|
||||||
|
import Pill from "./Pill";
|
||||||
|
|
||||||
|
|
||||||
|
export default function SuccessPill({
|
||||||
|
className,
|
||||||
|
...props
|
||||||
|
}: Readonly<PillProps>){
|
||||||
|
return (
|
||||||
|
<Pill
|
||||||
|
data-testid="mattrixwv-success-pill"
|
||||||
|
className={clsx(
|
||||||
|
className,
|
||||||
|
"bg-success text-black"
|
||||||
|
)}
|
||||||
|
{...props}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
20
lib/component/pill/TertiaryPill.tsx
Normal file
20
lib/component/pill/TertiaryPill.tsx
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import type { PillProps } from "$/types/PillTypes";
|
||||||
|
import clsx from "clsx";
|
||||||
|
import Pill from "./Pill";
|
||||||
|
|
||||||
|
|
||||||
|
export default function TertiaryPill({
|
||||||
|
className,
|
||||||
|
...props
|
||||||
|
}: Readonly<PillProps>){
|
||||||
|
return (
|
||||||
|
<Pill
|
||||||
|
data-testid="mattrixwv-tertiary-pill"
|
||||||
|
className={clsx(
|
||||||
|
className,
|
||||||
|
"bg-tertiary text-white"
|
||||||
|
)}
|
||||||
|
{...props}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
20
lib/component/pill/WarningPill.tsx
Normal file
20
lib/component/pill/WarningPill.tsx
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import type { PillProps } from "$/types/PillTypes";
|
||||||
|
import clsx from "clsx";
|
||||||
|
import Pill from "./Pill";
|
||||||
|
|
||||||
|
|
||||||
|
export default function WarningPill({
|
||||||
|
className,
|
||||||
|
...props
|
||||||
|
}: Readonly<PillProps>){
|
||||||
|
return (
|
||||||
|
<Pill
|
||||||
|
data-testid="mattrixwv-warning-pill"
|
||||||
|
className={clsx(
|
||||||
|
className,
|
||||||
|
"bg-warning text-black"
|
||||||
|
)}
|
||||||
|
{...props}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
9
lib/types/PillTypes.ts
Normal file
9
lib/types/PillTypes.ts
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import type { ComponentProps } from "react";
|
||||||
|
|
||||||
|
|
||||||
|
export type PillRounding = "none" | "sm" | "md" | "lg" | "full";
|
||||||
|
|
||||||
|
|
||||||
|
export interface PillProps extends ComponentProps<"div"> {
|
||||||
|
rounding?: PillRounding;
|
||||||
|
}
|
||||||
@@ -18,7 +18,7 @@ declare module "@tanstack/react-router" {
|
|||||||
createRoot(document.getElementById('root')!).render(
|
createRoot(document.getElementById('root')!).render(
|
||||||
<StrictMode>
|
<StrictMode>
|
||||||
<ThemeProvider defaultTheme="dark">
|
<ThemeProvider defaultTheme="dark">
|
||||||
<ToasterProvider className="bg-zinc-700 text-white px-4 py-2 min-w-32 max-w-128 rounded-lg gap-y-4">
|
<ToasterProvider className="bg-zinc-700 text-white px-4 py-2 min-w-32 max-w-lg rounded-lg gap-y-4">
|
||||||
<RouterProvider router={router}/>
|
<RouterProvider router={router}/>
|
||||||
</ToasterProvider>
|
</ToasterProvider>
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import { Route as rootRouteImport } from './routes/__root'
|
|||||||
import { Route as IndexRouteImport } from './routes/index'
|
import { Route as IndexRouteImport } from './routes/index'
|
||||||
import { Route as TabIndexRouteImport } from './routes/tab/index'
|
import { Route as TabIndexRouteImport } from './routes/tab/index'
|
||||||
import { Route as ProgressIndexRouteImport } from './routes/progress/index'
|
import { Route as ProgressIndexRouteImport } from './routes/progress/index'
|
||||||
|
import { Route as PillIndexRouteImport } from './routes/pill/index'
|
||||||
import { Route as ModalIndexRouteImport } from './routes/modal/index'
|
import { Route as ModalIndexRouteImport } from './routes/modal/index'
|
||||||
import { Route as MessageIndexRouteImport } from './routes/message/index'
|
import { Route as MessageIndexRouteImport } from './routes/message/index'
|
||||||
import { Route as LoadingIndexRouteImport } from './routes/loading/index'
|
import { Route as LoadingIndexRouteImport } from './routes/loading/index'
|
||||||
@@ -33,6 +34,11 @@ const ProgressIndexRoute = ProgressIndexRouteImport.update({
|
|||||||
path: '/progress/',
|
path: '/progress/',
|
||||||
getParentRoute: () => rootRouteImport,
|
getParentRoute: () => rootRouteImport,
|
||||||
} as any)
|
} as any)
|
||||||
|
const PillIndexRoute = PillIndexRouteImport.update({
|
||||||
|
id: '/pill/',
|
||||||
|
path: '/pill/',
|
||||||
|
getParentRoute: () => rootRouteImport,
|
||||||
|
} as any)
|
||||||
const ModalIndexRoute = ModalIndexRouteImport.update({
|
const ModalIndexRoute = ModalIndexRouteImport.update({
|
||||||
id: '/modal/',
|
id: '/modal/',
|
||||||
path: '/modal/',
|
path: '/modal/',
|
||||||
@@ -66,6 +72,7 @@ export interface FileRoutesByFullPath {
|
|||||||
'/loading': typeof LoadingIndexRoute
|
'/loading': typeof LoadingIndexRoute
|
||||||
'/message': typeof MessageIndexRoute
|
'/message': typeof MessageIndexRoute
|
||||||
'/modal': typeof ModalIndexRoute
|
'/modal': typeof ModalIndexRoute
|
||||||
|
'/pill': typeof PillIndexRoute
|
||||||
'/progress': typeof ProgressIndexRoute
|
'/progress': typeof ProgressIndexRoute
|
||||||
'/tab': typeof TabIndexRoute
|
'/tab': typeof TabIndexRoute
|
||||||
}
|
}
|
||||||
@@ -76,6 +83,7 @@ export interface FileRoutesByTo {
|
|||||||
'/loading': typeof LoadingIndexRoute
|
'/loading': typeof LoadingIndexRoute
|
||||||
'/message': typeof MessageIndexRoute
|
'/message': typeof MessageIndexRoute
|
||||||
'/modal': typeof ModalIndexRoute
|
'/modal': typeof ModalIndexRoute
|
||||||
|
'/pill': typeof PillIndexRoute
|
||||||
'/progress': typeof ProgressIndexRoute
|
'/progress': typeof ProgressIndexRoute
|
||||||
'/tab': typeof TabIndexRoute
|
'/tab': typeof TabIndexRoute
|
||||||
}
|
}
|
||||||
@@ -87,6 +95,7 @@ export interface FileRoutesById {
|
|||||||
'/loading/': typeof LoadingIndexRoute
|
'/loading/': typeof LoadingIndexRoute
|
||||||
'/message/': typeof MessageIndexRoute
|
'/message/': typeof MessageIndexRoute
|
||||||
'/modal/': typeof ModalIndexRoute
|
'/modal/': typeof ModalIndexRoute
|
||||||
|
'/pill/': typeof PillIndexRoute
|
||||||
'/progress/': typeof ProgressIndexRoute
|
'/progress/': typeof ProgressIndexRoute
|
||||||
'/tab/': typeof TabIndexRoute
|
'/tab/': typeof TabIndexRoute
|
||||||
}
|
}
|
||||||
@@ -99,6 +108,7 @@ export interface FileRouteTypes {
|
|||||||
| '/loading'
|
| '/loading'
|
||||||
| '/message'
|
| '/message'
|
||||||
| '/modal'
|
| '/modal'
|
||||||
|
| '/pill'
|
||||||
| '/progress'
|
| '/progress'
|
||||||
| '/tab'
|
| '/tab'
|
||||||
fileRoutesByTo: FileRoutesByTo
|
fileRoutesByTo: FileRoutesByTo
|
||||||
@@ -109,6 +119,7 @@ export interface FileRouteTypes {
|
|||||||
| '/loading'
|
| '/loading'
|
||||||
| '/message'
|
| '/message'
|
||||||
| '/modal'
|
| '/modal'
|
||||||
|
| '/pill'
|
||||||
| '/progress'
|
| '/progress'
|
||||||
| '/tab'
|
| '/tab'
|
||||||
id:
|
id:
|
||||||
@@ -119,6 +130,7 @@ export interface FileRouteTypes {
|
|||||||
| '/loading/'
|
| '/loading/'
|
||||||
| '/message/'
|
| '/message/'
|
||||||
| '/modal/'
|
| '/modal/'
|
||||||
|
| '/pill/'
|
||||||
| '/progress/'
|
| '/progress/'
|
||||||
| '/tab/'
|
| '/tab/'
|
||||||
fileRoutesById: FileRoutesById
|
fileRoutesById: FileRoutesById
|
||||||
@@ -130,6 +142,7 @@ export interface RootRouteChildren {
|
|||||||
LoadingIndexRoute: typeof LoadingIndexRoute
|
LoadingIndexRoute: typeof LoadingIndexRoute
|
||||||
MessageIndexRoute: typeof MessageIndexRoute
|
MessageIndexRoute: typeof MessageIndexRoute
|
||||||
ModalIndexRoute: typeof ModalIndexRoute
|
ModalIndexRoute: typeof ModalIndexRoute
|
||||||
|
PillIndexRoute: typeof PillIndexRoute
|
||||||
ProgressIndexRoute: typeof ProgressIndexRoute
|
ProgressIndexRoute: typeof ProgressIndexRoute
|
||||||
TabIndexRoute: typeof TabIndexRoute
|
TabIndexRoute: typeof TabIndexRoute
|
||||||
}
|
}
|
||||||
@@ -157,6 +170,13 @@ declare module '@tanstack/react-router' {
|
|||||||
preLoaderRoute: typeof ProgressIndexRouteImport
|
preLoaderRoute: typeof ProgressIndexRouteImport
|
||||||
parentRoute: typeof rootRouteImport
|
parentRoute: typeof rootRouteImport
|
||||||
}
|
}
|
||||||
|
'/pill/': {
|
||||||
|
id: '/pill/'
|
||||||
|
path: '/pill'
|
||||||
|
fullPath: '/pill'
|
||||||
|
preLoaderRoute: typeof PillIndexRouteImport
|
||||||
|
parentRoute: typeof rootRouteImport
|
||||||
|
}
|
||||||
'/modal/': {
|
'/modal/': {
|
||||||
id: '/modal/'
|
id: '/modal/'
|
||||||
path: '/modal'
|
path: '/modal'
|
||||||
@@ -202,6 +222,7 @@ const rootRouteChildren: RootRouteChildren = {
|
|||||||
LoadingIndexRoute: LoadingIndexRoute,
|
LoadingIndexRoute: LoadingIndexRoute,
|
||||||
MessageIndexRoute: MessageIndexRoute,
|
MessageIndexRoute: MessageIndexRoute,
|
||||||
ModalIndexRoute: ModalIndexRoute,
|
ModalIndexRoute: ModalIndexRoute,
|
||||||
|
PillIndexRoute: PillIndexRoute,
|
||||||
ProgressIndexRoute: ProgressIndexRoute,
|
ProgressIndexRoute: ProgressIndexRoute,
|
||||||
TabIndexRoute: TabIndexRoute,
|
TabIndexRoute: TabIndexRoute,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ const navLinks = [
|
|||||||
{ to: "/loading", label: "Loading" },
|
{ to: "/loading", label: "Loading" },
|
||||||
{ to: "/message", label: "Message" },
|
{ to: "/message", label: "Message" },
|
||||||
{ to: "/modal", label: "Modal" },
|
{ to: "/modal", label: "Modal" },
|
||||||
|
{ to: "/pill", label: "Pill" },
|
||||||
{ to: "/progress", label: "Progress" },
|
{ to: "/progress", label: "Progress" },
|
||||||
{ to: "/tab", label: "Tab" }
|
{ to: "/tab", label: "Tab" }
|
||||||
];
|
];
|
||||||
@@ -20,7 +21,7 @@ export const Route = createRootRoute({
|
|||||||
component: () => (
|
component: () => (
|
||||||
<>
|
<>
|
||||||
<NavBar
|
<NavBar
|
||||||
className="bg-neutral-300 dark:bg-neutral-900 h-12"
|
className="bg-neutral-300 dark:bg-neutral-900 h-12 gap-x-4"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
className="flex flex-row items-center justify-end gap-x-4"
|
className="flex flex-row items-center justify-end gap-x-4"
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import { DangerMessageBlock, DarkMessageBlock, LightMessageBlock, PrimaryMessageBlock, SecondaryMessageBlock, SuccessMessageBlock, TertiaryMessageBlock, WarningMessageBlock } from '$/component/message';
|
import { DangerMessageBlock, DarkMessageBlock, LightMessageBlock, PrimaryMessageBlock, SecondaryMessageBlock, SuccessMessageBlock, TertiaryMessageBlock, WarningMessageBlock } from '$/component/message';
|
||||||
import InfoMessageBlock from '$/component/message/InfoMessageBlock';
|
import InfoMessageBlock from "$/component/message/InfoMessageBlock";
|
||||||
import MoltenMessageBlock from '$/component/message/MoltenMessageBlock';
|
import MoltenMessageBlock from "$/component/message/MoltenMessageBlock";
|
||||||
import { MattrixwvTabGroup } from '$/component/tab';
|
import { MattrixwvTabGroup } from "$/component/tab";
|
||||||
import type { MessageBlockProps } from '$/types/MessageTypes';
|
import type { MessageBlockProps } from "$/types/MessageTypes";
|
||||||
import type { TabGroupContent } from '$/types/TabTypes';
|
import type { TabGroupContent } from "$/types/TabTypes";
|
||||||
import { createFileRoute } from '@tanstack/react-router';
|
import { createFileRoute } from "@tanstack/react-router";
|
||||||
|
|
||||||
|
|
||||||
export const Route = createFileRoute('/message/')({
|
export const Route = createFileRoute("/message/")({
|
||||||
component: MessagePage
|
component: MessagePage
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
56
src/routes/pill/index.tsx
Normal file
56
src/routes/pill/index.tsx
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
import DangerPill from "$/component/pill/DangerPill";
|
||||||
|
import DarkPill from "$/component/pill/DarkPill";
|
||||||
|
import InfoPill from "$/component/pill/InfoPill";
|
||||||
|
import LightPill from "$/component/pill/LightPill";
|
||||||
|
import MoltenPill from "$/component/pill/MoltenPill";
|
||||||
|
import PrimaryPill from "$/component/pill/PrimaryPill";
|
||||||
|
import SecondaryPill from "$/component/pill/SecondaryPill";
|
||||||
|
import SuccessPill from "$/component/pill/SuccessPill";
|
||||||
|
import TertiaryPill from "$/component/pill/TertiaryPill";
|
||||||
|
import WarningPill from "$/component/pill/WarningPill";
|
||||||
|
import type { PillProps } from "$/types/PillTypes";
|
||||||
|
import { createFileRoute } from "@tanstack/react-router";
|
||||||
|
|
||||||
|
|
||||||
|
export const Route = createFileRoute("/pill/")({
|
||||||
|
component: PillPage
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
function PillPage(){
|
||||||
|
return (
|
||||||
|
<div className="flex flex-col items-center justify-center gap-y-8">
|
||||||
|
<PillLayout PillType={PrimaryPill} pillName="Primary"/>
|
||||||
|
<PillLayout PillType={SecondaryPill} pillName="Secondary"/>
|
||||||
|
<PillLayout PillType={TertiaryPill} pillName="Tertiary"/>
|
||||||
|
<PillLayout PillType={InfoPill} pillName="Info"/>
|
||||||
|
<PillLayout PillType={SuccessPill} pillName="Success"/>
|
||||||
|
<PillLayout PillType={WarningPill} pillName="Warning"/>
|
||||||
|
<PillLayout PillType={DangerPill} pillName="Danger"/>
|
||||||
|
<PillLayout PillType={MoltenPill} pillName="Molten"/>
|
||||||
|
<PillLayout PillType={DarkPill} pillName="Dark"/>
|
||||||
|
<PillLayout PillType={LightPill} pillName="Light"/>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function PillLayout({
|
||||||
|
PillType,
|
||||||
|
pillName
|
||||||
|
}: Readonly<{
|
||||||
|
PillType: (props: PillProps) => React.ReactNode;
|
||||||
|
pillName: string;
|
||||||
|
}>){
|
||||||
|
return (
|
||||||
|
<div className="flex flex-col items-center justify-center gap-y-2">
|
||||||
|
<h2 className="text-2xl">{pillName}</h2>
|
||||||
|
<div className="flex flex-row items-center justify-center gap-x-8">
|
||||||
|
<PillType rounding="none">None</PillType>
|
||||||
|
<PillType rounding="sm">Small</PillType>
|
||||||
|
<PillType rounding="md">Medium</PillType>
|
||||||
|
<PillType rounding="lg">Large</PillType>
|
||||||
|
<PillType rounding="full">Full</PillType>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
84
test/component/pill/DangerPill.test.tsx
Normal file
84
test/component/pill/DangerPill.test.tsx
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
import DangerPill from "$/component/pill/DangerPill";
|
||||||
|
import { render, screen } from "@testing-library/react";
|
||||||
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
|
|
||||||
|
const textContent = "Testing";
|
||||||
|
|
||||||
|
|
||||||
|
describe("Renders", () => {
|
||||||
|
it("Renders with defaults", () => {
|
||||||
|
render(<DangerPill>{textContent}</DangerPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-danger-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-danger", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-full");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("Rounding", () => {
|
||||||
|
it("Renders with no rounding", () => {
|
||||||
|
render(<DangerPill rounding="none">{textContent}</DangerPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-danger-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-danger", "text-white");
|
||||||
|
});
|
||||||
|
it("Renders with small rounding", () => {
|
||||||
|
render(<DangerPill rounding="sm">{textContent}</DangerPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-danger-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-danger", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-sm");
|
||||||
|
});
|
||||||
|
it("Renders with medium rounding", () => {
|
||||||
|
render(<DangerPill rounding="md">{textContent}</DangerPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-danger-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-danger", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded");
|
||||||
|
});
|
||||||
|
it("Renders with large rounding", () => {
|
||||||
|
render(<DangerPill rounding="lg">{textContent}</DangerPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-danger-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-danger", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-lg");
|
||||||
|
});
|
||||||
|
it("Renders with full rounding", () => {
|
||||||
|
render(<DangerPill rounding="full">{textContent}</DangerPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-danger-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-danger", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-full");
|
||||||
|
});
|
||||||
|
});
|
||||||
84
test/component/pill/DarkPill.test.tsx
Normal file
84
test/component/pill/DarkPill.test.tsx
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
import DarkPill from "$/component/pill/DarkPill";
|
||||||
|
import { render, screen } from "@testing-library/react";
|
||||||
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
|
|
||||||
|
const textContent = "Testing";
|
||||||
|
|
||||||
|
|
||||||
|
describe("Renders", () => {
|
||||||
|
it("Renders with defaults", () => {
|
||||||
|
render(<DarkPill>{textContent}</DarkPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-dark-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-dark", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-full");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("Rounding", () => {
|
||||||
|
it("Renders with no rounding", () => {
|
||||||
|
render(<DarkPill rounding="none">{textContent}</DarkPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-dark-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-dark", "text-white");
|
||||||
|
});
|
||||||
|
it("Renders with small rounding", () => {
|
||||||
|
render(<DarkPill rounding="sm">{textContent}</DarkPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-dark-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-dark", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-sm");
|
||||||
|
});
|
||||||
|
it("Renders with medium rounding", () => {
|
||||||
|
render(<DarkPill rounding="md">{textContent}</DarkPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-dark-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-dark", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded");
|
||||||
|
});
|
||||||
|
it("Renders with large rounding", () => {
|
||||||
|
render(<DarkPill rounding="lg">{textContent}</DarkPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-dark-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-dark", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-lg");
|
||||||
|
});
|
||||||
|
it("Renders with full rounding", () => {
|
||||||
|
render(<DarkPill rounding="full">{textContent}</DarkPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-dark-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-dark", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-full");
|
||||||
|
});
|
||||||
|
});
|
||||||
84
test/component/pill/InfoPill.test.tsx
Normal file
84
test/component/pill/InfoPill.test.tsx
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
import InfoPill from "$/component/pill/InfoPill";
|
||||||
|
import { render, screen } from "@testing-library/react";
|
||||||
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
|
|
||||||
|
const textContent = "Testing";
|
||||||
|
|
||||||
|
|
||||||
|
describe("Renders", () => {
|
||||||
|
it("Renders with defaults", () => {
|
||||||
|
render(<InfoPill>{textContent}</InfoPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-info-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-info", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-full");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("Rounding", () => {
|
||||||
|
it("Renders with no rounding", () => {
|
||||||
|
render(<InfoPill rounding="none">{textContent}</InfoPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-info-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-info", "text-black");
|
||||||
|
});
|
||||||
|
it("Renders with small rounding", () => {
|
||||||
|
render(<InfoPill rounding="sm">{textContent}</InfoPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-info-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-info", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-sm");
|
||||||
|
});
|
||||||
|
it("Renders with medium rounding", () => {
|
||||||
|
render(<InfoPill rounding="md">{textContent}</InfoPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-info-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-info", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded");
|
||||||
|
});
|
||||||
|
it("Renders with large rounding", () => {
|
||||||
|
render(<InfoPill rounding="lg">{textContent}</InfoPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-info-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-info", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-lg");
|
||||||
|
});
|
||||||
|
it("Renders with full rounding", () => {
|
||||||
|
render(<InfoPill rounding="full">{textContent}</InfoPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-info-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-info", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-full");
|
||||||
|
});
|
||||||
|
});
|
||||||
84
test/component/pill/LightPill.test.tsx
Normal file
84
test/component/pill/LightPill.test.tsx
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
import LightPill from "$/component/pill/LightPill";
|
||||||
|
import { render, screen } from "@testing-library/react";
|
||||||
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
|
|
||||||
|
const textContent = "Testing";
|
||||||
|
|
||||||
|
|
||||||
|
describe("Renders", () => {
|
||||||
|
it("Renders with defaults", () => {
|
||||||
|
render(<LightPill>{textContent}</LightPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-light-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-light", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-full");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("Rounding", () => {
|
||||||
|
it("Renders with no rounding", () => {
|
||||||
|
render(<LightPill rounding="none">{textContent}</LightPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-light-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-light", "text-black");
|
||||||
|
});
|
||||||
|
it("Renders with small rounding", () => {
|
||||||
|
render(<LightPill rounding="sm">{textContent}</LightPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-light-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-light", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-sm");
|
||||||
|
});
|
||||||
|
it("Renders with medium rounding", () => {
|
||||||
|
render(<LightPill rounding="md">{textContent}</LightPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-light-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-light", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded");
|
||||||
|
});
|
||||||
|
it("Renders with large rounding", () => {
|
||||||
|
render(<LightPill rounding="lg">{textContent}</LightPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-light-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-light", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-lg");
|
||||||
|
});
|
||||||
|
it("Renders with full rounding", () => {
|
||||||
|
render(<LightPill rounding="full">{textContent}</LightPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-light-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-light", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-full");
|
||||||
|
});
|
||||||
|
});
|
||||||
84
test/component/pill/MoltenPill.test.tsx
Normal file
84
test/component/pill/MoltenPill.test.tsx
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
import MoltenPill from "$/component/pill/MoltenPill";
|
||||||
|
import { render, screen } from "@testing-library/react";
|
||||||
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
|
|
||||||
|
const textContent = "Testing";
|
||||||
|
|
||||||
|
|
||||||
|
describe("Renders", () => {
|
||||||
|
it("Renders with defaults", () => {
|
||||||
|
render(<MoltenPill>{textContent}</MoltenPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-molten-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-molten", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-full");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("Rounding", () => {
|
||||||
|
it("Renders with no rounding", () => {
|
||||||
|
render(<MoltenPill rounding="none">{textContent}</MoltenPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-molten-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-molten", "text-black");
|
||||||
|
});
|
||||||
|
it("Renders with small rounding", () => {
|
||||||
|
render(<MoltenPill rounding="sm">{textContent}</MoltenPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-molten-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-molten", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-sm");
|
||||||
|
});
|
||||||
|
it("Renders with medium rounding", () => {
|
||||||
|
render(<MoltenPill rounding="md">{textContent}</MoltenPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-molten-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-molten", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded");
|
||||||
|
});
|
||||||
|
it("Renders with large rounding", () => {
|
||||||
|
render(<MoltenPill rounding="lg">{textContent}</MoltenPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-molten-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-molten", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-lg");
|
||||||
|
});
|
||||||
|
it("Renders with full rounding", () => {
|
||||||
|
render(<MoltenPill rounding="full">{textContent}</MoltenPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-molten-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-molten", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-full");
|
||||||
|
});
|
||||||
|
});
|
||||||
78
test/component/pill/Pill.test.tsx
Normal file
78
test/component/pill/Pill.test.tsx
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
import Pill from "$/component/pill/Pill";
|
||||||
|
import { render, screen } from "@testing-library/react";
|
||||||
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
|
|
||||||
|
const textContent = "Testing";
|
||||||
|
|
||||||
|
|
||||||
|
describe("Renders", () => {
|
||||||
|
it("Renders with defaults", () => {
|
||||||
|
render(<Pill>{textContent}</Pill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-full");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("Rounding", () => {
|
||||||
|
it("Renders with no rounding", () => {
|
||||||
|
render(<Pill rounding="none">{textContent}</Pill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
});
|
||||||
|
it("Renders with small rounding", () => {
|
||||||
|
render(<Pill rounding="sm">{textContent}</Pill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-sm");
|
||||||
|
});
|
||||||
|
it("Renders with medium rounding", () => {
|
||||||
|
render(<Pill rounding="md">{textContent}</Pill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("rounded");
|
||||||
|
});
|
||||||
|
it("Renders with large rounding", () => {
|
||||||
|
render(<Pill rounding="lg">{textContent}</Pill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-lg");
|
||||||
|
});
|
||||||
|
it("Renders with full rounding", () => {
|
||||||
|
render(<Pill rounding="full">{textContent}</Pill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-full");
|
||||||
|
});
|
||||||
|
});
|
||||||
84
test/component/pill/PrimaryPill.test.tsx
Normal file
84
test/component/pill/PrimaryPill.test.tsx
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
import PrimaryPill from "$/component/pill/PrimaryPill";
|
||||||
|
import { render, screen } from "@testing-library/react";
|
||||||
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
|
|
||||||
|
const textContent = "Testing";
|
||||||
|
|
||||||
|
|
||||||
|
describe("Renders", () => {
|
||||||
|
it("Renders with defaults", () => {
|
||||||
|
render(<PrimaryPill>{textContent}</PrimaryPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-primary-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-primary", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-full");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("Rounding", () => {
|
||||||
|
it("Renders with no rounding", () => {
|
||||||
|
render(<PrimaryPill rounding="none">{textContent}</PrimaryPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-primary-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-primary", "text-white");
|
||||||
|
});
|
||||||
|
it("Renders with small rounding", () => {
|
||||||
|
render(<PrimaryPill rounding="sm">{textContent}</PrimaryPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-primary-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-primary", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-sm");
|
||||||
|
});
|
||||||
|
it("Renders with medium rounding", () => {
|
||||||
|
render(<PrimaryPill rounding="md">{textContent}</PrimaryPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-primary-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-primary", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded");
|
||||||
|
});
|
||||||
|
it("Renders with large rounding", () => {
|
||||||
|
render(<PrimaryPill rounding="lg">{textContent}</PrimaryPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-primary-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-primary", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-lg");
|
||||||
|
});
|
||||||
|
it("Renders with full rounding", () => {
|
||||||
|
render(<PrimaryPill rounding="full">{textContent}</PrimaryPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-primary-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-primary", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-full");
|
||||||
|
});
|
||||||
|
});
|
||||||
84
test/component/pill/SecondaryPill.test.tsx
Normal file
84
test/component/pill/SecondaryPill.test.tsx
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
import SecondaryPill from "$/component/pill/SecondaryPill";
|
||||||
|
import { render, screen } from "@testing-library/react";
|
||||||
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
|
|
||||||
|
const textContent = "Testing";
|
||||||
|
|
||||||
|
|
||||||
|
describe("Renders", () => {
|
||||||
|
it("Renders with defaults", () => {
|
||||||
|
render(<SecondaryPill>{textContent}</SecondaryPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-secondary-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-secondary", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-full");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("Rounding", () => {
|
||||||
|
it("Renders with no rounding", () => {
|
||||||
|
render(<SecondaryPill rounding="none">{textContent}</SecondaryPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-secondary-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-secondary", "text-white");
|
||||||
|
});
|
||||||
|
it("Renders with small rounding", () => {
|
||||||
|
render(<SecondaryPill rounding="sm">{textContent}</SecondaryPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-secondary-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-secondary", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-sm");
|
||||||
|
});
|
||||||
|
it("Renders with medium rounding", () => {
|
||||||
|
render(<SecondaryPill rounding="md">{textContent}</SecondaryPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-secondary-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-secondary", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded");
|
||||||
|
});
|
||||||
|
it("Renders with large rounding", () => {
|
||||||
|
render(<SecondaryPill rounding="lg">{textContent}</SecondaryPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-secondary-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-secondary", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-lg");
|
||||||
|
});
|
||||||
|
it("Renders with full rounding", () => {
|
||||||
|
render(<SecondaryPill rounding="full">{textContent}</SecondaryPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-secondary-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-secondary", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-full");
|
||||||
|
});
|
||||||
|
});
|
||||||
84
test/component/pill/SuccessPill.test.tsx
Normal file
84
test/component/pill/SuccessPill.test.tsx
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
import SuccessPill from "$/component/pill/SuccessPill";
|
||||||
|
import { render, screen } from "@testing-library/react";
|
||||||
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
|
|
||||||
|
const textContent = "Testing";
|
||||||
|
|
||||||
|
|
||||||
|
describe("Renders", () => {
|
||||||
|
it("Renders with defaults", () => {
|
||||||
|
render(<SuccessPill>{textContent}</SuccessPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-success-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-success", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-full");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("Rounding", () => {
|
||||||
|
it("Renders with no rounding", () => {
|
||||||
|
render(<SuccessPill rounding="none">{textContent}</SuccessPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-success-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-success", "text-black");
|
||||||
|
});
|
||||||
|
it("Renders with small rounding", () => {
|
||||||
|
render(<SuccessPill rounding="sm">{textContent}</SuccessPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-success-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-success", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-sm");
|
||||||
|
});
|
||||||
|
it("Renders with medium rounding", () => {
|
||||||
|
render(<SuccessPill rounding="md">{textContent}</SuccessPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-success-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-success", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded");
|
||||||
|
});
|
||||||
|
it("Renders with large rounding", () => {
|
||||||
|
render(<SuccessPill rounding="lg">{textContent}</SuccessPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-success-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-success", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-lg");
|
||||||
|
});
|
||||||
|
it("Renders with full rounding", () => {
|
||||||
|
render(<SuccessPill rounding="full">{textContent}</SuccessPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-success-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-success", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-full");
|
||||||
|
});
|
||||||
|
});
|
||||||
84
test/component/pill/TertiaryPill.test.tsx
Normal file
84
test/component/pill/TertiaryPill.test.tsx
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
import TertiaryPill from "$/component/pill/TertiaryPill";
|
||||||
|
import { render, screen } from "@testing-library/react";
|
||||||
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
|
|
||||||
|
const textContent = "Testing";
|
||||||
|
|
||||||
|
|
||||||
|
describe("Renders", () => {
|
||||||
|
it("Renders with defaults", () => {
|
||||||
|
render(<TertiaryPill>{textContent}</TertiaryPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-tertiary-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-tertiary", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-full");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("Rounding", () => {
|
||||||
|
it("Renders with no rounding", () => {
|
||||||
|
render(<TertiaryPill rounding="none">{textContent}</TertiaryPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-tertiary-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-tertiary", "text-white");
|
||||||
|
});
|
||||||
|
it("Renders with small rounding", () => {
|
||||||
|
render(<TertiaryPill rounding="sm">{textContent}</TertiaryPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-tertiary-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-tertiary", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-sm");
|
||||||
|
});
|
||||||
|
it("Renders with medium rounding", () => {
|
||||||
|
render(<TertiaryPill rounding="md">{textContent}</TertiaryPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-tertiary-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-tertiary", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded");
|
||||||
|
});
|
||||||
|
it("Renders with large rounding", () => {
|
||||||
|
render(<TertiaryPill rounding="lg">{textContent}</TertiaryPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-tertiary-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-tertiary", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-lg");
|
||||||
|
});
|
||||||
|
it("Renders with full rounding", () => {
|
||||||
|
render(<TertiaryPill rounding="full">{textContent}</TertiaryPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-tertiary-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-tertiary", "text-white");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-full");
|
||||||
|
});
|
||||||
|
});
|
||||||
84
test/component/pill/WarningPill.test.tsx
Normal file
84
test/component/pill/WarningPill.test.tsx
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
import WarningPill from "$/component/pill/WarningPill";
|
||||||
|
import { render, screen } from "@testing-library/react";
|
||||||
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
|
|
||||||
|
const textContent = "Testing";
|
||||||
|
|
||||||
|
|
||||||
|
describe("Renders", () => {
|
||||||
|
it("Renders with defaults", () => {
|
||||||
|
render(<WarningPill>{textContent}</WarningPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-warning-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-warning", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-full");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("Rounding", () => {
|
||||||
|
it("Renders with no rounding", () => {
|
||||||
|
render(<WarningPill rounding="none">{textContent}</WarningPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-warning-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-warning", "text-black");
|
||||||
|
});
|
||||||
|
it("Renders with small rounding", () => {
|
||||||
|
render(<WarningPill rounding="sm">{textContent}</WarningPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-warning-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-warning", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-sm");
|
||||||
|
});
|
||||||
|
it("Renders with medium rounding", () => {
|
||||||
|
render(<WarningPill rounding="md">{textContent}</WarningPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-warning-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-warning", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded");
|
||||||
|
});
|
||||||
|
it("Renders with large rounding", () => {
|
||||||
|
render(<WarningPill rounding="lg">{textContent}</WarningPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-warning-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-warning", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-lg");
|
||||||
|
});
|
||||||
|
it("Renders with full rounding", () => {
|
||||||
|
render(<WarningPill rounding="full">{textContent}</WarningPill>);
|
||||||
|
|
||||||
|
//Make sure the pill div is present
|
||||||
|
const pillDiv = screen.getByTestId("mattrixwv-warning-pill");
|
||||||
|
expect(pillDiv).toBeInTheDocument();
|
||||||
|
expect(pillDiv).toHaveTextContent(textContent);
|
||||||
|
//Check for the default classes
|
||||||
|
expect(pillDiv).toHaveClass("px-2", "text-sm", "whitespace-nowrap");
|
||||||
|
expect(pillDiv).toHaveClass("bg-warning", "text-black");
|
||||||
|
expect(pillDiv).toHaveClass("rounded-full");
|
||||||
|
});
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user