kaguranana-birthday-project/node_modules/classlist-polyfill/tests/runner.coffee
2021-12-12 18:49:32 -08:00

47 lines
1.5 KiB
CoffeeScript

urls = require('system').args.slice(1)
page = require('webpage').create()
timeout = 3000
qunitHooks = ->
window.document.addEventListener 'DOMContentLoaded', ->
for callback in ['log', 'testDone', 'done']
do (callback) ->
QUnit[callback] (result) ->
window.callPhantom
name: "QUnit.#{callback}"
data: result
page.onInitialized = -> page.evaluate qunitHooks
page.onConsoleMessage = (msg) -> console.log msg
page.onCallback = (event) ->
if event.name is 'QUnit.log'
details = event.data
if details.result is false
console.log "#{details.module}: #{details.name}"
if details.message and details.message isnt "failed"
console.log " #{details.message}"
if "actual" of details
console.log " expected: #{details.expected}"
console.log " actual: #{details.actual}"
else if event.name is 'QUnit.testDone'
result = event.data
unless result.failed
console.log "✔︎ #{result.module}: #{result.name}"
else if event.name is 'QUnit.done'
res = event.data
console.log "#{res.total} tests, #{res.failed} failed. Done in #{res.runtime} ms"
phantom.exit if !res.total or res.failed then 1 else 0
for url in urls
page.open url, (status) ->
if status isnt 'success'
console.error "failed opening #{url}: #{status}"
phantom.exit 1
else
setTimeout ->
console.error "ERROR: Test execution has timed out"
phantom.exit 1
, timeout