package endpoints import ( "git.dragse.it/anthrove/e621-to-graph/pkg/e621/model" "github.com/jarcoal/httpmock" "net/http" "testing" ) func TestGetPool(t *testing.T) { httpmock.Activate() defer httpmock.DeactivateAndReset() poolResponse := model.Pool{ ID: 36957, Name: "MLP:His_Nocturnal_Excellency", CreatedAt: "2023-10-13T19:24:00.576-04:00", UpdatedAt: "2023-10-19T07:46:00.267-04:00", CreatorID: 16883, Description: "Two (un)lucky royal guards who saw something they didn’t have to~", IsActive: true, Category: "series", PostIDS: nil, CreatorName: "2DUK", PostCount: 11, } jsonResponser, err := httpmock.NewJsonResponder(200, poolResponse) if err != nil { t.Error(err) return } httpmock.RegisterResponder("GET", "https://e621.net/pools/36957.json", jsonResponser) requestContext := model.RequestContext{ Client: http.Client{}, Host: "https://e621.net", UserAgent: "Go-e621-SDK (@username)", Username: "memo", APIKey: "123456", } pool, err := GetPool(requestContext, "36957") if err != nil { t.Error(err) return } if pool.ID == poolResponse.ID && pool.Name == poolResponse.Name { return } t.Errorf("Respons did not match mock data:\nOriginal: %v\nMock: %v", pool, poolResponse) } func TestGetPools(t *testing.T) { httpmock.Activate() defer httpmock.DeactivateAndReset() poolResponse := []model.Pool{ { ID: 36957, Name: "MLP:His_Nocturnal_Excellency", CreatedAt: "2023-10-13T19:24:00.576-04:00", UpdatedAt: "2023-10-19T07:46:00.267-04:00", CreatorID: 16883, Description: "Two (un)lucky royal guards who saw something they didn’t have to~", IsActive: true, Category: "series", PostIDS: nil, CreatorName: "2DUK", PostCount: 11, }, { ID: 5772, Name: "MLP:His_Nocturnal_Excellency", CreatedAt: "2023-10-13T19:24:00.576-04:00", UpdatedAt: "2023-10-19T07:46:00.267-04:00", CreatorID: 16883, Description: "Two (un)lucky royal guards who saw something they didn’t have to~", IsActive: true, Category: "series", PostIDS: nil, CreatorName: "2DUK", PostCount: 11, }, { ID: 453687, Name: "MLP:His_Nocturnal_Excellency", CreatedAt: "2023-10-13T19:24:00.576-04:00", UpdatedAt: "2023-10-19T07:46:00.267-04:00", CreatorID: 16883, Description: "Two (un)lucky royal guards who saw something they didn’t have to~", IsActive: true, Category: "series", PostIDS: nil, CreatorName: "2DUK", PostCount: 11, }, { ID: 3456876, Name: "MLP:His_Nocturnal_Excellency", CreatedAt: "2023-10-13T19:24:00.576-04:00", UpdatedAt: "2023-10-19T07:46:00.267-04:00", CreatorID: 16883, Description: "Two (un)lucky royal guards who saw something they didn’t have to~", IsActive: true, Category: "series", PostIDS: nil, CreatorName: "2DUK", PostCount: 11, }, } jsonResponser, err := httpmock.NewJsonResponder(200, poolResponse) if err != nil { t.Error(err) return } httpmock.RegisterResponder("GET", "https://e621.net/pools.json", jsonResponser) requestContext := model.RequestContext{ Client: http.Client{}, Host: "https://e621.net", UserAgent: "Go-e621-SDK (@username)", Username: "memo", APIKey: "123456", } pools, err := GetPools(requestContext, map[string]string{}) if err != nil { t.Error(err) return } if len(pools) == 4 && pools[0].ID == poolResponse[0].ID && pools[1].Name == poolResponse[1].Name && pools[2].UpdatedAt == poolResponse[2].UpdatedAt { return } t.Errorf("Respons did not match mock data:\nOriginal: %v\nMock: %v", pools, poolResponse) }