summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components/MkEmojiPicker.stories.impl.ts
diff options
context:
space:
mode:
authorzyoshoka <107108195+zyoshoka@users.noreply.github.com>2024-07-30 19:48:16 +0900
committerGitHub <noreply@github.com>2024-07-30 19:48:16 +0900
commitc7354c5e306c80d25db838ff64d4f3d26a47bd7f (patch)
treead8ccd647431a0d04637ebe985e2677b81b55080 /packages/frontend/src/components/MkEmojiPicker.stories.impl.ts
parentfeat: media silence (#13842) (diff)
downloadmisskey-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.ts54
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>;