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