/
web_spec.rb
86 lines (63 loc) · 2.69 KB
/
web_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# frozen_string_literal: true
require "sidekiq/web"
require "sidekiq_unique_jobs/web"
require "rack/test"
RSpec.describe SidekiqUniqueJobs::Web, redis: :redis do
include Rack::Test::Methods
def app
Sidekiq::Web
end
before do
Sidekiq.redis(&:flushdb)
end
let(:digest) { "uniquejobs:9e9b5ce5d423d3ea470977004b50ff84" }
let(:another_digest) { "uniquejobs:24c5b03e2d49d765e5dfb2d7c51c5929" }
let(:expected_digests) { [digest, another_digest] }
it "can display digests" do
expect(MyUniqueJob.perform_async(1, 2)).not_to eq(nil)
expect(MyUniqueJob.perform_async(2, 3)).not_to eq(nil)
get "/unique_digests"
expect(last_response.status).to eq(200)
expect(last_response.body).to match("/unique_digests/#{digest}")
expect(last_response.body).to match("/unique_digests/#{another_digest}")
end
it "can paginate digests" do
110.times do |idx|
expect(MyUniqueJob.perform_async(1, idx)).not_to eq(nil)
end
get "/unique_digests"
expect(last_response.status).to eq(200)
end
it "can display digest" do
expect(MyUniqueJob.perform_async(1, 2)).not_to eq(nil)
get "/unique_digests/#{digest}"
expect(last_response.status).to eq(200)
expect(last_response.body).to match("uniquejobs:9e9b5ce5d423d3ea470977004b50ff84")
expect(last_response.body).to match("uniquejobs:9e9b5ce5d423d3ea470977004b50ff84:EXISTS")
expect(last_response.body).to match("uniquejobs:9e9b5ce5d423d3ea470977004b50ff84:GRABBED")
end
it "can delete a digest" 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/#{digest}/delete"
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).to match("/unique_digests/#{another_digest}")
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