mirror of
https://github.com/storybookjs/storybook.git
synced 2025-04-07 21:51:48 +08:00
35 lines
982 B
JavaScript
35 lines
982 B
JavaScript
import { expect, userEvent, within } from 'storybook/test';
|
|
|
|
import MyPage from './Page.vue';
|
|
|
|
export default {
|
|
title: 'Example/Page',
|
|
component: MyPage,
|
|
parameters: {
|
|
// More on how to position stories at: https://storybook.js.org/docs/configure/story-layout
|
|
layout: 'fullscreen',
|
|
},
|
|
};
|
|
|
|
export const LoggedOut = {};
|
|
|
|
// More on component testing: https://storybook.js.org/docs/writing-tests/component-testing
|
|
export const LoggedIn = {
|
|
render: () => ({
|
|
components: {
|
|
MyPage,
|
|
},
|
|
template: '<my-page />',
|
|
}),
|
|
play: async ({ canvasElement }) => {
|
|
const canvas = within(canvasElement);
|
|
const loginButton = canvas.getByRole('button', { name: /Log in/i });
|
|
await expect(loginButton).toBeInTheDocument();
|
|
await userEvent.click(loginButton);
|
|
await expect(loginButton).not.toBeInTheDocument();
|
|
|
|
const logoutButton = canvas.getByRole('button', { name: /Log out/i });
|
|
await expect(logoutButton).toBeInTheDocument();
|
|
},
|
|
};
|