feat: async scraper
This commit is contained in:
parent
53562eb6a8
commit
a32fd396d3
12 changed files with 1527 additions and 474 deletions
50
spec/async_init_spec.lua
Normal file
50
spec/async_init_spec.lua
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
describe('cp.async.init', function()
|
||||
local async
|
||||
local spec_helper = require('spec.spec_helper')
|
||||
|
||||
before_each(function()
|
||||
spec_helper.setup()
|
||||
async = spec_helper.fresh_require('cp.async.init')
|
||||
end)
|
||||
|
||||
after_each(function()
|
||||
spec_helper.teardown()
|
||||
end)
|
||||
|
||||
describe('contest operation guard', function()
|
||||
it('allows starting operation when none active', function()
|
||||
assert.has_no_errors(function()
|
||||
async.start_contest_operation('test_operation')
|
||||
end)
|
||||
assert.equals('test_operation', async.get_active_operation())
|
||||
end)
|
||||
|
||||
it('throws error when starting operation while one is active', function()
|
||||
async.start_contest_operation('first_operation')
|
||||
|
||||
assert.has_error(function()
|
||||
async.start_contest_operation('second_operation')
|
||||
end, "Contest operation 'first_operation' already active, cannot start 'second_operation'")
|
||||
end)
|
||||
|
||||
it('allows starting operation after finishing previous one', function()
|
||||
async.start_contest_operation('first_operation')
|
||||
async.finish_contest_operation()
|
||||
|
||||
assert.has_no_errors(function()
|
||||
async.start_contest_operation('second_operation')
|
||||
end)
|
||||
assert.equals('second_operation', async.get_active_operation())
|
||||
end)
|
||||
|
||||
it('correctly reports active operation status', function()
|
||||
assert.is_nil(async.get_active_operation())
|
||||
|
||||
async.start_contest_operation('test_operation')
|
||||
assert.equals('test_operation', async.get_active_operation())
|
||||
|
||||
async.finish_contest_operation()
|
||||
assert.is_nil(async.get_active_operation())
|
||||
end)
|
||||
end)
|
||||
end)
|
||||
Loading…
Add table
Add a link
Reference in a new issue