diff options
| author | zyoshoka <107108195+zyoshoka@users.noreply.github.com> | 2024-07-30 19:48:16 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-30 19:48:16 +0900 |
| commit | c7354c5e306c80d25db838ff64d4f3d26a47bd7f (patch) | |
| tree | ad8ccd647431a0d04637ebe985e2677b81b55080 /packages/frontend/src/components/MkEmojiPicker.stories.impl.ts | |
| parent | feat: media silence (#13842) (diff) | |
| download | misskey-c7354c5e306c80d25db838ff64d4f3d26a47bd7f.tar.gz misskey-c7354c5e306c80d25db838ff64d4f3d26a47bd7f.tar.bz2 misskey-c7354c5e306c80d25db838ff64d4f3d26a47bd7f.zip | |
test(#10336): add `components/Mk[D-E].*` stories (#14118)
* test(storybook): add `components/Mk[D-E].*` stories
* fix: mock instance name
* fix: invalid `reactionAcceptance` value
* style: missing trailing commas
Diffstat (limited to 'packages/frontend/src/components/MkEmojiPicker.stories.impl.ts')
| -rw-r--r-- | packages/frontend/src/components/MkEmojiPicker.stories.impl.ts | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/packages/frontend/src/components/MkEmojiPicker.stories.impl.ts b/packages/frontend/src/components/MkEmojiPicker.stories.impl.ts new file mode 100644 index 0000000000..d38d8de808 --- /dev/null +++ b/packages/frontend/src/components/MkEmojiPicker.stories.impl.ts @@ -0,0 +1,54 @@ +/* + * SPDX-FileCopyrightText: syuilo and misskey-project + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { action } from '@storybook/addon-actions'; +import { expect, userEvent, waitFor, within } from '@storybook/test'; +import { StoryObj } from '@storybook/vue3'; +import { i18n } from '@/i18n.js'; +import MkEmojiPicker from './MkEmojiPicker.vue'; +export const Default = { + render(args) { + return { + components: { + MkEmojiPicker, + }, + setup() { + return { + args, + }; + }, + computed: { + props() { + return { + ...this.args, + }; + }, + events() { + return { + chosen: action('chosen'), + }; + }, + }, + template: '<MkEmojiPicker v-bind="props" v-on="events" />', + }; + }, + async play({ canvasElement }) { + const canvas = within(canvasElement); + const faceSection = canvas.getByText(/face/i); + await waitFor(() => userEvent.click(faceSection)); + const grinning = canvasElement.querySelector('[data-emoji="😀"]'); + await expect(grinning).toBeInTheDocument(); + if (grinning == null) throw new Error(); // NOTE: not called + await waitFor(() => userEvent.click(grinning)); + const recentUsedSection = canvas.getByText(new RegExp(i18n.ts.recentUsed)).parentElement; + await expect(recentUsedSection).toBeInTheDocument(); + if (recentUsedSection == null) throw new Error(); // NOTE: not called + await expect(within(recentUsedSection).getByAltText('😀')).toBeInTheDocument(); + await expect(within(recentUsedSection).queryByAltText('😬')).toEqual(null); + }, + parameters: { + layout: 'centered', + }, +} satisfies StoryObj<typeof MkEmojiPicker>; |