@@ -13,35 +13,54 @@ import (
13
13
"gopkg.in/yaml.v2"
14
14
)
15
15
16
+ func gather (t * testing.T , dir string ) ([]string , []string , map [string ]string ) {
17
+ var (
18
+ overrides []string
19
+ settings []string
20
+ )
21
+ content , err := ioutil .ReadDir (dir )
22
+ assert .NilError (t , err , "unable to get app: %q" , dir )
23
+ // look for overrides and settings file to inject in the rendering process
24
+ for _ , f := range content {
25
+ split := strings .SplitN (f .Name (), "-" , 2 )
26
+ if split [0 ] == "settings" {
27
+ settings = append (settings , path .Join (dir , f .Name ()))
28
+ }
29
+ if split [0 ] == "override" {
30
+ overrides = append (overrides , path .Join (dir , f .Name ()))
31
+ }
32
+ }
33
+ // look for emulated command line env
34
+ env := make (map [string ]string )
35
+ if _ , err = os .Stat (path .Join (dir , "env.yml" )); err == nil {
36
+ envRaw , err := ioutil .ReadFile (path .Join (dir , "env.yml" ))
37
+ assert .NilError (t , err , "unable to read file" )
38
+ err = yaml .Unmarshal (envRaw , & env )
39
+ assert .NilError (t , err , "unable to unmarshal env" )
40
+ }
41
+ return settings , overrides , env
42
+ }
43
+
44
+ func checkResult (t * testing.T , result string , resultErr error , dir string ) {
45
+ if resultErr != nil {
46
+ ee := path .Join (dir , "expectedError.txt" )
47
+ if _ , err := os .Stat (ee ); err != nil {
48
+ assert .NilError (t , resultErr , "unexpected render error" )
49
+ }
50
+ expectedErr := readFile (t , ee )
51
+ assert .ErrorContains (t , resultErr , expectedErr )
52
+ } else {
53
+ expectedRender := readFile (t , path .Join (dir , "expected.txt" ))
54
+ assert .Equal (t , string (expectedRender ), result , "rendering missmatch" )
55
+ }
56
+ }
57
+
16
58
func TestRender (t * testing.T ) {
17
59
apps , err := ioutil .ReadDir ("render" )
18
60
assert .NilError (t , err , "unable to get apps" )
19
61
for _ , app := range apps {
20
62
t .Log ("testing" , app .Name ())
21
- var (
22
- overrides []string
23
- settings []string
24
- )
25
- content , err := ioutil .ReadDir (path .Join ("render" , app .Name ()))
26
- assert .NilError (t , err , "unable to get app: %q" , app .Name ())
27
- // look for overrides and settings file to inject in the rendering process
28
- for _ , f := range content {
29
- split := strings .SplitN (f .Name (), "-" , 2 )
30
- if split [0 ] == "settings" {
31
- settings = append (settings , path .Join ("render" , app .Name (), f .Name ()))
32
- }
33
- if split [0 ] == "override" {
34
- overrides = append (overrides , path .Join ("render" , app .Name (), f .Name ()))
35
- }
36
- }
37
- // look for emulated command line env
38
- env := make (map [string ]string )
39
- if _ , err = os .Stat (path .Join ("render" , app .Name (), "env.yml" )); err == nil {
40
- envRaw , err := ioutil .ReadFile (path .Join ("render" , app .Name (), "env.yml" ))
41
- assert .NilError (t , err , "unable to read file" )
42
- err = yaml .Unmarshal (envRaw , & env )
43
- assert .NilError (t , err , "unable to unmarshal env" )
44
- }
63
+ settings , overrides , env := gather (t , path .Join ("render" , app .Name ()))
45
64
// run the render
46
65
config , resultErr := renderer .Render (path .Join ("render" , app .Name ()), overrides , settings , env )
47
66
var result string
@@ -50,13 +69,7 @@ func TestRender(t *testing.T) {
50
69
bytes , resultErr = yaml .Marshal (config )
51
70
result = string (bytes )
52
71
}
53
- if resultErr != nil {
54
- expectedErr := readFile (t , path .Join ("render" , app .Name (), "expectedError.txt" ))
55
- assert .ErrorContains (t , resultErr , expectedErr )
56
- } else {
57
- expectedRender := readFile (t , path .Join ("render" , app .Name (), "expected.txt" ))
58
- assert .Equal (t , string (expectedRender ), result , "rendering missmatch" )
59
- }
72
+ checkResult (t , result , resultErr , path .Join ("render" , app .Name ()))
60
73
}
61
74
}
62
75
0 commit comments