diff --git a/Makefile b/Makefile index 689bd00..328e2ae 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: all swagger install postgres test test-ci mac \ +.PHONY: all swagger install postgres test test-ci mac reset \ docker docker-quiet docker-clean SWAG ?= go run github.com/swaggo/swag/cmd/swag@v1.16.4 @@ -14,6 +14,9 @@ all: swagger docker-build-native docker mac: swagger docker-build-run docker +reset: + $(COMPOSE) exec backend reset + swagger: $(SWAG) fmt $(SWAG) init -o docs -g cmds/serve.go -pdl 1 diff --git a/implements/bunDatabase.go b/implements/bunDatabase.go index c5f37a3..115e3b9 100644 --- a/implements/bunDatabase.go +++ b/implements/bunDatabase.go @@ -191,6 +191,7 @@ func (self *BunDatabase) UpdateAliases( if err != nil { return err } + _, err = tx.NewDelete(). Model((*models.AliasImage)(nil)). Where("image_id = ?", imageId). @@ -214,6 +215,14 @@ func (self *BunDatabase) UpdateAliases( return err } + _, err = tx.NewDelete(). + Model((*models.Alias)(nil)). + Where("NOT EXISTS (?)", tx.NewSelect(). + Model((*models.AliasImage)(nil)). + Where("alias.id = alias_image.alias_id"). + Limit(1)). + Exec(ctx) + return nil }) } diff --git a/tests/00_healthz_test.go b/tests/00_healthz_test.go index 99f2adb..70c0de5 100644 --- a/tests/00_healthz_test.go +++ b/tests/00_healthz_test.go @@ -13,7 +13,7 @@ var client *resty.Client func Test_00_Healthz(t *testing.T) { for i := 0; i < 10; i++ { resp, err := client.R(). - Get("http://localhost:8080/healthz") + Get("/healthz") if err == nil && resp.StatusCode() == http.StatusOK { return } @@ -24,4 +24,5 @@ func Test_00_Healthz(t *testing.T) { func init() { client = resty.New() + client.SetBaseURL("http://localhost:8080") } diff --git a/tests/03_putImageAliases_test.go b/tests/03_putImageAliases_test.go index 76ede60..6d6dca1 100644 --- a/tests/03_putImageAliases_test.go +++ b/tests/03_putImageAliases_test.go @@ -31,8 +31,7 @@ func Test_03_PutImageAliases(t *testing.T) { } resp, err := client.R(). SetBody(payload). - Put(fmt.Sprintf("http://localhost:8080/api/image/%d/aliases", - image.Id)) + 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") @@ -45,11 +44,24 @@ func Test_03_PutImageAliases(t *testing.T) { } resp, err := client.R(). SetBody(payload). - Put(fmt.Sprintf("http://localhost:8080/api/image/%d/aliases", - image.Id)) + 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.Fatal("alias should be deleted") + } + } }) }