-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathfetchu-browser.test.js
31 lines (28 loc) · 1.19 KB
/
fetchu-browser.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
const same = require('assert').deepStrictEqual;
const fs = require('fs');
const puppeteer = require('puppeteer');
(async () => {
let browser = { close() { } }, page = { close() { } };
try {
const opts = !process.env.CI && fs.existsSync('/usr/bin/google-chrome') ? { executablePath: 'google-chrome' } : {};
browser = await puppeteer.launch({ ...opts, args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage'] });
page = await browser.newPage();
page.on('console', msg => console.log(msg.text()));
page.on('error', err => console.error('error', err));
page.on('pageerror', err => console.error('pageerror', err));
const fetchuStr = (await fs.promises.readFile('./fetchu-browser.js', 'utf-8')).replace('export default fetchu;', '');
const r2 = await page.evaluate(`${fetchuStr}
fetchu('https://cors-anywhere.herokuapp.com/http://httpbin.org/post', {
method: 'POST',
body: { lol: 1 }
}).then(r => r.json())
`);
same(r2.data, '{"lol":1}');
console.log('ok');
} catch (e) {
console.error('ERR', e);
}
await page.close();
await browser.close();
})()
.catch(console.error);