add tests for controllers and ActionCable channels; improve main backend docs

This commit is contained in:
2026-10-27 10:32:40 +03:00
parent b122cbb652
commit 50e8aacfa9
17 changed files with 1127 additions and 63 deletions
@@ -0,0 +1,41 @@
require "rails_helper"
RSpec.describe Api::MatchmakingController, type: :controller do
routes do
ActionDispatch::Routing::RouteSet.new.tap do |r|
r.draw do
delete "destroy", to: "api/matchmaking#destroy"
end
end
end
let(:user) { User.create!(nickname: "CaptainHook", password: "password123") }
let(:token) { JwtService.encode(user_id: user.id) }
describe "DELETE #destroy" do
context "when authenticated" do
it "cancels matchmaking for current user and returns success message" do
request.headers["Authorization"] = "Bearer #{token}"
expect(MatchmakingService).to receive(:cancel).with(user.id)
delete :destroy
expect(response).to have_http_status(:ok)
json = JSON.parse(response.body)
expect(json["message"]).to eq("Matchmaking cancelled")
end
end
context "when unauthenticated" do
it "returns 401 unauthorized and does not call cancel" do
expect(MatchmakingService).not_to receive(:cancel)
delete :destroy
expect(response).to have_http_status(:unauthorized)
json = JSON.parse(response.body)
expect(json["error"]).to eq("Unauthorized")
end
end
end
end