Files
top-wallpaper/reddit/client_test.go
Ron Rise e16bcc1780
All checks were successful
🚨 Test Code Base / 🔍 🐹 Go Tests (push) Successful in 1m9s
🚨 Test Code Base / 🧹 Lint (push) Successful in 1m22s
🏗️✨ Build Workflow / 🖥️ 🔨 Build (push) Successful in 4m6s
Simplify httpGet function in client_test.go for cleaner code
2026-01-21 21:48:00 -05:00

67 lines
1.3 KiB
Go

package reddit
import (
"net/http"
"net/http/httptest"
"strings"
"testing"
)
func TestGetLatestImage(t *testing.T) {
// Mock Reddit API response
mockResponse := `{
"kind": "Listing",
"data": {
"after": null,
"dist": 1,
"modhash": "",
"geo_filter": "",
"children": [
{
"kind": "t3",
"data": {
"url_overridden_by_dest": "https://example.com/gallery",
"media_metadata": {},
"preview": {}
}
},
{
"kind": "t3",
"data": {
"url_overridden_by_dest": "https://example.com/image.jpg",
"media_metadata": {},
"preview": {}
}
}
]
}
}`
// Create a test server
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if strings.Contains(r.URL.Path, "/r/wallpaper/.json") {
w.WriteHeader(http.StatusOK)
_, _ = w.Write([]byte(mockResponse))
} else {
w.WriteHeader(http.StatusNotFound)
}
}))
defer server.Close()
// Custom httpGet function for testing
httpGet := func() (*http.Response, error) {
return http.Get(server.URL + "/r/wallpaper/.json")
}
// Test the function
imageURL, err := GetLatestImage(httpGet)
if err != nil {
t.Fatalf("expected no error, got %v", err)
}
expectedURL := "https://example.com/image.jpg"
if imageURL != expectedURL {
t.Errorf("expected %s, got %s", expectedURL, imageURL)
}
}