Skip to content

Commit df78426

Browse files
authored
injected: fixing flaky duckplayer tests (#1639)
* injected: fixing flaky duckplayer tests * debugging * faster * naming
1 parent e424b1c commit df78426

File tree

4 files changed

+17
-2
lines changed

4 files changed

+17
-2
lines changed

.github/workflows/tests.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,12 @@ jobs:
7171
name: playwright-report-pages
7272
path: special-pages/playwright-report
7373
retention-days: 5
74+
- uses: actions/upload-artifact@v4
75+
if: always()
76+
with:
77+
name: playwright-report-injected
78+
path: injected/playwright-report
79+
retention-days: 5
7480
- name: Build docs
7581
run: npm run docs
7682

injected/integration-test/duckplayer-mobile-drawer.spec.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ test.describe('Duck Player - Drawer UI variant', () => {
1515
await overlays.gotoPlayerPage();
1616

1717
// watch here = overlays removed
18+
await overlays.mobile.drawerIsPresented();
1819
await overlays.mobile.choosesWatchHere();
1920
await overlays.mobile.overlayIsRemoved();
2021
await overlays.pixels.sendsPixels([
@@ -34,6 +35,7 @@ test.describe('Duck Player - Drawer UI variant', () => {
3435
await overlays.gotoPlayerPage();
3536

3637
// watch here = overlays removed
38+
await overlays.mobile.drawerIsPresented();
3739
await overlays.mobile.selectsRemember();
3840
await overlays.mobile.choosesWatchHere();
3941
await overlays.mobile.overlayIsRemoved();
@@ -54,6 +56,7 @@ test.describe('Duck Player - Drawer UI variant', () => {
5456
await overlays.userSettingIs('always ask');
5557
await overlays.gotoPlayerPage();
5658

59+
await overlays.mobile.drawerIsPresented();
5760
await overlays.mobile.choosesDuckPlayer();
5861
await overlays.pixels.sendsPixels([
5962
{ pixelName: 'overlay', params: {} },
@@ -72,6 +75,7 @@ test.describe('Duck Player - Drawer UI variant', () => {
7275
await overlays.userSettingIs('always ask');
7376
await overlays.gotoPlayerPage();
7477

78+
await overlays.mobile.drawerIsPresented();
7579
await overlays.mobile.selectsRemember();
7680
await overlays.mobile.choosesDuckPlayer();
7781
await overlays.pixels.sendsPixels([

injected/integration-test/page-objects/duckplayer-overlays.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -542,6 +542,10 @@ class DuckplayerOverlaysMobile {
542542
this.overlays = overlays;
543543
}
544544

545+
async drawerIsPresented() {
546+
const { page } = this.overlays;
547+
await page.locator('ddg-video-drawer-mobile').waitFor({ state: 'visible', timeout: 2000 });
548+
}
545549
async choosesWatchHere() {
546550
const { page } = this.overlays;
547551
await page.getByRole('button', { name: 'No Thanks' }).click();

injected/playwright.config.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ export default defineConfig({
8989
/* Retry on CI only */
9090
retries: process.env.CI ? 2 : 0,
9191
/* Opt out of parallel tests on CI. */
92-
workers: process.env.CI ? 1 : undefined,
93-
reporter: process.env.CI ? 'github' : [['html', { open: 'never' }]],
92+
workers: process.env.CI ? 2 : undefined,
93+
reporter: 'html',
9494
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
9595
webServer: {
9696
reuseExistingServer: true,
@@ -105,5 +105,6 @@ export default defineConfig({
105105
baseURL: 'http://localhost:3220/',
106106
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
107107
trace: 'on-first-retry',
108+
video: { mode: 'on-first-retry' },
108109
},
109110
});

0 commit comments

Comments
 (0)