68 lines
2.0 KiB
TypeScript
68 lines
2.0 KiB
TypeScript
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
|
|
import type { Browser } from '@/utils/playwright';
|
|
|
|
import wait from './wait';
|
|
|
|
let browser: Browser | null = null;
|
|
|
|
afterEach(async () => {
|
|
if (browser) {
|
|
await browser.close();
|
|
browser = null;
|
|
}
|
|
|
|
delete process.env.PROXY_URI;
|
|
delete process.env.PROXY_PROTOCOL;
|
|
delete process.env.PROXY_HOST;
|
|
delete process.env.PROXY_PORT;
|
|
delete process.env.PROXY_AUTH;
|
|
delete process.env.PROXY_URL_REGEX;
|
|
|
|
vi.resetModules();
|
|
});
|
|
|
|
describe('playwright', () => {
|
|
it('playwright run', async () => {
|
|
const { default: playwright } = await import('./playwright');
|
|
browser = await playwright();
|
|
const startTime = Date.now();
|
|
const page = await browser.newPage();
|
|
await page.goto('https://www.google.com', {
|
|
waitUntil: 'domcontentloaded',
|
|
});
|
|
|
|
const html = await page.evaluate(() => document.body.innerHTML);
|
|
expect(html.length).toBeGreaterThan(0);
|
|
|
|
expect(browser.isConnected()).toBe(true);
|
|
const sleepTime = 31 * 1000 - (Date.now() - startTime);
|
|
if (sleepTime > 0) {
|
|
await wait(sleepTime);
|
|
}
|
|
expect(browser.isConnected()).toBe(false);
|
|
browser = null;
|
|
}, 45000);
|
|
});
|
|
|
|
describe('getPlaywrightPage', () => {
|
|
it('playwright run', async () => {
|
|
const { getPlaywrightPage } = await import('./playwright');
|
|
const playwright = await getPlaywrightPage('https://www.google.com');
|
|
const page = playwright.page;
|
|
browser = playwright.browser;
|
|
const startTime = Date.now();
|
|
|
|
const html = await page.evaluate(() => document.body.innerHTML);
|
|
expect(html.length).toBeGreaterThan(0);
|
|
|
|
expect(browser.isConnected()).toBe(true);
|
|
const sleepTime = 31 * 1000 - (Date.now() - startTime);
|
|
if (sleepTime > 0) {
|
|
await wait(sleepTime);
|
|
}
|
|
expect(browser.isConnected()).toBe(false);
|
|
browser = null;
|
|
}, 45000);
|
|
});
|