Something went wrong. Try again.
This repository has no description
Something went wrong. Try again.
1.5 kB · 72 lines
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273package rtcrec
import ( "io" "os" "testing" "time"
"github.com/fxamacker/cbor/v2" "github.com/stretchr/testify/require")
func TestWebRTCRecording(t *testing.T) { // Create a temporary file for testing tmpfile, err := os.CreateTemp("", "webrtc-recording-test-*") require.NoError(t, err)
// Create recorder stream writing to temp file recorder, err := MakeWebRTCEncoder(tmpfile) require.NoError(t, err)
// Test recording an offer event offerEvent := WebRTCEvent{ Offer: &Offer{ SDPOffer: "test-offer", }, Time: time.Now().UTC(), } recorder.Event(offerEvent)
// Test recording an answer event answerEvent := WebRTCEvent{ CreateAnswer: &CreateAnswer{ SDPAnswer: "test-answer", }, Time: time.Now().UTC(), } recorder.Event(answerEvent)
// err = recorder.Close() // require.NoError(t, err) err = tmpfile.Close() require.NoError(t, err)
tmpfile, err = os.Open(tmpfile.Name()) require.NoError(t, err) defer tmpfile.Close()
dec := cbor.NewDecoder(tmpfile)
evs := []WebRTCEvent{} err = nil for err == nil { var ev WebRTCEvent err = dec.Decode(&ev) if err == nil { evs = append(evs, ev) } }
require.ErrorIs(t, err, io.EOF)
off, ok := evs[0].Detail().(*Offer) require.True(t, ok) ans, ok := evs[1].Detail().(*CreateAnswer) require.True(t, ok)
require.Equal(t, 2, len(evs)) require.Equal(t, off.SDPOffer, offerEvent.Offer.SDPOffer) require.Equal(t, ans.SDPAnswer, answerEvent.CreateAnswer.SDPAnswer)
}