Skip to content

Commit 6732331

Browse files
committed
Fix tests
1 parent 622b1d0 commit 6732331

2 files changed

Lines changed: 13 additions & 7 deletions

File tree

tests/integration/queue.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { jest } from '@jest/globals';
2-
import { addToQueue, expectQueueLength, login, maybeLogin, qbuttSelector, queueSelector, titles, videoSelector, waitForPlayerInit } from '../shared';
2+
import { addToQueue, expectQueueLength, getNthVideo, login, maybeLogin, qbuttSelector, queueSelector, titles, videoSelector, waitForPlayerInit } from '../shared';
33

44
jest.setTimeout(20000);
55
jest.retryTimes(2);
@@ -39,7 +39,7 @@ describe('videos page', () => {
3939
return document.querySelectorAll(sel).length > n;
4040
}, {}, videoSelector, cnt);
4141

42-
const v2 = await page.waitForSelector(`${videoSelector}:nth-child(${cnt + 1})`);
42+
const v2 = await page.waitForSelector(await getNthVideo(cnt + 1));
4343
expect(await page.evaluate(s => document.querySelectorAll(s).length, videoSelector)).toBeGreaterThan(cnt);
4444
await (await v2.$('img')).hover();
4545
await expect(v2).toMatchElement(qbuttSelector);
@@ -54,8 +54,8 @@ describe('videos page', () => {
5454
const title = await page.evaluate(sel => document.querySelector(`${sel} > :last-child > :nth-child(2)`).textContent, videoSelector);
5555
await expect(page.evaluate(sel => document.querySelector(`${sel} .element .title`).textContent, queueSelector)).resolves.toEqual(title);
5656

57-
await page.hover(`${videoSelector}:nth-child(2) img`);
58-
await page.click(`${videoSelector}:nth-child(2) ${qbuttSelector}`);
57+
await page.hover(`${await getNthVideo(2)} img`);
58+
await page.click(`${await getNthVideo(2)} ${qbuttSelector}`);
5959
await expectQueueLength().toBe(2);
6060

6161
expect(

tests/shared.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
11
import type { Browser } from 'puppeteer';
22

3-
export const videoSelector = 'a[href^="/videos/"]';
3+
export const videoSelector = 'a[href^="/videos/"][aria-hidden]';
44
export const qbuttSelector = '.enhancer-queueButton';
55
export const queueSelector = '.enhancer-queue';
66

7+
let actualVideoSelector: string = null;
8+
9+
export const getNthVideo = async (num: number) => {
10+
if (actualVideoSelector === null) actualVideoSelector = await page.$eval(videoSelector, el => el.className);
11+
return `.${actualVideoSelector}:nth-child(${num})`;
12+
};
713
export const addToQueue = async (num: number, offset = 0) => {
814
for (let index = 0; index < num; index++) {
9-
await page.hover(`${videoSelector}:nth-child(${index + 1 + offset}) img`);
10-
await page.click(`${videoSelector}:nth-child(${index + 1 + offset}) ${qbuttSelector}`);
15+
await page.hover(`${await getNthVideo(index + 1 + offset)} img`);
16+
await page.click(`${await getNthVideo(index + 1 + offset)} ${qbuttSelector}`);
1117
}
1218
};
1319
export const expectQueueLength = () => expect(page.evaluate(sel => document.querySelector(`${sel} .elements`).children.length, queueSelector)).resolves;

0 commit comments

Comments
 (0)