pull/8577/head
gtmnayan 3 years ago
parent ecaed8b480
commit 7cae8f06f0

@ -1,73 +1,30 @@
import * as path from 'path'; import virtual from '@rollup/plugin-virtual';
import * as fs from 'fs'; import * as fs from 'fs';
import * as http from 'http'; import * as path from 'path';
import { rollup } from 'rollup'; import { rollup } from 'rollup';
import virtual from '@rollup/plugin-virtual';
import puppeteer from 'puppeteer';
import {
loadConfig,
loadSvelte,
mkdirp,
prettyPrintPuppeteerAssertionError,
retryAsync,
executeBrowserTest
} from '../helpers';
import { deepEqual } from 'assert';
const page = ` import { chromium } from '@playwright/test';
<body> import { deepEqual } from 'assert';
<main></main> import { loadConfig, loadSvelte, mkdirp, prettyPrintPuppeteerAssertionError } from '../helpers';
<script src='/bundle.js'></script>
</body>
`;
let svelte; let svelte;
let server;
let code;
let browser; let browser;
const internal = path.resolve('internal/index.mjs'); const internal = path.resolve('internal/index.mjs');
const index = path.resolve('index.mjs'); const index = path.resolve('index.mjs');
function create_server() {
return new Promise((fulfil, reject) => {
const server = http.createServer((req, res) => {
if (req.url === '/') {
res.end(page);
}
if (req.url === '/bundle.js') {
res.end(code);
}
});
server.on('error', reject);
server.listen('6789', () => {
fulfil(server);
});
});
}
async function launchPuppeteer() {
return await retryAsync(() => puppeteer.launch());
}
const assert = fs.readFileSync(`${__dirname}/assert.js`, 'utf-8'); const assert = fs.readFileSync(`${__dirname}/assert.js`, 'utf-8');
describe('runtime (puppeteer)', () => { describe('runtime (puppeteer)', () => {
before(async () => { before(async () => {
svelte = loadSvelte(false); svelte = loadSvelte(false);
console.log('[runtime-puppeteer] Loaded Svelte'); console.log('[runtime-puppeteer] Loaded Svelte');
server = await create_server();
console.log('[runtime-puppeteer] Started server'); browser = await chromium.launch();
browser = await launchPuppeteer();
console.log('[runtime-puppeteer] Launched puppeteer browser'); console.log('[runtime-puppeteer] Launched puppeteer browser');
}); });
after(async () => { after(async () => {
if (server) server.close();
if (browser) await browser.close(); if (browser) await browser.close();
}); });
@ -221,8 +178,7 @@ describe('runtime (puppeteer)', () => {
] ]
}); });
const result = await bundle.generate({ format: 'iife', name: 'test' }); const generated_bundle = await bundle.generate({ format: 'iife', name: 'test' });
code = result.output[0].code;
function assertWarnings() { function assertWarnings() {
if (config.warnings) { if (config.warnings) {
@ -243,11 +199,24 @@ describe('runtime (puppeteer)', () => {
} }
} }
browser = await executeBrowserTest(browser, launchPuppeteer, assertWarnings, (err) => { try {
const page = await browser.newPage();
page.on('console', (type) => {
console[type.type()](type.text());
});
await page.setContent('<main></main>');
await page.evaluate(generated_bundle.output[0].code);
const test_result = await page.evaluate(`test(document.querySelector('main'))`);
if (test_result) console.log(test_result);
assertWarnings();
await page.close();
} catch (err) {
failed.add(dir); failed.add(dir);
prettyPrintPuppeteerAssertionError(err.message); prettyPrintPuppeteerAssertionError(err.message);
assertWarnings(); assertWarnings();
}); throw err;
}
} }
).timeout(is_first_run ? 20000 : 10000); ).timeout(is_first_run ? 20000 : 10000);
} }

@ -9,7 +9,7 @@ require('../internal');
console.clear(); console.clear();
const test_folders = glob('*/index.js', { cwd: 'test' }); const test_folders = glob('*/index.js', { cwd: 'test' });
const solo_folders = test_folders.filter((folder) => /(puppeteer)/.test(folder)); const solo_folders = test_folders.filter((folder) => /\.solo/.test(folder));
if (solo_folders.length) { if (solo_folders.length) {
if (process.env.CI) { if (process.env.CI) {

Loading…
Cancel
Save