74 lines
1.7 KiB
Go
74 lines
1.7 KiB
Go
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")
|
|
}
|
|
}
|
|
})
|
|
}
|