-
-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathtest-on-real.js
42 lines (36 loc) · 1.01 KB
/
test-on-real.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
32
33
34
35
36
37
38
39
40
41
42
let pico = require('picocolors')
let load = require('./load')
const SITES = [
'https://github.com/',
'https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.css'
]
function succeed(url) {
let text = url.replace(/^https?:\/\//, '')
process.stdout.write(pico.green('✔ ') + text + '\n')
}
module.exports = async function testOnReal(callback, extra = []) {
await load(succeed, SITES.concat(extra), (css, url) => {
let result
try {
result = callback(css).css
} catch (e) {
process.stderr.write(
'\n' + pico.red(url) + '\n' + pico.bgRed(' Parsing error ') + ' '
)
if (e.name === 'CssSyntaxError') {
process.stderr.write(pico.red(e.message))
} else {
process.stderr.write(pico.red(e.stack))
}
process.stderr.write('\n')
process.exit(1)
}
if (result !== css) {
process.stderr.write(
'\n' + pico.red(url) + '\n' + pico.bgRed(' Different output ') + '\n'
)
process.exit(1)
}
succeed(url)
})
}