|
- const fs = require('fs');
- const path = require('path');
- const puppeteer = require('puppeteer');
- const chai = require('chai');
-
- const mustache = fs.readFileSync(path.join(__dirname, '../../mustache.js'), 'utf8');
-
- describe('Browser usage', () => {
-
- let browser;
- let page;
-
- before(async function () {
- this.timeout(10 * 1000);
-
- // Awkward .launch() options below are needed to avoid hitting timeouts
- // when tests are run in GitHub Actions for some weird reason
- // https://github.com/GoogleChrome/puppeteer/issues/4617
- browser = await puppeteer.launch({ignoreDefaultArgs: ['--disable-extensions']});
-
- page = await browser.newPage();
- page.on('console', msg => console.log('PAGE LOG:', msg.text()));
- page.on('pageerror', err => console.error('PAGE ERROR:', err));
- });
-
- after(() => browser.close());
-
- it('is exposed on the global scope as window.Mustache', async () => {
- await page.goto(`file://${path.join(__dirname, '_fixtures/global-scope.html')}`);
-
- const bodyElement = await page.$('body');
- const textContentProperty = await bodyElement.getProperty('textContent');
- const value = await textContentProperty.jsonValue();
-
- chai.assert.equal(value.trim(), 'Joe spends 6');
- });
- });
|