Billing Stripe, link regia mobile e staff solo trasmissione.

Aggiunge fatturazione club, pagina regia condivisibile senza account, roster squadre e rimuove la modalità controller dall'app (v1.1.0).

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-29 07:23:13 +02:00
parent 4083bc5dee
commit f4b7be0f80
156 changed files with 5033 additions and 2033 deletions

View File

@@ -0,0 +1,27 @@
require "rails_helper"
RSpec.describe Billing::Invoice do
let(:club) { Club.create!(name: "Invoice Club", sport: "volleyball", primary_color: "#e53935", secondary_color: "#ffffff") }
it "richiede PDF per fatture emesse" do
invoice = club.billing_invoices.build(
number: "2026/001",
issued_on: Date.current,
amount_cents: 4000,
status: "issued"
)
expect(invoice).not_to be_valid
expect(invoice.errors[:pdf]).to be_present
end
it "accetta bozza senza PDF" do
invoice = club.billing_invoices.create!(
number: "2026/002",
issued_on: Date.current,
amount_cents: 4000,
status: "draft"
)
expect(invoice).to be_persisted
expect(invoice.downloadable?).to be false
end
end

View File

@@ -0,0 +1,29 @@
require "rails_helper"
RSpec.describe ClubBillingProfile do
let(:club) do
Club.create!(
name: "Test Club",
sport: "volleyball",
primary_color: "#e53935",
secondary_color: "#ffffff",
billing_legal_name: "ASD Test",
billing_email: "billing@test.it",
billing_address_line: "Via Roma 1",
billing_city: "Milano",
billing_postal_code: "20100",
billing_vat_number: "12345678901",
billing_recipient_code: "ABCDEFG"
)
end
it "is complete with required fields" do
expect(club.billing_profile_complete?).to be true
end
it "requires SDI or PEC" do
club.billing_recipient_code = nil
club.billing_pec = nil
expect(club.billing_profile_complete?).to be false
end
end