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>
62 lines
2.4 KiB
Ruby
62 lines
2.4 KiB
Ruby
require "rails_helper"
|
|
|
|
RSpec.describe "Public team transmission invite", type: :request do
|
|
let!(:coach) do
|
|
User.create!(email: "invite-owner@test.it", name: "Owner", password: "Password123", role: "coach")
|
|
end
|
|
let!(:club) do
|
|
c = Club.create!(name: "Invite Club", sport: "volleyball", primary_color: "#e53935", secondary_color: "#ffffff")
|
|
ClubMembership.create!(user: coach, club: c, role: "owner")
|
|
load Rails.root.join("db/seeds/plans.rb")
|
|
Billing::AssignPlan.call(club: c, plan_slug: "premium_light")
|
|
c
|
|
end
|
|
let!(:team) { club.teams.create!(name: "U13 Black", sport: "volleyball") }
|
|
|
|
def login!
|
|
post public_login_path, params: { email: coach.email, password: "Password123" }
|
|
end
|
|
|
|
it "mostra il form invito sulla pagina dettagli squadra" do
|
|
login!
|
|
get public_team_details_path(team)
|
|
|
|
expect(response).to have_http_status(:ok)
|
|
expect(response.body).to include("Account principale")
|
|
expect(response.body).to include("designato per questa squadra")
|
|
expect(response.body).to include(coach.email)
|
|
expect(response.body).to include("Invita un account a trasmettere")
|
|
expect(response.body).to include('id="invita-trasmissione"')
|
|
expect(response.body).not_to include("Sono io — responsabile trasmissione")
|
|
expect(response.body).not_to include("Nessun responsabile trasmissione")
|
|
end
|
|
|
|
it "GET /teams/:id/invite reindirizza ai dettagli con ancora" do
|
|
login!
|
|
get public_team_invite_path(team)
|
|
|
|
expect(response).to redirect_to(public_team_details_path(team, anchor: "invita-trasmissione"))
|
|
end
|
|
|
|
it "genera il link, invia l'email e li mostra sui dettagli dopo il POST" do
|
|
login!
|
|
expect {
|
|
post public_team_invite_path(team), params: { email: "streamer@test.it", staff_kind: "transmission" }
|
|
}.to change { team.team_invitations.count }.by(1)
|
|
.and change { ActionMailer::Base.deliveries.size }.by(1)
|
|
|
|
expect(response).to redirect_to(public_team_details_path(team, anchor: "invito-generato"))
|
|
follow_redirect!
|
|
|
|
expect(response.body).to include("Invito inviato a streamer@test.it")
|
|
expect(response.body).to include("id=\"invito-generato\"")
|
|
expect(response.body).to include("/join/")
|
|
expect(response.body).to include("streamer@test.it")
|
|
|
|
mail = ActionMailer::Base.deliveries.last
|
|
expect(mail.to).to eq(["streamer@test.it"])
|
|
expect(mail.subject).to include("U13 Black")
|
|
expect(mail.body.encoded).to include("/join/")
|
|
end
|
|
end
|