blob: ef1a55169f11760b02dc5dd43a8fc17c16917b10 [file] [log] [blame]
const expect = require('chai').expect;
const path = require('path');
const addEventListenersToPuppeteerPage = require('../../../puppeteer-tests/util').addEventListenersToPuppeteerPage;
const setUpPuppeteerAndDemoPageServer = require('../../../puppeteer-tests/util').setUpPuppeteerAndDemoPageServer;
const takeScreenshot = require('../../../puppeteer-tests/util').takeScreenshot;
describe('corpus-selector-sk', () => {
// Contains page and baseUrl.
const testBed = setUpPuppeteerAndDemoPageServer(path.join(__dirname, '..', '..', 'webpack.config.js'));
beforeEach(async () => {
// Listen for custom event triggered when component finishes loading.
const eventPromise = await addEventListenersToPuppeteerPage(
testBed.page, ['corpus-selector-sk-loaded'],
);
// Page has three corpus selectors so we wait until all of them have loaded.
const loaded = Promise.all([
eventPromise('corpus-selector-sk-loaded'),
eventPromise('corpus-selector-sk-loaded'),
eventPromise('corpus-selector-sk-loaded'),
]);
await testBed.page.goto(`${testBed.baseUrl}/dist/corpus-selector-sk.html`);
await loaded;
});
it('should render the demo page', async () => {
// Basic smoke test that things loaded.
expect(await testBed.page.$$('corpus-selector-sk')).to.have.length(3);
});
it('shows the default corpus renderer function', async () => {
const selector = await testBed.page.$('#default');
await takeScreenshot(selector, 'gold', 'corpus-selector-sk');
});
it('supports a custom corpus renderer function', async () => {
const selector = await testBed.page.$('#custom-fn');
await takeScreenshot(selector, 'gold', 'corpus-selector-sk_custom-fn');
});
it('handles very long strings', async () => {
const selector = await testBed.page.$('#custom-fn-long-corpus');
await takeScreenshot(selector, 'gold', 'corpus-selector-sk_long-strings');
});
});