-
Notifications
You must be signed in to change notification settings - Fork 1
/
transformer_test.go
60 lines (49 loc) · 1.25 KB
/
transformer_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package vcat
import (
"testing"
"github.com/stretchr/testify/require"
)
func TestTransformerReturnsRawVideoDetailShouldPass(t *testing.T) {
tests := []struct {
url string
}{
{
url: "https://www.youtube.com/watch?v=uyMtsyzXWd4",
},
{
url: "https://www.youtube.com/watch?v=709z-t7IiFw",
},
}
for _, tt := range tests {
body, err := do(httpclient, tt.url)
require.NoError(t, err)
output, err := getRawVideoDetailFromInitialHttpResponse(body)
require.NoError(t, err)
require.NotEmpty(t, output)
}
}
func TestTransformerGetsTranscriptFromURLShouldPass(t *testing.T) {
tests := []struct {
url string
}{
{
url: "https://www.youtube.com/watch?v=uyMtsyzXWd4",
},
{
url: "https://www.youtube.com/watch?v=709z-t7IiFw",
},
}
for _, tt := range tests {
rawb, err := do(httpclient, tt.url)
require.NoError(t, err)
rawv, err := getRawVideoDetailFromInitialHttpResponse(rawb)
require.NoError(t, err)
var transcriptUrl = rawv.captions.PlayerCaptionsTracklistRenderer.CaptionTracks[0].BaseUrl
body, err := do(httpclient, transcriptUrl)
require.NoError(t, err)
transcript, err := getTranscriptFromXMLResponse(body)
require.NoError(t, err)
require.NotEmpty(t, transcript)
require.NotEmpty(t, transcript.Text)
}
}