package shrty import ( "testing" "github.com/stretchr/testify/assert" "net/http/httptest" "net/http" "time" ) func TestCheckURL(t *testing.T) { data := Data{ URL: "https://t.co/kA45uWnKkg", } expected := Data{ URL: "https://t.co/kA45uWnKkg", URLFetched: "https://www.youtube.com/watch?v=Qg0pO9VG1J8&utm_content=buffera4269&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer", OriginalURL: "https://www.youtube.com/watch?v=Qg0pO9VG1J8&utm_content=buffera4269&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer", HTTPStatusCode: 200, Domain: "www.youtube.com", } err := CheckURL(&data) assert.NoError(t, err) assert.Equal(t, expected, data) } func TestCheckURL2(t *testing.T) { svr := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { time.Sleep(time.Second * 20) })) defer svr.Close() data := Data{ URL: svr.URL, } expected := Data{ URL: svr.URL, URLFetched: svr.URL, HTTPStatusCode: http.StatusGatewayTimeout, } err := CheckURL(&data) assert.NoError(t, err) assert.Equal(t, expected, data) }