annotate .cms/lib/codemirror/test/run.js @ 0:78edf6b517a0 draft

24.10
author Coffee CMS <info@coffee-cms.ru>
date Fri, 11 Oct 2024 22:40:23 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1 #!/usr/bin/env node
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
2
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
3 var lint = require("./lint");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
4
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
5 var files = new (require('node-static').Server)();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
6
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
7 var server = require('http').createServer(function (req, res) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
8 req.addListener('end', function () {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
9 files.serve(req, res, function (err/*, result */) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
10 if (err) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
11 console.error(err);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
12 process.exit(1);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
13 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
14 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
15 }).resume();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
16 }).addListener('error', function (err) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
17 throw err;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
18 }).listen(3000,(async () => {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
19 const puppeteer = require('puppeteer');
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
20 const browser = await puppeteer.launch({args: ["--no-sandbox", "--disable-setuid-sandbox"]})
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
21 const page = await browser.newPage()
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
22 page.on('console', msg => console.log("console:", msg.text()))
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
23 page.on('dialog', async dialog => {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
24 console.log(dialog.message())
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
25 await dialog.dismiss()
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
26 })
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
27 page.evaluateOnNewDocument(() => window.automatedTests = true)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
28 await page.goto('http://localhost:3000/test/index.html#' + (process.argv[2] || ""))
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
29 while(1) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
30 if (await page.evaluate(() => window.done)) break
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
31 await sleep(200)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
32 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
33 let [failed, errors] = await page.evaluate(() => [window.failed, window.errored])
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
34 for (let error of errors) console.log(error)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
35 console.log(await page.evaluate(() => document.getElementById('output').innerText + "\n" +
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
36 document.getElementById('status').innerText))
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
37 process.exit(failed > 0 || errors.length || !lint.ok ? 1 : 0)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
38 await browser.close()
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
39 })())
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
40
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
41 function sleep(n) { return new Promise(acc => setTimeout(acc, n)) }