blob: d276e0cdc81123765d57456ef37f7cff6cbe1b67 [file] [log] [blame]
/**
* @license
* Copyright 2020 The Go Authors. All rights reserved.
* Use of this source code is governed by a BSD-style
* license that can be found in the LICENSE file.
*/
import puppeteer, { Page } from 'puppeteer';
describe('golang.org/x/pkgsite', () => {
const baseUrl = process.env.FRONTEND_URL ?? '';
let page: Page;
let browser: puppeteer.Browser;
beforeAll(async () => {
browser = await puppeteer.launch({
args: ['--no-sandbox', '--disable-dev-shm-usage'],
defaultViewport: { height: 800, width: 1280 },
});
page = await browser.newPage();
await page.goto(baseUrl);
await page.evaluate(() =>
fetch(`/fetch/golang.org/x/pkgsite@v0.0.0-20210216165259-5867665b19ca`, { method: 'POST' })
);
}, 30000);
beforeEach(async () => {
page = await browser.newPage();
await page.goto(baseUrl + '/golang.org/x/pkgsite');
});
afterEach(async () => await page.close());
afterAll(async () => await browser.close());
test('accessibility tree matches snapshot', async () => {
const a11yTree = await page.accessibility.snapshot();
expect(a11yTree).toMatchSnapshot();
});
test('desktop viewport matches image snapshot', async () => {
const image = await page.screenshot({ fullPage: true });
expect(image).toMatchImageSnapshot();
});
test('mobile viewport matches image snapshot', async () => {
await page.emulate(puppeteer.devices['Pixel 2']);
const image = await page.screenshot({ fullPage: true });
expect(image).toMatchImageSnapshot();
});
});