diff --git a/backend/app/models/match.rb b/backend/app/models/match.rb index 60f6049..c64be5e 100644 --- a/backend/app/models/match.rb +++ b/backend/app/models/match.rb @@ -7,9 +7,9 @@ class Match < ApplicationRecord validates :opponent_name, presence: true validates :sets_to_win, numericality: { greater_than: 0, less_than: 6 } - # Partite con data/ora: da inizio giornata (Europe/Rome) in poi — allineato alla pagina Partite. + # Partite ancora da giocare in diretta (orario nel futuro). scope :scheduled_for_live, -> { - where.not(scheduled_at: nil).where("scheduled_at >= ?", Time.zone.now.beginning_of_day) + where.not(scheduled_at: nil).where("scheduled_at >= ?", Time.zone.now) } scope :scheduled_upcoming, -> { scheduled_for_live } diff --git a/backend/spec/models/match_scheduling_spec.rb b/backend/spec/models/match_scheduling_spec.rb new file mode 100644 index 0000000..d8597b4 --- /dev/null +++ b/backend/spec/models/match_scheduling_spec.rb @@ -0,0 +1,16 @@ +require "rails_helper" + +RSpec.describe Match, "scheduling scopes" do + let!(:club) do + Club.create!(name: "Sched Club", sport: "volleyball", primary_color: "#e53935", secondary_color: "#ffffff") + end + let!(:team) { club.teams.create!(name: "U16", sport: "volleyball") } + + it "scheduled_for_live esclude partite già passate oggi" do + past = team.matches.create!(opponent_name: "Past", scheduled_at: 2.hours.ago, sets_to_win: 3) + future = team.matches.create!(opponent_name: "Future", scheduled_at: 2.hours.from_now, sets_to_win: 3) + + expect(described_class.scheduled_for_live).to include(future) + expect(described_class.scheduled_for_live).not_to include(past) + end +end