mirror of
https://github.com/storybookjs/storybook.git
synced 2025-04-04 16:01:06 +08:00
98 lines
2.4 KiB
Plaintext
98 lines
2.4 KiB
Plaintext
```js
|
|
// YourPage.stories.js
|
|
|
|
import { rest } from 'msw';
|
|
|
|
import DocumentScreen from './YourPage.vue';
|
|
|
|
export default {
|
|
/* 👇 The title prop is optional.
|
|
* See https://storybook.js.org/docs/7.0/vue/configure/overview#configure-story-loading
|
|
* to learn how to generate automatic titles
|
|
*/
|
|
title: 'DocumentScreen',
|
|
component: DocumentScreen,
|
|
};
|
|
|
|
//👇The mocked data that will be used in the story
|
|
const TestData = {
|
|
user: {
|
|
userID: 1,
|
|
name: 'Someone',
|
|
},
|
|
document: {
|
|
id: 1,
|
|
userID: 1,
|
|
title: 'Something',
|
|
brief: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
|
|
status: 'approved',
|
|
},
|
|
subdocuments: [
|
|
{
|
|
id: 1,
|
|
userID: 1,
|
|
title: 'Something',
|
|
content:
|
|
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
|
|
status: 'approved',
|
|
},
|
|
{
|
|
id: 2,
|
|
userID: 1,
|
|
title: 'Something else',
|
|
content:
|
|
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
|
|
status: 'awaiting review',
|
|
},
|
|
{
|
|
id: 3,
|
|
userID: 2,
|
|
title: 'Another document',
|
|
content:
|
|
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
|
|
status: 'approved',
|
|
},
|
|
{
|
|
id: 4,
|
|
userID: 2,
|
|
title: 'Something',
|
|
content:
|
|
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
|
|
status: 'approved',
|
|
},
|
|
],
|
|
};
|
|
|
|
/*
|
|
*👇 Render functions are a framework specific feature to allow you control on how the component renders.
|
|
* See https://storybook.js.org/docs/7.0/vue/api/csf
|
|
* to learn how to use render functions.
|
|
*/
|
|
export const MockedSuccess = {
|
|
render: () => ({
|
|
components: { DocumentScreen },
|
|
template: '<DocumentScreen />',
|
|
}),
|
|
parameters: {
|
|
msw: [
|
|
rest.get('https://your-restful-endpoint/', (_req, res, ctx) => {
|
|
return res(ctx.json(TestData));
|
|
}),
|
|
],
|
|
},
|
|
};
|
|
|
|
export const MockedError = {
|
|
render: () => ({
|
|
components: { DocumentScreen },
|
|
template: '<DocumentScreen />',
|
|
}),
|
|
parameters: {
|
|
msw: [
|
|
rest.get('https://your-restful-endpoint/', (_req, res, ctx) => {
|
|
return res(ctx.delay(800), ctx.status(403));
|
|
}),
|
|
],
|
|
},
|
|
};
|
|
``` |