42 lines
996 B
VimL
42 lines
996 B
VimL
|
" don't spam the user when Vim is started in Vi compatibility mode
|
||
|
let s:cpo_save = &cpo
|
||
|
set cpo&vim
|
||
|
|
||
|
func! Test_PromiseNew() abort
|
||
|
let l:sut = go#promise#New(function('s:work', []), 100, -1)
|
||
|
call assert_true(has_key(l:sut, 'wrapper'))
|
||
|
call assert_true(has_key(l:sut, 'await'))
|
||
|
endfunc
|
||
|
|
||
|
func! Test_PromiseAwait() abort
|
||
|
let l:expected = 1
|
||
|
let l:default = -1
|
||
|
let l:sut = go#promise#New(function('s:work', [l:expected]), 100, l:default)
|
||
|
|
||
|
call timer_start(10, l:sut.wrapper)
|
||
|
|
||
|
let l:actual = call(l:sut.await, [])
|
||
|
call assert_equal(l:expected, l:actual)
|
||
|
endfunc
|
||
|
|
||
|
func! Test_PromiseAwait_Timeout() abort
|
||
|
let l:desired = 1
|
||
|
let l:expected = -1
|
||
|
let l:sut = go#promise#New(function('s:work', [l:desired]), 10, l:expected)
|
||
|
|
||
|
call timer_start(100, l:sut.wrapper)
|
||
|
|
||
|
let l:actual = call(l:sut.await, [])
|
||
|
call assert_equal(l:expected, l:actual)
|
||
|
endfunc
|
||
|
|
||
|
func! s:work(val, timer)
|
||
|
return a:val
|
||
|
endfunc
|
||
|
|
||
|
" restore Vi compatibility settings
|
||
|
let &cpo = s:cpo_save
|
||
|
unlet s:cpo_save
|
||
|
|
||
|
" vim: sw=2 ts=2 et
|