package api import ( "context" "encoding/json" "net/http" "net/http/httptest" "os" "testing" "crypto-miner-server/internal/erasure" ) type okStore struct{} func (okStore) PutShard(context.Context, string, string, []byte) error { return nil } func (okStore) HeadBucket(context.Context, string) error { return nil } func TestErasureSwarmPostTestOK(t *testing.T) { os.Setenv("AF_AWS_ACCESS_KEY_ID", "A") os.Setenv("AF_AWS_SECRET_ACCESS_KEY", "s") defer os.Unsetenv("AF_AWS_ACCESS_KEY_ID") defer os.Unsetenv("AF_AWS_SECRET_ACCESS_KEY") h := NewErasureSwarmHandler(func() erasure.AWSSwarmSettings { return erasure.AWSSwarmSettings{S3Bucket: "b", CloudFrontDomain: "d.cf.net"} }, func() erasure.ShardObjectStore { return okStore{} }) rec := httptest.NewRecorder() h.PostTest(rec, httptest.NewRequest(http.MethodPost, "/", nil)) var body erasureSwarmTestResponse _ = json.NewDecoder(rec.Body).Decode(&body) if !body.OK { t.Fatalf("%+v", body) } }