test: add /@:acct
stories (#10517)
* test: add `/@:acct` stories * test: add mocks
This commit is contained in:
parent
59d0d507d5
commit
2b19e1f732
3 changed files with 76 additions and 0 deletions
|
@ -77,6 +77,7 @@ export function userDetailed(id = 'someuserid', username = 'miskist', host = 'mi
|
||||||
createdAt: '2016-12-28T22:49:51.000Z',
|
createdAt: '2016-12-28T22:49:51.000Z',
|
||||||
description: 'I am a cool user!',
|
description: 'I am a cool user!',
|
||||||
ffVisibility: 'public',
|
ffVisibility: 'public',
|
||||||
|
roles: [],
|
||||||
fields: [
|
fields: [
|
||||||
{
|
{
|
||||||
name: 'Website',
|
name: 'Website',
|
||||||
|
|
|
@ -398,6 +398,7 @@ function toStories(component: string): string {
|
||||||
Promise.all([
|
Promise.all([
|
||||||
glob('src/components/global/*.vue'),
|
glob('src/components/global/*.vue'),
|
||||||
glob('src/components/MkGalleryPostPreview.vue'),
|
glob('src/components/MkGalleryPostPreview.vue'),
|
||||||
|
glob('src/pages/user/home.vue'),
|
||||||
])
|
])
|
||||||
.then((globs) => globs.flat())
|
.then((globs) => globs.flat())
|
||||||
.then((components) => Promise.all(components.map((component) => {
|
.then((components) => Promise.all(components.map((component) => {
|
||||||
|
|
74
packages/frontend/src/pages/user/home.stories.impl.ts
Normal file
74
packages/frontend/src/pages/user/home.stories.impl.ts
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
/* eslint-disable @typescript-eslint/explicit-function-return-type */
|
||||||
|
import { StoryObj } from '@storybook/vue3';
|
||||||
|
import { rest } from 'msw';
|
||||||
|
import { userDetailed } from '../../../.storybook/fakes';
|
||||||
|
import { commonHandlers } from '../../../.storybook/mocks';
|
||||||
|
import home_ from './home.vue';
|
||||||
|
export const Default = {
|
||||||
|
render(args) {
|
||||||
|
return {
|
||||||
|
components: {
|
||||||
|
home_,
|
||||||
|
},
|
||||||
|
setup() {
|
||||||
|
return {
|
||||||
|
args,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
props() {
|
||||||
|
return {
|
||||||
|
...this.args,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
},
|
||||||
|
template: '<home_ v-bind="props" />',
|
||||||
|
};
|
||||||
|
},
|
||||||
|
args: {
|
||||||
|
user: userDetailed(),
|
||||||
|
disableNotes: false,
|
||||||
|
},
|
||||||
|
parameters: {
|
||||||
|
layout: 'fullscreen',
|
||||||
|
msw: {
|
||||||
|
handlers: [
|
||||||
|
...commonHandlers,
|
||||||
|
rest.post('/api/users/notes', (req, res, ctx) => {
|
||||||
|
return res(ctx.json([]));
|
||||||
|
}),
|
||||||
|
rest.get('/api/charts/user/notes', (req, res, ctx) => {
|
||||||
|
const length = Math.max(Math.min(parseInt(req.url.searchParams.get('limit') ?? '30', 10), 1), 300);
|
||||||
|
return res(ctx.json({
|
||||||
|
total: Array.from({ length }, () => 0),
|
||||||
|
inc: Array.from({ length }, () => 0),
|
||||||
|
dec: Array.from({ length }, () => 0),
|
||||||
|
diffs: {
|
||||||
|
normal: Array.from({ length }, () => 0),
|
||||||
|
reply: Array.from({ length }, () => 0),
|
||||||
|
renote: Array.from({ length }, () => 0),
|
||||||
|
withFile: Array.from({ length }, () => 0),
|
||||||
|
},
|
||||||
|
}));
|
||||||
|
}),
|
||||||
|
rest.get('/api/charts/user/pv', (req, res, ctx) => {
|
||||||
|
const length = Math.max(Math.min(parseInt(req.url.searchParams.get('limit') ?? '30', 10), 1), 300);
|
||||||
|
return res(ctx.json({
|
||||||
|
upv: {
|
||||||
|
user: Array.from({ length }, () => 0),
|
||||||
|
visitor: Array.from({ length }, () => 0),
|
||||||
|
},
|
||||||
|
pv: {
|
||||||
|
user: Array.from({ length }, () => 0),
|
||||||
|
visitor: Array.from({ length }, () => 0),
|
||||||
|
},
|
||||||
|
}));
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
},
|
||||||
|
chromatic: {
|
||||||
|
// `XActivity` is not compatible with Chromatic for now
|
||||||
|
disableSnapshot: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
} satisfies StoryObj<typeof home_>;
|
Loading…
Reference in a new issue