grafana/public/e2e-test/core/scenario.ts
Hugo Häggmark a4d287d2e1
Tests: Adds end-to-end tests skeleton and basic smoke test scenario (#16901)
* Chore: Adds neccessary packages

* Wip: Initial dummy test in place

* Feature: Downloads Chromium if needed

* Fix: Adds global config object

* Refactor: Adds basic e2eScenario

* Build: Adds end to end tests to config

* Build: Changes end to end job

* Build: Adds browsers to image

* Build: Adds failing test

* Refactor: Adds first e2e-test scenario

* Fix: Ignores test output in gitignore

* Refactor: Adds compare screenshots ability

* Refactor: Removes unnecessary code

* Build: Removes jest-puppeteer

* Fix: Replaces test snapshots

* Refactor: Creates output dir if missing

* Refactor: Changes aria-labels to be more consistent

* Docs: Adds section about end to end tests

* Fix: Fixes snapshots

* Docs: Adds information about ENV variables
2019-05-08 16:50:21 +02:00

31 lines
689 B
TypeScript

import { Browser, Page } from 'puppeteer-core';
import { launchBrowser } from './launcher';
import { ensureLoggedIn } from './login';
export const e2eScenario = (
title: string,
testDescription: string,
callback: (browser: Browser, page: Page) => void
) => {
describe(title, () => {
let browser: Browser = null;
let page: Page = null;
beforeAll(async () => {
browser = await launchBrowser();
page = await browser.newPage();
await ensureLoggedIn(page);
});
afterAll(async () => {
if (browser) {
await browser.close();
}
});
it(testDescription, async () => {
await callback(browser, page);
});
});
};