@@ -36,6 +36,68 @@ var _ = DevSpaceDescribe("sync", func() {
3636 framework .ExpectNoError (err )
3737 })
3838
39+ ginkgo .It ("devspace sync should override permissions on initial sync" , func () {
40+ tempDir , err := framework .CopyToTempDir ("tests/sync/testdata/permissions" )
41+ framework .ExpectNoError (err )
42+ defer framework .CleanupTempDir (initialDir , tempDir )
43+
44+ ns , err := kubeClient .CreateNamespace ("sync" )
45+ framework .ExpectNoError (err )
46+ defer func () {
47+ err := kubeClient .DeleteNamespace (ns )
48+ framework .ExpectNoError (err )
49+ }()
50+
51+ // create a new dev command
52+ deployCmd := & cmd.DeployCmd {
53+ GlobalFlags : & flags.GlobalFlags {
54+ NoWarn : true ,
55+ Namespace : ns ,
56+ },
57+ }
58+
59+ // run the command
60+ err = deployCmd .Run (f )
61+ framework .ExpectNoError (err )
62+
63+ // wait until busybox pod is reachable
64+ _ , err = kubeClient .ExecByImageSelector ("busybox" , ns , []string {"sh" , "-c" , "mkdir /test_sync && echo -n 'echo \" Hello World!\" ' > /test_sync/test.sh" })
65+ framework .ExpectNoError (err )
66+
67+ // run single sync
68+ syncCmd := & cmd.SyncCmd {
69+ GlobalFlags : & flags.GlobalFlags {
70+ NoWarn : true ,
71+ Namespace : ns ,
72+ Debug : true ,
73+ },
74+ ContainerPath : "/test_sync" ,
75+ NoWatch : true ,
76+ ImageSelector : "busybox" ,
77+ }
78+
79+ // run the command
80+ err = syncCmd .Run (f )
81+ framework .ExpectNoError (err )
82+
83+ // check if script is executable
84+ _ , err = kubeClient .ExecByImageSelector ("busybox" , ns , []string {"sh" , "-c" , "/test_sync/test.sh" })
85+ framework .ExpectError (err )
86+
87+ // make script executable
88+ err = os .Chmod ("test.sh" , 0755 )
89+ framework .ExpectNoError (err )
90+
91+ // rerun sync command
92+ err = syncCmd .Run (f )
93+ framework .ExpectNoError (err )
94+
95+ // make sure we got the right result this time
96+ out , err := kubeClient .ExecByImageSelector ("busybox" , ns , []string {"sh" , "-c" , "/test_sync/test.sh" })
97+ framework .ExpectNoError (err )
98+ framework .ExpectEqual (string (out ), "Hello World!\n " )
99+ })
100+
39101 ginkgo .It ("devspace sync should work with and without config" , func () {
40102 tempDir , err := framework .CopyToTempDir ("tests/sync/testdata/no-config" )
41103 framework .ExpectNoError (err )
0 commit comments