39 lines
1.4 KiB
TypeScript
39 lines
1.4 KiB
TypeScript
import { BrowserLaunchError, BrowserPool, PuppeteerPlugin } from '@crawlee/browser-pool';
|
|
import puppeteer from 'puppeteer';
|
|
|
|
describe('New errors in BrowserPool', () => {
|
|
const pool = new BrowserPool({
|
|
browserPlugins: [new PuppeteerPlugin(puppeteer, { launchOptions: { executablePath: '/dev/null' } })],
|
|
});
|
|
|
|
afterEach(() => {
|
|
delete process.env.APIFY_IS_AT_HOME;
|
|
});
|
|
|
|
test('they should log more information', async () => {
|
|
const error = await pool.newPage().catch((err) => err);
|
|
|
|
expect(error).toBeInstanceOf(BrowserLaunchError);
|
|
|
|
// Must include the executable path
|
|
expect(error.message).toMatch(/\/dev\/null/);
|
|
// Must include the install command
|
|
expect(error.message).toMatch(/npx @puppeteer\/browsers/);
|
|
});
|
|
|
|
test('when running on Apify, it should also log Docker image suggestion', async () => {
|
|
process.env.APIFY_IS_AT_HOME = '1';
|
|
|
|
const error = await pool.newPage().catch((err) => err);
|
|
|
|
expect(error).toBeInstanceOf(BrowserLaunchError);
|
|
|
|
// Must include the executable path
|
|
expect(error.message).toMatch(/\/dev\/null/);
|
|
// Must include the docker image suggestion
|
|
expect(error.message).toMatch(/apify\/actor-node-puppeteer-chrome/);
|
|
// Must include the install command
|
|
expect(error.message).toMatch(/npx @puppeteer\/browsers/);
|
|
});
|
|
});
|