Add tests for subscription check endpoint
This commit is contained in:
parent
48c7beb54e
commit
5a3f2966dd
|
@ -197,4 +197,67 @@ describe Ajax::WebPushController, :ajax_controller, type: :controller do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "#check" do
|
||||||
|
subject { post :check, params: }
|
||||||
|
|
||||||
|
context "user signed in" do
|
||||||
|
let(:user) { FactoryBot.create(:user) }
|
||||||
|
let(:endpoint) { "https://some.domain/some/webpush/endpoint" }
|
||||||
|
let!(:subscription) do
|
||||||
|
WebPushSubscription.create(
|
||||||
|
user:,
|
||||||
|
subscription: { endpoint:, keys: {} },
|
||||||
|
failures:
|
||||||
|
)
|
||||||
|
end
|
||||||
|
let(:expected_response) do
|
||||||
|
{
|
||||||
|
"message" => "",
|
||||||
|
"status" => expected_status,
|
||||||
|
"success" => true
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
before { sign_in user }
|
||||||
|
|
||||||
|
context "subscription exists" do
|
||||||
|
let(:params) do
|
||||||
|
{ endpoint: }
|
||||||
|
end
|
||||||
|
|
||||||
|
context "without failures" do
|
||||||
|
let(:failures) { 0 }
|
||||||
|
let(:expected_status) { "subscribed" }
|
||||||
|
|
||||||
|
it_behaves_like "returns the expected response"
|
||||||
|
end
|
||||||
|
|
||||||
|
context "with 2 failures" do
|
||||||
|
let(:failures) { 2 }
|
||||||
|
let(:expected_status) { "subscribed" }
|
||||||
|
|
||||||
|
it_behaves_like "returns the expected response"
|
||||||
|
end
|
||||||
|
|
||||||
|
context "with 3 failures" do
|
||||||
|
let(:failures) { 3 }
|
||||||
|
let(:expected_status) { "failed" }
|
||||||
|
|
||||||
|
it_behaves_like "returns the expected response"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "subscription doesn't exist" do
|
||||||
|
let(:params) do
|
||||||
|
{ endpoint: "https;//some.domain/some/other/endpoint" }
|
||||||
|
end
|
||||||
|
|
||||||
|
let(:failures) { 0 }
|
||||||
|
let(:expected_status) { "unsubscribed" }
|
||||||
|
|
||||||
|
it_behaves_like "returns the expected response"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue