Skip to content

[FEATURE] add json response to list action, now you can automate your tests#134

Open
Kanti wants to merge 1 commit intositegeist:masterfrom
andersundsehr:add-json-response-to-list-action
Open

[FEATURE] add json response to list action, now you can automate your tests#134
Kanti wants to merge 1 commit intositegeist:masterfrom
andersundsehr:add-json-response-to-list-action

Conversation

@Kanti
Copy link
Copy Markdown
Contributor

@Kanti Kanti commented Jun 16, 2025

You could now automate screenshot tests with e.g. playwright:

test-fluid_styleguide.spec.ts

import { expect, test } from '@playwright/test';

const response = await fetch(process.env.TEST_BASE_URL + '/fluid-styleguide/list', { headers: { Accept: 'application/json' } });
const stories = await response.json();

for (const story of stories) {
  console.log(`Story: ${story.identifier}`);
  for (const fixtureName in story.fixtures) {
    const variant = story.fixtures[fixtureName];
    test.describe(story.identifier, () => {
      test(fixtureName, {}, async ({ page }) => {
        const disallowedConsoleLogs: string[] = [];
        page.on('console', (message) => {
          if (message.text().startsWith('<Suspense>')) return; // ignore <Suspense> warning
          if (message.text().startsWith('[vite]')) return;
          disallowedConsoleLogs.push(`${message.type()}➡️ ${message.text()}`);
        });

        await page.goto(`/fluid-styleguide/component?component=${story.identifier}&fixture=${fixtureName}`);

        await expect(page.locator('body')).toMatchAriaSnapshot();
        await expect(page.locator('body')).toHaveScreenshot();

        expect(disallowedConsoleLogs).toEqual([]);
      });
    });
  }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant