import type { Meta, StoryObj } from "@storybook/vue3-vite"; import { expect, within } from "storybook/test"; import DurationBar from "./DurationBar.vue"; const meta: Meta = { title: "Flow/DurationBar", component: DurationBar, tags: ["autodocs"], }; export default meta; type Story = StoryObj; export const UnderSla: Story = { args: { ms: 12.4, max: 200, warnMs: 50, dangerMs: 100 }, play: async ({ canvasElement }) => { const c = within(canvasElement); await expect(c.getByTestId("duration-value")).toHaveTextContent("12.4ms"); await expect(c.getByTestId("duration-bar")).toHaveAttribute("data-tone", "ok"); }, }; export const Warn: Story = { args: { ms: 70, max: 200, warnMs: 50, dangerMs: 100 }, play: async ({ canvasElement }) => { await expect(within(canvasElement).getByTestId("duration-bar")).toHaveAttribute( "data-tone", "warn", ); }, }; export const Danger: Story = { args: { ms: 160, max: 200, warnMs: 50, dangerMs: 100 }, play: async ({ canvasElement }) => { await expect(within(canvasElement).getByTestId("duration-bar")).toHaveAttribute( "data-tone", "danger", ); }, }; export const Scale: Story = { render: () => ({ components: { DurationBar }, template: `
`, }), };