Fix stale-read race when creating push subscriptions
(Caught one such uniqueness exception in the wild) * 200 OK -> 204 No Content, default status * No need to touch the subscription when found * Drop superflous test
This commit is contained in:
@@ -14,30 +14,12 @@ class Users::PushSubscriptionsControllerTest < ActionDispatch::IntegrationTest
|
||||
post user_push_subscriptions_path(users(:david)),
|
||||
params: { push_subscription: subscription_params }, headers: { "HTTP_USER_AGENT" => "Mozilla/5.0" }
|
||||
|
||||
assert_response :ok
|
||||
assert_response :no_content
|
||||
|
||||
assert_equal subscription_params, users(:david).push_subscriptions.last.attributes.slice("endpoint", "p256dh_key", "auth_key")
|
||||
assert_equal "Mozilla/5.0", users(:david).push_subscriptions.last.user_agent
|
||||
end
|
||||
|
||||
test "touch existing subscription" do
|
||||
existing_subscription = users(:david).push_subscriptions.create!(
|
||||
endpoint: "https://fcm.googleapis.com/fcm/send/abc123",
|
||||
p256dh_key: "123",
|
||||
auth_key: "456"
|
||||
)
|
||||
|
||||
assert_no_difference -> { users(:david).push_subscriptions.count } do
|
||||
assert_changes -> { existing_subscription.reload.updated_at } do
|
||||
post user_push_subscriptions_path(users(:david)), params: {
|
||||
push_subscription: existing_subscription.attributes.slice("endpoint", "p256dh_key", "auth_key")
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
assert_response :ok
|
||||
end
|
||||
|
||||
test "destroy a push subscription" do
|
||||
subscription = users(:david).push_subscriptions.create!(
|
||||
endpoint: "https://fcm.googleapis.com/fcm/send/abc123",
|
||||
|
||||
Reference in New Issue
Block a user