blob: 7a24cb947a795cede9e6e0e4635608dad78a494f [file] [log] [blame]
import { expect } from 'chai';
import { addEventListenersToPuppeteerPage, takeScreenshot, TestBed } from '../../../puppeteer-tests/util';
import { loadGoldWebpack } from '../common_puppeteer_test/common_puppeteer_test';
describe('byblame-page-sk', () => {
let testBed: TestBed;
before(async () => {
testBed = await loadGoldWebpack();
});
beforeEach(async () => {
const eventPromise = await addEventListenersToPuppeteerPage(testBed.page, ['end-task']);
const loaded = eventPromise('end-task'); // Emitted when page is loaded.
await testBed.page.goto(`${testBed.baseUrl}/dist/byblame-page-sk.html`);
await loaded;
});
it('should render the demo page', async () => {
// Smoke test.
expect(await testBed.page.$$('byblame-page-sk')).to.have.length(1);
});
it('should take a screenshot', async () => {
await testBed.page.setViewport({ width: 1200, height: 2700 });
await takeScreenshot(testBed.page, 'gold', 'byblame-page-sk');
});
it('limits the number of commits on the blamelist', async () => {
await testBed.page.setViewport({ width: 1200, height: 2300 });
// click on "svg"
await testBed.page.click('corpus-selector-sk > ul > li:nth-child(3)');
await expectSelectedCorpusToBe('svg');
await takeScreenshot(testBed.page, 'gold', 'byblame-page-sk_limits-blamelist-commits');
});
it('responds to forward and back browser buttons', async () => {
await expectSelectedCorpusToBe('gm');
// click on canvaskit
await testBed.page.click('corpus-selector-sk > ul > li:nth-child(1)');
await expectSelectedCorpusToBe('canvaskit');
expect(testBed.page.url()).to.contain('?corpus=canvaskit');
// click on "svg"
await testBed.page.click('corpus-selector-sk > ul > li:nth-child(3)');
await expectSelectedCorpusToBe('svg');
expect(testBed.page.url()).to.contain('?corpus=svg');
await testBed.page.goBack();
await expectSelectedCorpusToBe('canvaskit');
expect(testBed.page.url()).to.contain('?corpus=canvaskit');
await testBed.page.goForward();
await expectSelectedCorpusToBe('svg');
expect(testBed.page.url()).to.contain('?corpus=svg');
});
const expectSelectedCorpusToBe = async (corpus: string) => {
const selectedTitle =
await testBed.page.$eval(
'corpus-selector-sk li.selected',
(e: Element) => (e as HTMLLIElement).innerText);
expect(selectedTitle).to.contain(corpus);
};
});