package endpoints import ( "git.dragse.it/anthrove/e621-sdk-go/pkg/e621/model" "github.com/jarcoal/httpmock" "net/http" "testing" ) func TestGetPost(t *testing.T) { httpmock.Activate() defer httpmock.DeactivateAndReset() data, err := loadJsonTestData[model.Post]("../../../tests/post.json") if err != nil { t.Error(err) return } response := model.PostResponse{ Post: data, Posts: nil, } responder, err := httpmock.NewJsonResponder(200, response) if err != nil { t.Error(err) return } httpmock.RegisterResponder("GET", "https://e621.net/posts/1337.json", responder) requestContext := model.RequestContext{ Client: http.Client{}, Host: "https://e621.net", UserAgent: "Go-e621-SDK (@username)", Username: "memo", APIKey: "123456", } post, err := GetPost(requestContext, "1337") if err != nil { t.Error(err) return } if post.ID == response.Post.ID && post.File.URL == response.Post.File.URL { return } t.Errorf("Respons did not match mock data:\nOriginal: %v\nMock: %v", post, response) } func TestGetPosts(t *testing.T) { httpmock.Activate() defer httpmock.DeactivateAndReset() response, err := loadJsonTestData[model.PostResponse]("../../../tests/posts.json") if err != nil { t.Error(err) return } responder, err := httpmock.NewJsonResponder(200, response) if err != nil { t.Error(err) return } httpmock.RegisterResponder("GET", "https://e621.net/posts.json", responder) requestContext := model.RequestContext{ Client: http.Client{}, Host: "https://e621.net", UserAgent: "Go-e621-SDK (@username)", Username: "memo", APIKey: "123456", } posts, err := GetPosts(requestContext, map[string]string{}) if err != nil { t.Error(err) return } if posts[0].ID == response.Posts[0].ID && posts[1].File.Md5 == response.Posts[1].File.Md5 && posts[2].File.EXT == response.Posts[2].File.EXT { return } t.Errorf("Respons did not match mock data:\nOriginal: %v\nMock: %v", posts, response) }