package tests import ( "fmt" "net/http" "strconv" "testing" ) type putImageAliasPayload struct { Aliases []string `json:"aliases"` } func Test_03_PutImageAliases(t *testing.T) { t.Run("Put one alias", func(t *testing.T) { payload := putImageAliasPayload{ Aliases: []string{"huh"}, } resp, err := client.R(). SetBody(payload). Put(fmt.Sprintf("/api/image/%d/aliases", image.Id)) if err != nil || resp.StatusCode() != http.StatusOK { t.Logf("%+v", resp) t.Fatal("failed to put image alias") } }) t.Run("Put many alias", func(t *testing.T) { payload := putImageAliasPayload{ Aliases: []string{"huh", "testalias1", "testalias2"}, } resp, err := client.R(). SetBody(payload). Put(fmt.Sprintf("/api/image/%d/aliases", image.Id)) if err != nil || resp.StatusCode() != http.StatusOK { t.Logf("%+v", resp) t.Fatal("failed to put image alias") } }) t.Run("Remove alias", func(t *testing.T) { payload := putImageAliasPayload{ Aliases: []string{"huh", "testalias1"}, } resp, err := client.R(). SetBody(payload). Put(fmt.Sprintf("/api/image/%d/aliases", image.Id)) if err != nil || resp.StatusCode() != http.StatusOK { t.Logf("%+v", resp) t.Fatal("failed to put image alias") } resp, err = client.R(). SetResult(&aliases). Get("/api/aliases") if err != nil || resp.StatusCode() != http.StatusOK { t.Logf("%+v", resp) t.Fatal("failed to get aliases") } for _, alias := range aliases { if alias.Name == "testalias2" { t.Logf("%+v", resp) resp, _ = client.R(). SetQueryParam("aliases", strconv.FormatInt(alias.Id, 10)). Get("/api/images") t.Logf("%+v", resp) t.Fatal("alias should be deleted") } } }) }