|
|
@@ -1,8 +1,10 @@
|
|
|
package gorm_test
|
|
|
|
|
|
import (
|
|
|
+ "fmt"
|
|
|
"testing"
|
|
|
|
|
|
+ "github.com/go-test/deep"
|
|
|
"github.com/porter-dev/porter/internal/models"
|
|
|
orm "gorm.io/gorm"
|
|
|
)
|
|
|
@@ -55,6 +57,62 @@ func TestCreateRelease(t *testing.T) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+func TestListReleasesByImageRepoURI(t *testing.T) {
|
|
|
+ tester := &tester{
|
|
|
+ dbFileName: "./porter_list_releases.db",
|
|
|
+ }
|
|
|
+
|
|
|
+ setupTestEnv(tester, t)
|
|
|
+ defer cleanup(tester, t)
|
|
|
+
|
|
|
+ imageRepoURIs := []string{
|
|
|
+ "uri1",
|
|
|
+ "uri2",
|
|
|
+ "uri3",
|
|
|
+ "uri1",
|
|
|
+ "uri1",
|
|
|
+ }
|
|
|
+
|
|
|
+ releases := make([]*models.Release, 0)
|
|
|
+
|
|
|
+ for i, uri := range imageRepoURIs {
|
|
|
+ release := &models.Release{
|
|
|
+ Name: fmt.Sprintf("denver-meister-dakota-%d", i),
|
|
|
+ Namespace: "default",
|
|
|
+ ProjectID: 1,
|
|
|
+ ClusterID: 1,
|
|
|
+ WebhookToken: fmt.Sprintf("abcdefgh-%d", i),
|
|
|
+ ImageRepoURI: uri,
|
|
|
+ }
|
|
|
+
|
|
|
+ release, err := tester.repo.Release.CreateRelease(release)
|
|
|
+
|
|
|
+ if err != nil {
|
|
|
+ t.Fatalf("%v\n", err)
|
|
|
+ }
|
|
|
+
|
|
|
+ if uri == "uri1" {
|
|
|
+ releases = append(releases, release)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ resReleases, err := tester.repo.Release.ListReleasesByImageRepoURI(1, "uri1")
|
|
|
+
|
|
|
+ if err != nil {
|
|
|
+ t.Fatalf("%v\n", err)
|
|
|
+ }
|
|
|
+
|
|
|
+ // make sure resulting arrays match
|
|
|
+ if len(resReleases) != 3 {
|
|
|
+ t.Fatalf("length of resulting release list not 3")
|
|
|
+ }
|
|
|
+
|
|
|
+ if diff := deep.Equal(releases, resReleases); diff != nil {
|
|
|
+ t.Errorf("release entry not equal:")
|
|
|
+ t.Error(diff)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
func TestDeleteRelease(t *testing.T) {
|
|
|
tester := &tester{
|
|
|
dbFileName: "./porter_delete_release.db",
|