Skip to content

Commit

Permalink
test lock management
Browse files Browse the repository at this point in the history
  • Loading branch information
kraih committed Dec 11, 2017
1 parent 14b99d8 commit 6d766d3
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 6 deletions.
2 changes: 1 addition & 1 deletion lib/Mojolicious/Plugin/Minion/Admin.pm
Expand Up @@ -145,7 +145,7 @@ sub _unlock {
my $names = $validation->every_param('name');
my $minion = $c->minion;
$minion->unlock($_) for @$names;
$c->flash(info => 'Released all selected named locks.');
$c->flash(success => 'All selected named locks released.');

$c->redirect_to('minion_locks');
}
Expand Down
22 changes: 17 additions & 5 deletions t/pg_admin.t
Expand Up @@ -33,10 +33,11 @@ $t->get_ok('/minion')->status_is(200)->content_like(qr/Dashboard/)

# Stats
$t->get_ok('/minion/stats')->status_is(200)->json_is('/active_jobs' => 0)
->json_is('/active_workers' => 0)->json_is('/delayed_jobs' => 0)
->json_is('/enqueued_jobs' => 2)->json_is('/failed_jobs' => 0)
->json_is('/finished_jobs' => 1)->json_is('/inactive_jobs' => 1)
->json_is('/inactive_workers' => 0)->json_has('/uptime');
->json_is('/active_locks' => 0)->json_is('/active_workers' => 0)
->json_is('/delayed_jobs' => 0)->json_is('/enqueued_jobs' => 2)
->json_is('/failed_jobs' => 0)->json_is('/finished_jobs' => 1)
->json_is('/inactive_jobs' => 1)->json_is('/inactive_workers' => 0)
->json_has('/uptime');

# Jobs
$t->get_ok('/minion/jobs?state=inactive')->status_is(200)
Expand All @@ -54,8 +55,19 @@ $t->get_ok('/minion/workers')->status_is(200)->element_exists('tbody td a')
$worker->unregister;
$t->get_ok('/minion/workers')->status_is(200)->element_exists_not('tbody td a');

# Manage jobs
# Locks
$t->app->minion->lock('foo', 3600);
$t->app->minion->lock('bar', 3600);
$t->ua->max_redirects(5);
$t->get_ok('/minion/locks')->status_is(200)->text_like('tbody td a' => qr/bar/);
$t->get_ok('/minion/locks?name=foo')->status_is(200)
->text_like('tbody td a' => qr/foo/);
$t->post_ok('/minion/locks?_method=DELETE&name=bar')->status_is(200)
->text_like('tbody td a' => qr/foo/);
$t->post_ok('/minion/locks?_method=DELETE&name=foo')->status_is(200)
->element_exists_not('tbody td a');

# Manage jobs
is app->minion->job($finished)->info->{state}, 'finished', 'right state';
$t->post_ok(
'/minion/jobs?_method=PATCH' => form => {id => $finished, do => 'retry'})
Expand Down

0 comments on commit 6d766d3

Please sign in to comment.