@@ -2,7 +2,10 @@ package dependencies
22
33import (
44 "context"
5+ "github.com/loft-sh/devspace/pkg/devspace/config/versions/latest"
6+ dependencyutil "github.com/loft-sh/devspace/pkg/devspace/dependency/util"
57 "github.com/loft-sh/devspace/pkg/devspace/kubectl/selector"
8+ "io/ioutil"
69 corev1 "k8s.io/api/core/v1"
710 "k8s.io/apimachinery/pkg/util/wait"
811 "os"
@@ -38,6 +41,67 @@ var _ = DevSpaceDescribe("dependencies", func() {
3841 kubeClient , err = kube .NewKubeHelper ()
3942 })
4043
44+ ginkgo .It ("should deploy git dependency" , func () {
45+ tempDir , err := framework .CopyToTempDir ("tests/dependencies/testdata/git" )
46+ framework .ExpectNoError (err )
47+ defer framework .CleanupTempDir (initialDir , tempDir )
48+
49+ ns , err := kubeClient .CreateNamespace ("dependencies" )
50+ framework .ExpectNoError (err )
51+ defer func () {
52+ err := kubeClient .DeleteNamespace (ns )
53+ framework .ExpectNoError (err )
54+ }()
55+
56+ // create a new dev command and start it
57+ done := make (chan error )
58+ cancelCtx , cancel := context .WithCancel (context .Background ())
59+ defer cancel ()
60+ go func () {
61+ devCmd := & cmd.DevCmd {
62+ GlobalFlags : & flags.GlobalFlags {
63+ NoWarn : true ,
64+ Namespace : ns ,
65+ },
66+ Ctx : cancelCtx ,
67+ }
68+ err := devCmd .Run (f )
69+ if err != nil {
70+ f .GetLog ().Errorf ("error: %v" , err )
71+ }
72+ done <- err
73+ }()
74+
75+ // make sure the dependencies are correctly deployed
76+ id , err := dependencyutil .GetDependencyID (& latest.SourceConfig {
77+ Git : "https://github.com/loft-sh/e2e-test-dependency.git" ,
78+ })
79+ framework .ExpectNoError (err )
80+
81+ // calculate dependency path
82+ dependencyPath := filepath .Join (dependencyutil .DependencyFolderPath , id )
83+
84+ // wait until file is there
85+ framework .ExpectLocalFileContents ("imports.txt" , "Test-dep-test\n " )
86+ framework .ExpectLocalFileContents (filepath .Join (dependencyPath , "dependency-dev.txt" ), "Hello I am dependency\n " )
87+ framework .ExpectLocalFileContents (filepath .Join (dependencyPath , "dependency-deploy.txt" ), "Hello I am dependency-deploy\n " )
88+ framework .ExpectLocalFileContents ("dependency.txt" , "Hello again I am dependency-deploy\n " )
89+
90+ // expect remote file
91+ framework .ExpectRemoteFileContents ("alpine" , ns , "/app/test.txt" , "dependency123" )
92+
93+ // now check if sync is still working
94+ err = ioutil .WriteFile (filepath .Join (dependencyPath , "test123.txt" ), []byte ("test123" ), 0777 )
95+ framework .ExpectNoError (err )
96+
97+ // now check if file gets synced
98+ framework .ExpectRemoteFileContents ("alpine" , ns , "/app/test123.txt" , "test123" )
99+
100+ cancel ()
101+ err = <- done
102+ framework .ExpectNoError (err )
103+ })
104+
41105 ginkgo .It ("should skip equal dependencies" , func () {
42106 tempDir , err := framework .CopyToTempDir ("tests/dependencies/testdata/overlapping" )
43107 framework .ExpectNoError (err )
0 commit comments