test(thumbnail): migrate to playwright (#26022)

This commit is contained in:
Liam DeBeasi
2022-09-27 11:20:56 -05:00
committed by GitHub
parent 54f99bd5b3
commit 419b1cb461
20 changed files with 29 additions and 62 deletions

View File

@ -1,10 +0,0 @@
import { newE2EPage } from '@stencil/core/testing';
test('thumbnail: basic', async () => {
const page = await newE2EPage({
url: '/src/components/thumbnail/test/basic',
});
const compare = await page.compareScreenshot();
expect(compare).toMatchScreenshot();
});

View File

@ -23,23 +23,16 @@
</ion-header> </ion-header>
<ion-content id="content"> <ion-content id="content">
<ion-thumbnail> <ion-thumbnail id="img">
<img src="/src/components/thumbnail/test/thumbnail.svg" /> <img src="/src/components/thumbnail/test/thumbnail.svg" />
</ion-thumbnail> </ion-thumbnail>
<ion-item> <ion-item id="ion-item">
<ion-thumbnail slot="start"> <ion-thumbnail slot="start">
<img src="/src/components/thumbnail/test/thumbnail.svg" /> <img src="/src/components/thumbnail/test/thumbnail.svg" />
</ion-thumbnail> </ion-thumbnail>
<ion-label>Item Thumbnail</ion-label> <ion-label>Item Thumbnail</ion-label>
</ion-item> </ion-item>
<ion-item>
<ion-thumbnail slot="start">
<img src="/src/components/thumbnail/test/thumbnail.svg" />
</ion-thumbnail>
<ion-label>Wide Thumbnail</ion-label>
</ion-item>
</ion-content> </ion-content>
</ion-app> </ion-app>
</body> </body>

View File

@ -0,0 +1,27 @@
import { expect } from '@playwright/test';
import { test } from '@utils/test/playwright';
test.describe('thumbnail: basic', () => {
test.beforeEach(async ({ page }) => {
await page.goto(`/src/components/thumbnail/test/basic`);
});
test('should not have visual regressions when rendering <img>', async ({ page, skip }) => {
skip.rtl('ion-thumbnail does not have RTL-specific logic');
skip.mode('md', 'ion-thumbnail does not have mode-specific logic');
const referenceEl = page.locator('#img');
expect(await referenceEl.screenshot()).toMatchSnapshot(`thumbnail-img-diff-${page.getSnapshotSettings()}.png`);
});
/**
* ion-item has mode and RTL specific logic
* for ion-thumbnail which is why we do not skip
* RTL and mode tests here.
*/
test('should not have visual regressions when rendering inside of an <ion-item>', async ({ page }) => {
const referenceEl = page.locator('#ion-item');
expect(await referenceEl.screenshot()).toMatchSnapshot(`thumbnail-ion-item-diff-${page.getSnapshotSettings()}.png`);
});
});

View File

@ -1,10 +0,0 @@
import { newE2EPage } from '@stencil/core/testing';
test('thumbnail: standalone', async () => {
const page = await newE2EPage({
url: '/src/components/thumbnail/test/standalone',
});
const compare = await page.compareScreenshot();
expect(compare).toMatchScreenshot();
});

View File

@ -1,33 +0,0 @@
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="UTF-8" />
<title>Thumbnail - Standalone</title>
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"
/>
<link href="../../../../../css/core.css" rel="stylesheet" />
<link href="../../../../../scripts/testing/styles.css" rel="stylesheet" />
<script src="../../../../../scripts/testing/scripts.js"></script>
<script nomodule src="../../../../../dist/ionic/ionic.js"></script>
<script type="module" src="../../../../../dist/ionic/ionic.esm.js"></script>
</head>
<body>
<ion-thumbnail>
<img src="/src/components/thumbnail/test/thumbnail.svg" />
</ion-thumbnail>
<ion-thumbnail class="custom">
<img src="/src/components/thumbnail/test/thumbnail.svg" />
</ion-thumbnail>
<style>
.custom {
--border-radius: 50%;
--size: 120px;
}
</style>
</body>
</html>