Aggiunge i18n IT/EN/FR/DE/ES, pagine pubbliche squadre e UX archivio.
Il selettore lingua funziona sul web e sulle app native; su Android la preferenza è persistita e applicata al riavvio. Incluse anche eliminazione replay a scope e campi pagina pubblica squadra. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -16,15 +16,21 @@ RSpec.describe Recordings::Delete do
|
||||
privacy_status: "public",
|
||||
expires_at: 10.days.from_now,
|
||||
storage_key: "teams/#{team.id}/sessions/#{session.id}/replay.mp4",
|
||||
youtube_video_id: "abc123xyz"
|
||||
youtube_video_id: "abc123xyz",
|
||||
youtube_published_at: Time.current
|
||||
)
|
||||
end
|
||||
|
||||
it "elimina storage e revoca youtube_video_id" do
|
||||
def stub_delete_deps
|
||||
storage = instance_double(Recordings::Storage, delete: true)
|
||||
allow(Recordings::Storage).to receive(:new).and_return(storage)
|
||||
yt = instance_double(Youtube::VideoLifecycleService, delete!: true)
|
||||
allow(Youtube::VideoLifecycleService).to receive(:new).with(recording).and_return(yt)
|
||||
[storage, yt]
|
||||
end
|
||||
|
||||
it "elimina storage e YouTube (scope both)" do
|
||||
storage, yt = stub_delete_deps
|
||||
|
||||
described_class.new(recording).call
|
||||
|
||||
@@ -35,4 +41,32 @@ RSpec.describe Recordings::Delete do
|
||||
expect(recording.youtube_video_id).to be_nil
|
||||
expect(recording.storage_key).to be_nil
|
||||
end
|
||||
|
||||
it "elimina solo dal sito lasciando YouTube" do
|
||||
storage, yt = stub_delete_deps
|
||||
|
||||
described_class.new(recording, scope: :site).call
|
||||
|
||||
expect(yt).not_to have_received(:delete!)
|
||||
expect(storage).to have_received(:delete).at_least(:once)
|
||||
recording.reload
|
||||
expect(recording.deleted_at).to be_present
|
||||
expect(recording.storage_key).to be_nil
|
||||
expect(recording.youtube_video_id).to eq("abc123xyz")
|
||||
end
|
||||
|
||||
it "elimina solo da YouTube lasciando il replay sul sito" do
|
||||
storage, yt = stub_delete_deps
|
||||
|
||||
described_class.new(recording, scope: :youtube).call
|
||||
|
||||
expect(yt).to have_received(:delete!)
|
||||
expect(storage).not_to have_received(:delete)
|
||||
recording.reload
|
||||
expect(recording.deleted_at).to be_nil
|
||||
expect(recording.status).to eq("ready")
|
||||
expect(recording.storage_key).to be_present
|
||||
expect(recording.youtube_video_id).to be_nil
|
||||
expect(recording.youtube_published_at).to be_nil
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user