Così Ops può emettere fattura dalla scheda club senza cercare il profilo solo tra i pagamenti pending. Co-authored-by: Cursor <cursoragent@cursor.com>
96 lines
3.0 KiB
Ruby
96 lines
3.0 KiB
Ruby
require "rails_helper"
|
|
|
|
RSpec.describe "Admin clubs billing profile", type: :request do
|
|
let!(:admin) { AdminAccount.create!(username: "ops-clubs-billing", password: "Password123") }
|
|
|
|
let!(:complete_club) do
|
|
Club.create!(
|
|
name: "Club Completo",
|
|
sport: "volleyball",
|
|
primary_color: "#e53935",
|
|
secondary_color: "#ffffff",
|
|
billing_entity_type: "company",
|
|
billing_legal_name: "ASD Completo",
|
|
billing_email: "fatture@completo.it",
|
|
billing_address_line: "Via Roma 1",
|
|
billing_city: "Milano",
|
|
billing_province: "MI",
|
|
billing_postal_code: "20100",
|
|
billing_country: "IT",
|
|
billing_vat_number: "12345678901",
|
|
billing_recipient_code: "ABCDEFG"
|
|
)
|
|
end
|
|
|
|
let!(:incomplete_club) do
|
|
Club.create!(
|
|
name: "Club Incompleto",
|
|
sport: "volleyball",
|
|
primary_color: "#e53935",
|
|
secondary_color: "#ffffff",
|
|
billing_entity_type: "company",
|
|
billing_legal_name: "ASD Incompleto",
|
|
billing_vat_number: "10987654321"
|
|
)
|
|
end
|
|
|
|
let!(:absent_club) do
|
|
Club.create!(
|
|
name: "Club Assente",
|
|
sport: "volleyball",
|
|
primary_color: "#e53935",
|
|
secondary_color: "#ffffff"
|
|
)
|
|
end
|
|
|
|
let!(:owner) do
|
|
user = User.create!(email: "owner-completo@test.it", name: "Mario Rossi", password: "Password123", role: "coach")
|
|
ClubMembership.create!(user: user, club: complete_club, role: "owner")
|
|
user
|
|
end
|
|
|
|
before do
|
|
post admin_login_path, params: { username: "ops-clubs-billing", password: "Password123" }
|
|
end
|
|
|
|
it "mostra i dati fiscali e il titolare nella scheda società" do
|
|
get admin_club_path(complete_club)
|
|
|
|
expect(response).to have_http_status(:ok)
|
|
expect(response.body).to include("Anagrafica e dati fiscali")
|
|
expect(response.body).to include("Mario Rossi")
|
|
expect(response.body).to include("owner-completo@test.it")
|
|
expect(response.body).to include("ASD Completo")
|
|
expect(response.body).to include("12345678901")
|
|
expect(response.body).to include("ABCDEFG")
|
|
expect(response.body).to include("Completo")
|
|
end
|
|
|
|
it "mostra lo stato incompleto con errori mancanti" do
|
|
get admin_club_path(incomplete_club)
|
|
|
|
expect(response).to have_http_status(:ok)
|
|
expect(response.body).to include("Incompleto")
|
|
expect(response.body).to include("ASD Incompleto")
|
|
expect(response.body).to include("10987654321")
|
|
end
|
|
|
|
it "mostra lo stato assente quando non ci sono dati fiscali" do
|
|
get admin_club_path(absent_club)
|
|
|
|
expect(response).to have_http_status(:ok)
|
|
expect(response.body).to include("Assenti")
|
|
expect(response.body).to include("Nessun dato di fatturazione compilato.")
|
|
end
|
|
|
|
it "elenca lo stato del profilo fiscale nella lista società" do
|
|
get admin_clubs_path
|
|
|
|
expect(response).to have_http_status(:ok)
|
|
expect(response.body).to include("Dati fiscali")
|
|
expect(response.body).to include("Completo")
|
|
expect(response.body).to include("Incompleto")
|
|
expect(response.body).to include("Assenti")
|
|
end
|
|
end
|