Files
web/packages/design-system/lib/components/BackToTopButton/BackToTopButton.stories.tsx
Rasmus Langvad d0546926a9 Merged in fix/3697-prettier-configs (pull request #3396)
fix(SW-3691): Setup one prettier config for whole repo

* Setup prettierrc in root and remove other configs


Approved-by: Joakim Jäderberg
Approved-by: Linus Flood
2026-01-07 12:45:50 +00:00

101 lines
2.3 KiB
TypeScript

import type { Meta, StoryObj } from "@storybook/nextjs-vite"
import { expect, fn } from "storybook/test"
import { BackToTopButton } from "."
import { config as backToTopButtonConfig } from "./variants"
const meta: Meta<typeof BackToTopButton> = {
title: "Patterns/BackToTopButton",
component: BackToTopButton,
argTypes: {
onPress: {
table: {
disable: true,
},
},
position: {
control: "select",
options: Object.keys(backToTopButtonConfig.variants.position),
table: {
type: {
summary: "string",
detail: Object.keys(backToTopButtonConfig.variants.position).join(
" | "
),
},
defaultValue: {
summary: backToTopButtonConfig.defaultVariants.position,
},
},
},
label: {
control: "text",
},
},
}
export default meta
type Story = StoryObj<typeof BackToTopButton>
const globalStoryPropsInverted = {
backgrounds: { value: "scandicPrimaryDark" },
}
export const Default: Story = {
args: {
onPress: fn(),
label: "Back to top",
},
play: async ({ canvas, userEvent, args }) => {
await userEvent.click(await canvas.findByRole("button"))
expect(args.onPress).toHaveBeenCalledTimes(1)
},
}
export const PositionLeft: Story = {
args: {
...Default.args,
position: "left",
},
play: async ({ canvas, userEvent, args }) => {
await userEvent.click(await canvas.findByRole("button"))
expect(args.onPress).toHaveBeenCalledTimes(1)
},
}
export const PositionCenter: Story = {
args: {
...Default.args,
position: "center",
},
play: async ({ canvas, userEvent, args }) => {
await userEvent.click(await canvas.findByRole("button"))
expect(args.onPress).toHaveBeenCalledTimes(1)
},
}
export const PositionRight: Story = {
args: {
...Default.args,
position: "right",
},
play: async ({ canvas, userEvent, args }) => {
await userEvent.click(await canvas.findByRole("button"))
expect(args.onPress).toHaveBeenCalledTimes(1)
},
}
export const OnDarkBackground: Story = {
globals: globalStoryPropsInverted,
args: {
onPress: fn(),
label: "Back to top",
},
play: async ({ canvas, userEvent, args }) => {
await userEvent.click(await canvas.findByRole("button"))
expect(args.onPress).toHaveBeenCalledTimes(1)
},
}