diff --git a/internal/e2e/errors_test.go b/internal/e2e/errors_test.go new file mode 100644 index 000000000..1a255cadb --- /dev/null +++ b/internal/e2e/errors_test.go @@ -0,0 +1,71 @@ +package e2e + +import ( + "testing" + + "github.com/scaleway/scaleway-sdk-go/api/test/v1" + "github.com/scaleway/scaleway-sdk-go/internal/testhelpers" + "github.com/scaleway/scaleway-sdk-go/scw" +) + +func TestStandardErrors(t *testing.T) { + client, _, err := newE2EClient(true) + testhelpers.AssertNoError(t, err) + + _, err = client.GetHuman(&test.GetHumanRequest{ + HumanID: "b3ba839a-dcf2-4b0a-ac81-fc32370052a0", + }) + testhelpers.Equals(t, &scw.ResourceNotFound{ + Resource: "human", + ResourceID: "b3ba839a-dcf2-4b0a-ac81-fc32370052a0", + }, err) + + _, err = client.CreateHuman(&test.CreateHumanRequest{ + AltitudeInMeter: -7000000, + }) + testhelpers.Equals(t, &scw.InvalidArgumentsError{ + Details: []struct { + ArgumentName string `json:"argument_name"` + Reason string `json:"reason"` + HelpMessage string `json:"help_message"` + }{ + { + ArgumentName: "altitude_in_meter", + Reason: "constraint", + HelpMessage: "lowest altitude on earth is -6371km", + }, + }, + }, err) + + var human *test.Human + for i := 0; i < 10; i++ { + human, err = client.CreateHuman(&test.CreateHumanRequest{}) + testhelpers.AssertNoError(t, err) + } + + _, err = client.CreateHuman(&test.CreateHumanRequest{}) + testhelpers.Equals(t, &scw.QuotasExceededError{ + Details: []struct { + Resource string `json:"resource"` + Quota uint32 `json:"quota"` + Current uint32 `json:"current"` + }{ + { + Resource: "human", + Quota: 10, + Current: 10, + }, + }, + }, err) + + _, err = client.RunHuman(&test.RunHumanRequest{HumanID: human.ID}) + testhelpers.AssertNoError(t, err) + + _, err = client.UpdateHuman(&test.UpdateHumanRequest{HumanID: human.ID}) + testhelpers.Equals(t, &scw.TransientStateError{ + Resource: "human", + ResourceID: human.ID, + CurrentState: "running", + }, err) + +} diff --git a/internal/e2e/endtoend_test.go b/internal/e2e/human_test.go similarity index 96% rename from internal/e2e/endtoend_test.go rename to internal/e2e/human_test.go index df689fc28..830916018 100644 --- a/internal/e2e/endtoend_test.go +++ b/internal/e2e/human_test.go @@ -137,9 +137,4 @@ func TestHuman(t *testing.T) { }) testhelpers.AssertNoError(t, err) - // get - _, err = client.GetHuman(&test.GetHumanRequest{ - HumanID: human.ID, - }) - testhelpers.Equals(t, "scaleway-sdk-go: http error 404 Not Found: human not found", err.Error()) }