| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- lust = require 'tests/lust'
- Rx = require 'rx'
- for _, fn in pairs({'describe', 'it', 'test', 'expect', 'spy', 'before', 'after'}) do
- _G[fn] = lust[fn]
- end
- observableSpy = function(observable)
- local observer = Rx.Observer.create(_, function() end, _)
- local onNext = spy(observer, '_onNext')
- local onError = spy(observer, '_onError')
- local onComplete = spy(observer, '_onComplete')
- observable:subscribe(observer)
- return onNext, onError, onComplete
- end
- lust.paths['produce'] = {
- 'nothing',
- f = function(observable, ...)
- local args = {...}
- local values
- if type(args[1]) ~= 'table' then
- values = {}
- for i = 1, math.max(#args, 1) do
- table.insert(values, {args[i]})
- end
- else
- values = args[1]
- end
- local onNext, onError, onComplete = observableSpy(observable)
- expect(observable).to.be.an(Rx.Observable)
- expect(onNext).to.equal(values)
- expect(#onError).to.equal(0)
- expect(#onComplete).to.equal(1)
- return true
- end
- }
- lust.paths['nothing'] = {
- f = function(observable)
- local onNext, onError, onComplete = observableSpy(observable)
- expect(observable).to.be.an(Rx.Observable)
- expect(#onNext).to.equal(0)
- expect(#onError).to.equal(0)
- expect(#onComplete).to.equal(1)
- return true
- end
- }
- table.insert(lust.paths['to'], 'produce')
- if arg[1] then
- arg[1] = arg[1]:gsub('^(tests/)', ''):gsub('%.lua$', '')
- dofile('tests/' .. arg[1] .. '.lua')
- else
- local files = {
- 'observer',
- 'observable'
- }
- for i, file in ipairs(files) do
- dofile('tests/' .. file .. '.lua')
- if next(files, i) then
- print()
- end
- end
- end
- local red = string.char(27) .. '[31m'
- local green = string.char(27) .. '[32m'
- local normal = string.char(27) .. '[0m'
- if lust.errors > 0 then
- io.write(red .. lust.errors .. normal .. ' failed, ')
- end
- print(green .. lust.passes .. normal .. ' passed')
- if lust.errors > 0 then os.exit(1) end
|