diff options
| author | Acid Chicken (硫酸鶏) <root@acid-chicken.com> | 2023-04-01 13:47:59 +0900 |
|---|---|---|
| committer | Acid Chicken (硫酸鶏) <root@acid-chicken.com> | 2023-04-01 13:47:59 +0900 |
| commit | c6d12c21db25104a1e9073be68cc3da0bee2492f (patch) | |
| tree | 3fe2b01252eeced7a9fe0cc6ca35cc86b3642bba /packages/frontend/src/components/global | |
| parent | Merge branch 'develop' of https://github.com/misskey-dev/misskey into storybook (diff) | |
| download | misskey-c6d12c21db25104a1e9073be68cc3da0bee2492f.tar.gz misskey-c6d12c21db25104a1e9073be68cc3da0bee2492f.tar.bz2 misskey-c6d12c21db25104a1e9073be68cc3da0bee2492f.zip | |
build(#10336): write stories for `MkMisskeyFlavoredMarkdown`
Diffstat (limited to 'packages/frontend/src/components/global')
| -rw-r--r-- | packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.stories.impl.ts | 28 | ||||
| -rw-r--r-- | packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.stories.ts | 31 |
2 files changed, 53 insertions, 6 deletions
diff --git a/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.stories.impl.ts b/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.stories.impl.ts index c594b790c3..720aaa1770 100644 --- a/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.stories.impl.ts +++ b/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.stories.impl.ts @@ -1,6 +1,8 @@ /* eslint-disable @typescript-eslint/explicit-function-return-type */ import { StoryObj } from '@storybook/vue3'; import MkMisskeyFlavoredMarkdown from './MkMisskeyFlavoredMarkdown.vue'; +import { within } from '@storybook/testing-library'; +import { expect } from '@storybook/jest'; export const Default = { render(args) { return { @@ -22,8 +24,28 @@ export const Default = { template: '<MkMisskeyFlavoredMarkdown v-bind="props" />', }; }, + async play({ canvasElement, args }) { + const canvas = within(canvasElement); + if (args.plain) { + const aiHelloMiskist = canvas.getByText('@ai *Hello*, #Miskist!'); + await expect(aiHelloMiskist).toBeInTheDocument(); + } else { + const ai = canvas.getByText('@ai'); + await expect(ai).toBeInTheDocument(); + await expect(ai.closest('a')).toHaveAttribute('href', '/@ai'); + const hello = canvas.getByText('Hello'); + await expect(hello).toBeInTheDocument(); + await expect(hello.style.fontStyle).toBe('oblique'); + const miskist = canvas.getByText('#Miskist'); + await expect(miskist).toBeInTheDocument(); + await expect(miskist).toHaveAttribute('href', args.isNote ?? true ? '/tags/Miskist' : '/user-tags/Miskist'); + } + const heart = canvas.getByAltText('❤'); + await expect(heart).toBeInTheDocument(); + await expect(heart).toHaveAttribute('src', '/twemoji/2764.svg'); + }, args: { - text: 'Hello, world!', + text: '@ai *Hello*, #Miskist! ❤', }, parameters: { layout: 'centered', @@ -43,10 +65,10 @@ export const Nowrap = { nowrap: true, }, }; -export const IsNote = { +export const IsNotNote = { ...Default, args: { ...Default.args, - isNote: true, + isNote: false, }, }; diff --git a/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.stories.ts b/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.stories.ts index 7103f07ae7..b39951fcc8 100644 --- a/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.stories.ts +++ b/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.stories.ts @@ -9,6 +9,8 @@ export default meta; /* eslint-disable @typescript-eslint/explicit-function-return-type */ import { StoryObj } from '@storybook/vue3'; import MkMisskeyFlavoredMarkdown from './MkMisskeyFlavoredMarkdown.vue'; +import { within } from '@storybook/testing-library'; +import { expect } from '@storybook/jest'; export const Default = { render(args) { return { @@ -30,8 +32,31 @@ export const Default = { template: '<MkMisskeyFlavoredMarkdown v-bind="props" />', }; }, + async play({ canvasElement, args }) { + const canvas = within(canvasElement); + if (args.plain) { + const aiHelloMiskist = canvas.getByText('@ai *Hello*, #Miskist!'); + await expect(aiHelloMiskist).toBeInTheDocument(); + } else { + const ai = canvas.getByText('@ai'); + await expect(ai).toBeInTheDocument(); + await expect(ai.closest('a')).toHaveAttribute('href', '/@ai'); + const hello = canvas.getByText('Hello'); + await expect(hello).toBeInTheDocument(); + await expect(hello.style.fontStyle).toBe('oblique'); + const miskist = canvas.getByText('#Miskist'); + await expect(miskist).toBeInTheDocument(); + await expect(miskist).toHaveAttribute( + 'href', + args.isNote ?? true ? '/tags/Miskist' : '/user-tags/Miskist' + ); + } + const heart = canvas.getByAltText('❤'); + await expect(heart).toBeInTheDocument(); + await expect(heart).toHaveAttribute('src', '/twemoji/2764.svg'); + }, args: { - text: 'Hello, world!', + text: '@ai *Hello*, #Miskist! ❤', }, parameters: { layout: 'centered', @@ -51,10 +76,10 @@ export const Nowrap = { nowrap: true, }, }; -export const IsNote = { +export const IsNotNote = { ...Default, args: { ...Default.args, - isNote: true, + isNote: false, }, }; |