@@ -6,6 +6,7 @@ package e2e
6
6
import (
7
7
"fmt"
8
8
"testing"
9
+ "time"
9
10
10
11
uitest "github.com/cppforlife/go-cli-ui/ui/test"
11
12
"github.com/stretchr/testify/require"
@@ -64,6 +65,43 @@ func TestPackageRepository(t *testing.T) {
64
65
kubectl .Run ([]string {"get" , "pkg/pkg.test.carvel.dev.2.0.0" })
65
66
})
66
67
68
+ logger .Section ("adding of existing repository" , func () {
69
+ start := time .Now ()
70
+ out := kappCtrl .Run ([]string {"package" , "repository" , "add" , "-r" , pkgrName , "--url" , pkgrURL })
71
+ elapsed := time .Since (start ).Seconds ()
72
+ require .Equal (t , elapsed < 5 , true , "Adding of existing package repository takes more than 5 seconds" )
73
+ require .Contains (t , out , "Fetch succeeded" )
74
+ require .Contains (t , out , "Template succeeded" )
75
+ require .Contains (t , out , "Deploy succeeded" )
76
+ require .Contains (t , out , "Succeeded" )
77
+ })
78
+
79
+ logger .Section ("adding of existing repository with new url" , func () {
80
+
81
+ _ , err := kappCtrl .RunWithOpts ([]string {"package" , "repository" , "add" , "-r" , pkgrName , "--url" , "https://carvel.dev" }, RunOpts {
82
+ AllowError : true ,
83
+ })
84
+ require .Error (t , err )
85
+
86
+ kubectl .Run ([]string {"get" , kind , pkgrName })
87
+
88
+ kappCtrl .Run ([]string {"package" , "repository" , "add" , "-r" , pkgrName , "--url" , pkgrURL })
89
+
90
+ out := kappCtrl .Run ([]string {"package" , "repository" , "get" , "-r" , pkgrName , "--json" })
91
+
92
+ output := uitest .JSONUIFromBytes (t , []byte (out ))
93
+
94
+ expectedOutputRows := []map [string ]string {{
95
+ "conditions" : "- type: ReconcileSucceeded\n status: \" True\" \n reason: \" \" \n message: \" \" " ,
96
+ "status" : "Reconcile succeeded" ,
97
+ "namespace" : env .Namespace ,
98
+ "name" : pkgrName ,
99
+ "source" : fmt .Sprintf ("(imgpkg) %s" , pkgrURL ),
100
+ "useful_error_message" : "" ,
101
+ }}
102
+ require .Exactly (t , expectedOutputRows , output .Tables [0 ].Rows )
103
+ })
104
+
67
105
logger .Section ("kicking a repository" , func () {
68
106
out := kappCtrl .Run ([]string {"package" , "repository" , "kick" , "-r" , pkgrName })
69
107
@@ -130,6 +168,18 @@ func TestPackageRepository(t *testing.T) {
130
168
require .Exactly (t , expectedOutputRows , output .Tables [0 ].Rows )
131
169
})
132
170
171
+ logger .Section ("updating a repository with no change in url" , func () {
172
+ start := time .Now ()
173
+ out := kappCtrl .Run ([]string {"package" , "repository" , "update" , "-r" , pkgrName , "--url" , pkgrURL })
174
+ elapsed := time .Since (start ).Seconds ()
175
+ require .Equal (t , elapsed < 5 , true , "Adding of existing package repository takes more than 5 seconds" )
176
+ require .Contains (t , out , "Fetch succeeded" )
177
+ require .Contains (t , out , "Template succeeded" )
178
+ require .Contains (t , out , "Deploy succeeded" )
179
+ require .Contains (t , out , "Succeeded" )
180
+
181
+ })
182
+
133
183
logger .Section ("creating a repository in a new namespace that doesn't exist" , func () {
134
184
kappCtrl .Run ([]string {"package" , "repository" , "add" , "-r" , pkgrName , "--url" , pkgrURL , "-n" , newRepoNamespace , "--create-namespace" })
135
185
0 commit comments