forked from
rocksky.app/rocksky
A decentralized music tracking and discovery platform built on AT Protocol 馃幍
1import type { Meta, StoryObj } from '@storybook/react';
2import { expect, userEvent, within } from '@storybook/test';
3
4import { Page } from './Page';
5
6const meta = {
7 title: 'Example/Page',
8 component: Page,
9 parameters: {
10 // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout
11 layout: 'fullscreen',
12 },
13} satisfies Meta<typeof Page>;
14
15export default meta;
16type Story = StoryObj<typeof meta>;
17
18export const LoggedOut: Story = {};
19
20// More on component testing: https://storybook.js.org/docs/writing-tests/component-testing
21export const LoggedIn: Story = {
22 play: async ({ canvasElement }) => {
23 const canvas = within(canvasElement);
24 const loginButton = canvas.getByRole('button', { name: /Log in/i });
25 await expect(loginButton).toBeInTheDocument();
26 await userEvent.click(loginButton);
27 await expect(loginButton).not.toBeInTheDocument();
28
29 const logoutButton = canvas.getByRole('button', { name: /Log out/i });
30 await expect(logoutButton).toBeInTheDocument();
31 },
32};