be727a6d9c
Turns out most Storybook Addons expect React and won't be installable in a Svelte(Kit) project. But I could figure out how to use the play functions. So I have an example for it. Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
53 lines
1.8 KiB
TypeScript
53 lines
1.8 KiB
TypeScript
/* Stories for Profile page.
|
|
* Copyright (C) 2024 André Jaenisch
|
|
* SPDX-FileCopyrightText: 2024 André Jaenisch
|
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
import type { Meta, StoryObj } from '@storybook/svelte';
|
|
import { within, userEvent, expect, fn } from '@storybook/test';
|
|
|
|
import Profile from '$lib/components/pages/Profile.svelte';
|
|
|
|
const meta = {
|
|
title: 'Pages/Profile',
|
|
component: Profile,
|
|
tags: ['autodocs'],
|
|
argTypes: {
|
|
data: { controls: 'object' }
|
|
}
|
|
} satisfies Meta<Profile>;
|
|
|
|
export default meta;
|
|
type Story = StoryObj<typeof meta>;
|
|
|
|
export const Plain: Story = {
|
|
args: {
|
|
data: {
|
|
user: {
|
|
avatar: '',
|
|
created_at: new Date(),
|
|
created_at_formatted: (function () {
|
|
const locale = 'en-US';
|
|
return new Intl.DateTimeFormat(locale).format(new Date());
|
|
})(),
|
|
created_with: 'Anvil',
|
|
display_name: 'Jane Doe',
|
|
instance: 'domain.example',
|
|
pronoun: 'she/her',
|
|
username: 'jane_doe'
|
|
}
|
|
}
|
|
},
|
|
play: async ({ args, canvasElement }) => {
|
|
const canvas = within(canvasElement);
|
|
await userEvent.click(canvas.getByRole('button', { name: 'Menu' }));
|
|
expect(true).toBe(true);
|
|
}
|
|
};
|