@@ -5,14 +5,16 @@ import (
5
5
"path/filepath"
6
6
"testing"
7
7
8
+ "github.com/stretchr/testify/assert"
8
9
"github.com/stretchr/testify/require"
9
10
)
10
11
11
12
func TestExportEnvironment (t * testing.T ) {
12
- tmpDir := t .TempDir ()
13
- runCmd (t , tmpDir , "tk" , "init" )
14
- runCmd (t , tmpDir , "tk" , "env" , "set" , "environments/default" , "--server=https://kubernetes:6443" )
15
- content := `
13
+ t .Run ("basic" , func (t * testing.T ) {
14
+ tmpDir := t .TempDir ()
15
+ runCmd (t , tmpDir , "tk" , "init" )
16
+ runCmd (t , tmpDir , "tk" , "env" , "set" , "environments/default" , "--server=https://kubernetes:6443" )
17
+ content := `
16
18
{
17
19
config: {
18
20
apiVersion: "v1",
@@ -24,7 +26,49 @@ func TestExportEnvironment(t *testing.T) {
24
26
},
25
27
}
26
28
`
27
- require .NoError (t , os .WriteFile (filepath .Join (tmpDir , "environments/default/main.jsonnet" ), []byte (content ), 0600 ))
28
- runCmd (t , tmpDir , "tk" , "export" , "export" , "environments/default" )
29
- require .FileExists (t , filepath .Join (tmpDir , "export/v1.ConfigMap-demo.yaml" ))
29
+ require .NoError (t , os .WriteFile (filepath .Join (tmpDir , "environments/default/main.jsonnet" ), []byte (content ), 0600 ))
30
+ runCmd (t , tmpDir , "tk" , "export" , "export" , "environments/default" )
31
+ require .FileExists (t , filepath .Join (tmpDir , "export/v1.ConfigMap-demo.yaml" ))
32
+ })
33
+
34
+ t .Run ("only-labeled" , func (t * testing.T ) {
35
+ tmpDir := t .TempDir ()
36
+ runCmd (t , tmpDir , "tk" , "init" , "--inline" )
37
+
38
+ // We have two environments stored here but we only want the one with
39
+ // the label "wanted" set to true:
40
+ content := `
41
+ {
42
+ environment(name):: {
43
+ apiVersion: 'tanka.dev/v1alpha1',
44
+ kind: 'Environment',
45
+ metadata: {
46
+ name: 'environment/%s' % (name),
47
+ labels: {
48
+ 'wanted': (if name == 'wanted' then 'true' else 'false'),
49
+ },
50
+ },
51
+ spec: {
52
+ namespace: 'test-%s' % (name),
53
+ inline: "true",
54
+ },
55
+ data: {
56
+ config: {
57
+ apiVersion: "v1",
58
+ kind: "ConfigMap",
59
+ metadata : {
60
+ name: "demo",
61
+ },
62
+ data: {},
63
+ },
64
+ },
65
+ },
66
+ envs: [$.environment('wanted'), $.environment('unwanted')],
67
+ }
68
+ `
69
+ require .NoError (t , os .WriteFile (filepath .Join (tmpDir , "environments/default/main.jsonnet" ), []byte (content ), 0600 ))
70
+ runCmd (t , tmpDir , "tk" , "export" , "--recursive" , "-l" , "wanted=true" , "--format" , "{{ .metadata.namespace }}/{{.apiVersion}}.{{.kind}}-{{or .metadata.name .metadata.generateName}}" , "export" , "environments/default" )
71
+ assert .FileExists (t , filepath .Join (tmpDir , "export/test-wanted/v1.ConfigMap-demo.yaml" ))
72
+ assert .NoFileExists (t , filepath .Join (tmpDir , "export/test-unwanted/v1.ConfigMap-demo-unwanted.yaml" ))
73
+ })
30
74
}
0 commit comments