mirror of
https://github.com/storybookjs/storybook.git
synced 2025-04-08 11:11:53 +08:00
65 lines
2.7 KiB
Markdown
65 lines
2.7 KiB
Markdown
```js filename=".storybook/test-runner.js" renderer="common" language="js"
|
|
const { getStoryContext, waitForPageReady } = require('@storybook/test-runner');
|
|
|
|
module.exports = {
|
|
// Hook that is executed before the test runner starts running tests
|
|
setup() {
|
|
// Add your configuration here.
|
|
},
|
|
/* Hook to execute before a story is initially visited before being rendered in the browser.
|
|
* The page argument is the Playwright's page object for the story.
|
|
* The context argument is a Storybook object containing the story's id, title, and name.
|
|
*/
|
|
async preVisit(page, context) {
|
|
// Add your configuration here.
|
|
},
|
|
/* Hook to execute after a story is visited and fully rendered.
|
|
* The page argument is the Playwright's page object for the story
|
|
* The context argument is a Storybook object containing the story's id, title, and name.
|
|
*/
|
|
async postVisit(page, context) {
|
|
// Get the entire context of a story, including parameters, args, argTypes, etc.
|
|
const storyContext = await getStoryContext(page, context);
|
|
|
|
// This utility function is designed for image snapshot testing. It will wait for the page to be fully loaded, including all the async items (e.g., images, fonts, etc.).
|
|
await waitForPageReady(page);
|
|
|
|
// Add your configuration here.
|
|
},
|
|
};
|
|
```
|
|
|
|
```ts filename=".storybook/test-runner.ts" renderer="common" language="ts"
|
|
import type { TestRunnerConfig } from '@storybook/test-runner';
|
|
import { getStoryContext, waitForPageReady } from '@storybook/test-runner';
|
|
|
|
const config: TestRunnerConfig = {
|
|
// Hook that is executed before the test runner starts running tests
|
|
setup() {
|
|
// Add your configuration here.
|
|
},
|
|
/* Hook to execute before a story is initially visited before being rendered in the browser.
|
|
* The page argument is the Playwright's page object for the story.
|
|
* The context argument is a Storybook object containing the story's id, title, and name.
|
|
*/
|
|
async preVisit(page, context) {
|
|
// Add your configuration here.
|
|
},
|
|
/* Hook to execute after a story is visited and fully rendered.
|
|
* The page argument is the Playwright's page object for the story
|
|
* The context argument is a Storybook object containing the story's id, title, and name.
|
|
*/
|
|
async postVisit(page, context) {
|
|
// Get the entire context of a story, including parameters, args, argTypes, etc.
|
|
const storyContext = await getStoryContext(page, context);
|
|
|
|
// This utility function is designed for image snapshot testing. It will wait for the page to be fully loaded, including all the async items (e.g., images, fonts, etc.).
|
|
await waitForPageReady(page);
|
|
|
|
// Add your configuration here.
|
|
},
|
|
};
|
|
|
|
export default config;
|
|
```
|