]> git.gir.st - VimFx.git/blob - extension/test/index.coffee
Change license to MIT
[VimFx.git] / extension / test / index.coffee
1 # This file implements a simple test runner.
2
3 list = do -> # @echo TESTS
4
5 module.exports = (topLevelObject) ->
6 report = []
7 passed = 0
8 total = 0
9
10 for name in list when name.endsWith('-frame') == IS_FRAME_SCRIPT
11 tests = require("./#{name}")
12 report.push(name)
13 for key, fn of tests when key.startsWith('test')
14 total += 1
15 error = null
16 teardowns = []
17 teardown = (fn) -> teardowns.push(fn)
18 try
19 fn(topLevelObject, teardown)
20 passed += 1
21 catch error then null
22 finally
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
26
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')}")
Imprint / Impressum