Skip to content

Commit c435d12

Browse files
committed
tests: fix dependency test
1 parent f7be36e commit c435d12

File tree

7 files changed

+93
-131
lines changed

7 files changed

+93
-131
lines changed

cmd/flags/flags.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,6 @@ func SetGlobalFlags(flags *flag.FlagSet) *GlobalFlags {
5555
flags.StringVar(&globalFlags.KubeContext, "kube-context", "", "The kubernetes context to use")
5656
flags.StringSliceVar(&globalFlags.Vars, "var", []string{}, "Variables to override during execution (e.g. --var=MYVAR=MYVALUE)")
5757

58-
flags.IntVar(&globalFlags.InactivityTimeout, "inactivity-timeout", 180, "Minutes the current user is inactive (no mouse or keyboard interaction) until DevSpace will exit automatically. 0 to disable. Only supported on windows and mac operating systems")
58+
flags.IntVar(&globalFlags.InactivityTimeout, "inactivity-timeout", 0, "Minutes the current user is inactive (no mouse or keyboard interaction) until DevSpace will exit automatically. 0 to disable. Only supported on windows and mac operating systems")
5959
return globalFlags
6060
}

e2e/tests/dependencies/dependencies.go

Lines changed: 81 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,12 @@ package dependencies
22

33
import (
44
"context"
5+
"github.com/loft-sh/devspace/pkg/devspace/kubectl/selector"
6+
corev1 "k8s.io/api/core/v1"
7+
"k8s.io/apimachinery/pkg/util/wait"
58
"os"
69
"path/filepath"
10+
"time"
711

812
"github.com/loft-sh/devspace/cmd"
913
"github.com/loft-sh/devspace/cmd/flags"
@@ -35,7 +39,6 @@ var _ = DevSpaceDescribe("dependencies", func() {
3539
})
3640

3741
ginkgo.It("should skip equal dependencies", func() {
38-
ginkgo.Skip("couldn't find pipeline")
3942
tempDir, err := framework.CopyToTempDir("tests/dependencies/testdata/overlapping")
4043
framework.ExpectNoError(err)
4144
defer framework.CleanupTempDir(initialDir, tempDir)
@@ -85,21 +88,6 @@ var _ = DevSpaceDescribe("dependencies", func() {
8588
framework.ExpectEqual(config.Path(), filepath.Join(tempDir, "devspace.yaml"))
8689
})
8790

88-
ginkgo.It("should resolve dependencies with dev configuration and hooks", func() {
89-
ginkgo.Skip("dependencies[*].dev.replacePods,dependencies[*].dev.sync and dependencies[*].dev.ports is not supported anymore in v6")
90-
tempDir, err := framework.CopyToTempDir("tests/dependencies/testdata/dev-sync")
91-
framework.ExpectNoError(err)
92-
defer framework.CleanupTempDir(initialDir, tempDir)
93-
94-
// load it from the regular path first
95-
_, dependencies, err := framework.LoadConfig(f, kubeClient.Client(), filepath.Join(tempDir, "devspace.yaml"))
96-
framework.ExpectNoError(err)
97-
98-
// check if dependencies were loaded correctly
99-
framework.ExpectEqual(len(dependencies), 1)
100-
framework.ExpectEqual(dependencies[0].Name(), "dep1")
101-
})
102-
10391
ginkgo.It("should resolve dependencies with local path and nested structure", func() {
10492
tempDir, err := framework.CopyToTempDir("tests/dependencies/testdata/nested")
10593
framework.ExpectNoError(err)
@@ -201,84 +189,85 @@ var _ = DevSpaceDescribe("dependencies", func() {
201189
framework.ExpectErrorMatch(err, "dependencies[nested].profiles and dependencies[nested].profile & dependencies[nested].profileParents cannot be used together")
202190
})
203191

204-
// ginkgo.It("should resolve dependencies with dependencies.dev.replacePods", func() {
205-
// ginkgo.Skip(" couldn't find pipeline")
206-
// fmt.Println("dependencies[*].dev.replacePods,dependencies[*].dev.sync and dependencies[*].dev.ports is not supported anymore in v6")
207-
// tempDir, err := framework.CopyToTempDir("tests/dependencies/testdata/dev-replacepods")
208-
// framework.ExpectNoError(err)
209-
// defer framework.CleanupTempDir(initialDir, tempDir)
210-
211-
// // load it from the regular path first
212-
// _, dependencies, err := framework.LoadConfig(f, kubeClient.Client(), filepath.Join(tempDir, "devspace.yaml"))
213-
// framework.ExpectNoError(err)
214-
215-
// // check if dependencies were loaded correctly
216-
// framework.ExpectEqual(len(dependencies), 1)
217-
// framework.ExpectEqual(dependencies[0].Name(), "dep")
218-
219-
// ns, err := kubeClient.CreateNamespace("dep-replacepods")
220-
// framework.ExpectNoError(err)
221-
// defer framework.ExpectDeleteNamespace(kubeClient, ns)
222-
223-
// // create a new dev command
224-
// devCmd := &cmd.DevCmd{
225-
// GlobalFlags: &flags.GlobalFlags{
226-
// NoWarn: true,
227-
// Namespace: ns,
228-
// },
229-
// Portforwarding: true,
230-
// Sync: true,
231-
// }
232-
// err = devCmd.Run(f, []string{"sh", "-c", "exit"})
233-
// framework.ExpectNoError(err)
234-
235-
// // check if replica set exists & pod got replaced correctly
236-
// list, err := kubeClient.Client().KubeClient().AppsV1().ReplicaSets(ns).List(context.TODO(), metav1.ListOptions{LabelSelector: podreplace.ReplicaSetLabel + "=true"})
237-
// framework.ExpectNoError(err)
238-
// framework.ExpectEqual(len(list.Items), 1)
239-
240-
// // wait until a pod has started
241-
// var pods *corev1.PodList
242-
// err = wait.Poll(time.Second, time.Minute, func() (done bool, err error) {
243-
// pods, err = kubeClient.RawClient().CoreV1().Pods(ns).List(context.TODO(), metav1.ListOptions{LabelSelector: selector.ReplacedLabel})
244-
// if err != nil {
245-
// return false, err
246-
// }
247-
248-
// return len(pods.Items) == 1, nil
249-
// })
250-
// framework.ExpectNoError(err)
251-
// framework.ExpectEqual(pods.Items[0].Spec.Containers[0].Image, "alpine:latest")
252-
253-
// // now purge the deployment, dependency and make sure the replica set is deleted as well
254-
// purgeCmd := &cmd.PurgeCmd{
255-
// GlobalFlags: &flags.GlobalFlags{
256-
// NoWarn: true,
257-
// Namespace: ns,
258-
// },
259-
// All: true,
260-
// }
261-
// err = purgeCmd.Run(f)
262-
// framework.ExpectNoError(err)
263-
264-
// // wait until all pods are killed
265-
// err = wait.Poll(time.Second, time.Minute, func() (done bool, err error) {
266-
// pods, err = kubeClient.RawClient().CoreV1().Pods(ns).List(context.TODO(), metav1.ListOptions{LabelSelector: selector.ReplacedLabel})
267-
// if err != nil {
268-
// return false, err
269-
// }
270-
// return len(pods.Items) == 0, nil
271-
// })
272-
// framework.ExpectNoError(err)
273-
274-
// // make sure no replaced replica set exists anymore
275-
// list, err = kubeClient.Client().KubeClient().AppsV1().ReplicaSets(ns).List(context.TODO(), metav1.ListOptions{LabelSelector: podreplace.ReplicaSetLabel + "=true"})
276-
// framework.ExpectNoError(err)
277-
// framework.ExpectEqual(len(list.Items), 0)
278-
// })
192+
ginkgo.It("should resolve dependencies with dependencies replacePods", func() {
193+
tempDir, err := framework.CopyToTempDir("tests/dependencies/testdata/dev-replacepods")
194+
framework.ExpectNoError(err)
195+
defer framework.CleanupTempDir(initialDir, tempDir)
196+
197+
// load it from the regular path first
198+
_, dependencies, err := framework.LoadConfig(f, kubeClient.Client(), filepath.Join(tempDir, "devspace.yaml"))
199+
framework.ExpectNoError(err)
200+
201+
// check if dependencies were loaded correctly
202+
framework.ExpectEqual(len(dependencies), 1)
203+
framework.ExpectEqual(dependencies[0].Name(), "dep")
204+
205+
ns, err := kubeClient.CreateNamespace("dep-replacepods")
206+
framework.ExpectNoError(err)
207+
defer framework.ExpectDeleteNamespace(kubeClient, ns)
208+
209+
// create a new dev command
210+
cancelCtx, cancel := context.WithCancel(context.Background())
211+
defer cancel()
212+
devCmd := &cmd.DevCmd{
213+
GlobalFlags: &flags.GlobalFlags{
214+
NoWarn: true,
215+
Namespace: ns,
216+
},
217+
Portforwarding: true,
218+
Sync: true,
219+
Ctx: cancelCtx,
220+
}
221+
err = devCmd.Run(f)
222+
framework.ExpectNoError(err)
223+
cancel()
224+
225+
// check if replica set exists & pod got replaced correctly
226+
list, err := kubeClient.Client().KubeClient().AppsV1().Deployments(ns).List(context.TODO(), metav1.ListOptions{LabelSelector: selector.ReplacedLabel + "=true"})
227+
framework.ExpectNoError(err)
228+
framework.ExpectEqual(len(list.Items), 1)
229+
230+
// wait until a pod has started
231+
var pods *corev1.PodList
232+
err = wait.Poll(time.Second, time.Minute, func() (done bool, err error) {
233+
pods, err = kubeClient.RawClient().CoreV1().Pods(ns).List(context.TODO(), metav1.ListOptions{LabelSelector: selector.ReplacedLabel})
234+
if err != nil {
235+
return false, err
236+
}
237+
238+
return len(pods.Items) == 1, nil
239+
})
240+
framework.ExpectNoError(err)
241+
framework.ExpectEqual(pods.Items[0].Spec.Containers[0].Image, "alpine:latest")
242+
243+
// now purge the deployment, dependency and make sure the replica set is deleted as well
244+
purgeCmd := &cmd.PurgeCmd{
245+
GlobalFlags: &flags.GlobalFlags{
246+
NoWarn: true,
247+
Namespace: ns,
248+
},
249+
All: true,
250+
}
251+
err = purgeCmd.Run(f)
252+
framework.ExpectNoError(err)
253+
254+
// wait until all pods are killed
255+
err = wait.Poll(time.Second, time.Minute, func() (done bool, err error) {
256+
pods, err = kubeClient.RawClient().CoreV1().Pods(ns).List(context.TODO(), metav1.ListOptions{LabelSelector: selector.ReplacedLabel})
257+
if err != nil {
258+
return false, err
259+
}
260+
return len(pods.Items) == 0, nil
261+
})
262+
framework.ExpectNoError(err)
263+
264+
// make sure no replaced replica set exists anymore
265+
list, err = kubeClient.Client().KubeClient().AppsV1().Deployments(ns).List(context.TODO(), metav1.ListOptions{LabelSelector: selector.ReplacedLabel + "=true"})
266+
framework.ExpectNoError(err)
267+
framework.ExpectEqual(len(list.Items), 0)
268+
})
279269

280270
ginkgo.It("should resolve cyclic dependencies", func() {
281-
ginkgo.Skip(" dependencies[*].dev.replacePods,dependencies[*].dev.sync and dependencies[*].dev.ports is not supported anymore in v6")
282271
tempDir, err := framework.CopyToTempDir("tests/dependencies/testdata/cyclic")
283272
framework.ExpectNoError(err)
284273
defer framework.CleanupTempDir(initialDir, tempDir)
@@ -290,6 +279,5 @@ var _ = DevSpaceDescribe("dependencies", func() {
290279
// check if dependencies were loaded correctly
291280
framework.ExpectEqual(len(dependencies), 1)
292281
framework.ExpectEqual(dependencies[0].Name(), "dependency")
293-
294282
})
295283
})

e2e/tests/dependencies/testdata/cyclic/devspace.yaml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@ dependencies:
33
- name: dependency
44
source:
55
path: dependency
6-
# Use dev.ports config from dependency2
7-
dev:
8-
ports: true
96
dev:
107
# Open terminal to the pod with the imageName created in dependency1
118
terminal:
Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1-
version: v1beta11
1+
version: v2beta1
2+
23
dev:
34
terminal:
45
imageSelector: username/app
6+
terminal:
7+
command: "sh -c 'exit 0'"
8+
disableReplace: true
9+
510
dependencies:
6-
- name: dep
7-
source:
8-
path: dep.yaml
9-
dev:
10-
replacePods: true
11+
dep:
12+
path: dep.yaml
13+
pipeline: dev
14+
15+

e2e/tests/dependencies/testdata/dev-sync/dep1.yaml

Lines changed: 0 additions & 14 deletions
This file was deleted.

e2e/tests/dependencies/testdata/dev-sync/dep2.yaml

Lines changed: 0 additions & 1 deletion
This file was deleted.

e2e/tests/dependencies/testdata/dev-sync/devspace.yaml

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)