mirror of
https://github.com/storybookjs/storybook.git
synced 2025-04-08 03:11:49 +08:00
59 lines
2.0 KiB
TypeScript
59 lines
2.0 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
import process from 'process';
|
|
import { SbPage } from './util';
|
|
|
|
const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001';
|
|
|
|
test.describe('addon-backgrounds', () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
await page.goto(storybookUrl);
|
|
await new SbPage(page).waitUntilLoaded();
|
|
});
|
|
|
|
const backgroundToolbarSelector = '[title="Change the background of the preview"]';
|
|
const gridToolbarSelector = '[title="Apply a grid to the preview"]';
|
|
|
|
test('should have a dark background', async ({ page }) => {
|
|
const sbPage = new SbPage(page);
|
|
|
|
await sbPage.navigateToStory('example/button', 'primary');
|
|
await sbPage.selectToolbar(backgroundToolbarSelector, '#list-item-dark');
|
|
|
|
await expect(sbPage.getCanvasBodyElement()).toHaveCSS('background-color', 'rgb(51, 51, 51)');
|
|
});
|
|
|
|
test('should apply a grid', async ({ page }) => {
|
|
const sbPage = new SbPage(page);
|
|
|
|
await sbPage.navigateToStory('example/button', 'primary');
|
|
await sbPage.selectToolbar(gridToolbarSelector);
|
|
|
|
await expect(sbPage.getCanvasBodyElement()).toHaveCSS('background-image', /linear-gradient/);
|
|
});
|
|
|
|
test('button should appear for story pages', async ({ page }) => {
|
|
const sbPage = new SbPage(page);
|
|
|
|
await sbPage.navigateToStory('example/button', 'primary');
|
|
await expect(sbPage.page.locator(backgroundToolbarSelector)).toBeVisible();
|
|
});
|
|
|
|
test('button should appear for attached docs pages', async ({ page }) => {
|
|
const sbPage = new SbPage(page);
|
|
|
|
await sbPage.navigateToStory('example/button', 'docs');
|
|
await expect(sbPage.page.locator(backgroundToolbarSelector)).toBeVisible();
|
|
});
|
|
|
|
test('button should appear for unattached docs pages', async ({ page }) => {
|
|
const sbPage = new SbPage(page);
|
|
|
|
// We start on the introduction page by default.
|
|
await sbPage.page.waitForURL((url) =>
|
|
url.search.includes(`path=/docs/example-introduction--docs`)
|
|
);
|
|
|
|
await expect(sbPage.page.locator(backgroundToolbarSelector)).toBeVisible();
|
|
});
|
|
});
|