You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
1.1 KiB
Go

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)
}