Files
MatchLiveTv/backend/spec/requests/public/club_create_spec.rb
eminuxandCursor 5bcb4170c7 Mostra il piano attivo dopo il bonifico e allinea il flusso società.
Dopo la conferma admin la card restava su «Paga con bonifico»; la società parte da Free, l'owner è staff trasmissione e le mail non bloccano se manca SMTP.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-19 18:31:39 +02:00

57 lines
1.7 KiB
Ruby

require "rails_helper"
RSpec.describe "Public club create", type: :request do
let!(:coach) do
User.create!(email: "create-coach@test.it", name: "Coach", password: "Password123", role: "coach")
end
def login!
post public_login_path, params: { email: coach.email, password: "Password123" }
end
def create_params(plan:)
{
club: {
name: "Nuova Società",
sport: "pallavolo",
primary_color: "#e53935",
secondary_color: "#ffffff"
},
first_team: { name: "Under 15" },
plan: plan
}
end
it "mostra solo il piano iniziale, senza cadenza" do
login!
get public_new_club_path
expect(response).to have_http_status(:ok)
expect(response.body).to include("Piano iniziale")
expect(response.body).not_to include("Fatturazione premium")
end
it "crea la società sul piano Free" do
login!
expect {
post public_clubs_path, params: create_params(plan: "free")
}.to change(Club, :count).by(1)
club = Club.order(:created_at).last
expect(response).to redirect_to(public_club_path(club))
expect(club.subscription.plan.slug).to eq("free")
team = club.teams.last
membership = coach.user_teams.find_by(team: team)
expect(membership&.staff_kind).to eq("transmission")
end
it "se sceglie Full senza Stripe resta Free e va in billing" do
login!
allow(MatchLiveTv).to receive(:stripe_enabled?).and_return(false)
post public_clubs_path, params: create_params(plan: "premium_full")
club = Club.order(:created_at).last
expect(club.subscription.plan.slug).to eq("free")
expect(response).to redirect_to(public_club_billing_path(club))
end
end