Skip to content

Commit

Permalink
John denisov add delete all button to web (#370)
Browse files Browse the repository at this point in the history
* add 'Delete All' button to web

* place 'unique_digests/delete_all' before 'unique_digests/:digest' to avoid incorrect match

* use single-quoted string

* add integration test for delete_all endpoint

* Rubo👮
  • Loading branch information
mhenrixon committed Feb 10, 2019
1 parent 6dd7f00 commit 032fabb
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 0 deletions.
5 changes: 5 additions & 0 deletions lib/sidekiq_unique_jobs/web.rb
Expand Up @@ -31,6 +31,11 @@ def self.registered(app) # rubocop:disable Metrics/MethodLength
erb(unique_template(:unique_digests))
end

app.get "/unique_digests/delete_all" do
Digests.del(pattern: "*", count: Digests.count)
redirect_to :unique_digests
end

app.get "/unique_digests/:digest" do
@digest = params[:digest]
@unique_keys = Util.keys("#{@digest}*", 1000)
Expand Down
4 changes: 4 additions & 0 deletions lib/sidekiq_unique_jobs/web/views/unique_digests.erb
Expand Up @@ -38,5 +38,9 @@
</tr>
<% end %>
</table>

<form action="<%= root_path %>unique_digests/delete_all" method="get">
<input class="btn btn-danger btn-xs" type="submit" name="delete_all" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
</form>
</div>
<% end %>
18 changes: 18 additions & 0 deletions spec/integration/sidekiq_unique_jobs/web_spec.rb
Expand Up @@ -65,4 +65,22 @@ def app

expect(SidekiqUniqueJobs::Digests.all).to match_array([another_digest])
end

it "can delete all digests" do
expect(MyUniqueJob.perform_async(1, 2)).not_to eq(nil)
expect(MyUniqueJob.perform_async(2, 3)).not_to eq(nil)

expect(SidekiqUniqueJobs::Digests.all).to match_array(expected_digests)

get "/unique_digests/delete_all"
expect(last_response.status).to eq(302)

follow_redirect!

expect(last_request.url).to end_with("/unique_digests")
expect(last_response.body).not_to match("/unique_digests/#{digest}")
expect(last_response.body).not_to match("/unique_digests/#{another_digest}")

expect(SidekiqUniqueJobs::Digests.all).to be_empty
end
end

0 comments on commit 032fabb

Please sign in to comment.