require "rails_helper" RSpec.describe Sessions::SetMinQuality do let!(:user) { User.create!(email: "abr@test.it", name: "U", password: "Password123", role: "coach") } let!(:club) { Club.create!(name: "C", sport: "volleyball", primary_color: "#e53935", secondary_color: "#ffffff") } let!(:team) { club.teams.create!(name: "T", sport: "volleyball") } let!(:match) { team.matches.create!(opponent_name: "Opp", sport: "volleyball") } let!(:session) do StreamSession.create!( match: match, user: user, platform: "matchlivetv", status: "live", quality_preset: "720p_30_2.5mbps" ) end it "salva il pavimento e notifica i client" do expect(SessionChannel).to receive(:broadcast_message).with( session, hash_including(action: "set_min_quality", min_quality_preset: "720p_30_1.5mbps") ) described_class.new(session, preset: "720p_30_1.5mbps").call expect(session.reload.min_quality_preset).to eq("720p_30_1.5mbps") expect(session.stream_events.where(event_type: "quality_changed")).to exist end it "rifiuta 1080p se la sessione è 720p" do expect { described_class.new(session, preset: "1080p_30_4.5mbps").call }.to raise_error(ArgumentError) end it "accetta auto come qualità minima" do session.update!(min_quality_preset: "720p_30_1.5mbps") described_class.new(session, preset: "auto").call expect(session.reload.min_quality_preset).to eq("auto") end end