1 # This file implements a simple test runner.
3 list = do -> # @echo TESTS
5 module.exports = (topLevelObject) ->
10 for name in list when name.endsWith('-frame') == IS_FRAME_SCRIPT
11 tests = require("./#{name}")
13 for key, fn of tests when key.startsWith('test')
17 teardown = (fn) -> teardowns.push(fn)
19 fn(topLevelObject, teardown)
23 (try fn()) for fn in teardowns
24 report.push(" #{if error then '✘' else '✔'} #{key}")
25 report.push("#{error}\n#{error.stack}".replace(/^/gm, ' ')) if error
27 type = if IS_FRAME_SCRIPT then 'frame' else 'regular'
28 report.push("\n#{passed}/#{total} #{type} tests passed.\n")
29 console.info("\n#{report.join('\n')}")