Aggiunge bitrate adattivo con qualità minima da regia e telemetria del telefono.
L'encoder scende in congestione e risale piano; la regia imposta il pavimento, mostra lo stato del telefono e apre il selettore dal bitrate colorato. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
require "rails_helper"
|
||||
|
||||
RSpec.describe "Public regia", type: :request do
|
||||
let!(:user) { User.create!(email: "regia@test.it", name: "U", password: "password123", role: "coach") }
|
||||
let!(:user) { User.create!(email: "regia@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") }
|
||||
@@ -12,7 +12,18 @@ RSpec.describe "Public regia", type: :request do
|
||||
get public_regia_path(token)
|
||||
expect(response).to have_http_status(:ok)
|
||||
expect(response.body).to include("Condividi diretta")
|
||||
expect(response.body).to include("Copia live")
|
||||
expect(response.body).to include("Condividi link regia")
|
||||
expect(response.body).to include("Copia regia")
|
||||
expect(response.body).to include(">Diretta<")
|
||||
expect(response.body).to include(">Regia<")
|
||||
expect(response.body).to include("regia-tool-group")
|
||||
expect(response.body).to include("Nascondi anteprima")
|
||||
expect(response.body).to include('id="btn-pause"')
|
||||
expect(response.body).to include('id="btn-stop"')
|
||||
expect(response.body).to include("Qualità minima di trasmissione")
|
||||
expect(response.body).to include('id="tel-bitrate"')
|
||||
expect(response.body).to include('aria-controls="regia-quality"')
|
||||
expect(response.body).to include("/live/#{session.id}")
|
||||
expect(response.body).not_to include("Aruba")
|
||||
end
|
||||
@@ -156,4 +167,39 @@ RSpec.describe "Public regia", type: :request do
|
||||
get public_regia_path(token)
|
||||
expect(response).to have_http_status(:ok)
|
||||
end
|
||||
|
||||
it "aggiorna la qualità minima di trasmissione" do
|
||||
token = Sessions::RegiaAccess.new(session).issue_token!
|
||||
patch public_regia_min_quality_path(token), params: { min_quality_preset: "720p_30_1.5mbps" }
|
||||
expect(response).to have_http_status(:ok)
|
||||
expect(session.reload.min_quality_preset).to eq("720p_30_1.5mbps")
|
||||
json = JSON.parse(response.body)
|
||||
expect(json["min_quality_preset"]).to eq("720p_30_1.5mbps")
|
||||
end
|
||||
|
||||
it "espone la telemetria della camera nello status" do
|
||||
session.device_states.create!(
|
||||
device_role: "camera",
|
||||
battery_level: 81,
|
||||
network_type: "WiFi",
|
||||
current_bitrate: 2_400_000,
|
||||
target_bitrate: 4_500_000,
|
||||
fps: 30,
|
||||
thermal_state: "nominal",
|
||||
last_seen_at: Time.current
|
||||
)
|
||||
token = Sessions::RegiaAccess.new(session).issue_token!
|
||||
get public_regia_path(token)
|
||||
expect(response.body).to include('id="regia-telemetry"')
|
||||
|
||||
get public_regia_status_path(token)
|
||||
expect(response).to have_http_status(:ok)
|
||||
tel = response.parsed_body["telemetry"]
|
||||
expect(tel["battery"]).to eq(81)
|
||||
expect(tel["network"]).to eq("WiFi")
|
||||
expect(tel["fps"]).to eq(30)
|
||||
expect(tel["bitrate"]).to eq(2_400_000)
|
||||
expect(tel["thermal_state"]).to eq("nominal")
|
||||
expect(tel).to have_key("publisher_online")
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user