@@ -3,9 +3,18 @@ package digger
33import (
44 "log"
55 "os"
6+ "path"
67 "testing"
8+
9+ "github.com/stretchr/testify/assert"
710)
8- import "github.com/stretchr/testify/assert"
11+
12+ func setUp () (string , func ()) {
13+ tempDir := createTempDir ()
14+ return tempDir , func () {
15+ deleteTempDir (tempDir )
16+ }
17+ }
918
1019func TestDiggerConfigFileDoesNotExist (t * testing.T ) {
1120 dg , err := NewDiggerConfig ("" )
@@ -14,16 +23,59 @@ func TestDiggerConfigFileDoesNotExist(t *testing.T) {
1423 assert .Equal (t , dg .Projects [0 ].Dir , "." , "expected default project dir to be '.'" )
1524}
1625
26+ func TestDiggerConfigWhenMultipleConfigExist (t * testing.T ) {
27+ tempDir , teardown := setUp ()
28+ defer teardown ()
29+
30+ _ , err := os .Create (path .Join (tempDir , "digger.yaml" ))
31+ if err != nil {
32+ t .Fatal (err )
33+ }
34+
35+ _ , err = os .Create (path .Join (tempDir , "digger.yml" ))
36+ if err != nil {
37+ t .Fatal (err )
38+ }
39+
40+ dg , err := NewDiggerConfig (tempDir )
41+ assert .Error (t , err , "expected error to be returned" )
42+ assert .ErrorContains (t , err , ErrDiggerConfigConflict .Error (), "expected error to match target error" )
43+ assert .Nil (t , dg , "expected diggerConfig to be nil" )
44+ }
45+
46+ func TestDiggerConfigWhenOnlyYamlExists (t * testing.T ) {
47+ tempDir , teardown := setUp ()
48+ defer teardown ()
49+
50+ _ , err := os .Create (path .Join (tempDir , "digger.yaml" ))
51+ if err != nil {
52+ t .Fatal (err )
53+ }
54+
55+ dg , err := NewDiggerConfig (tempDir )
56+ assert .NoError (t , err , "expected error to be nil" )
57+ assert .NotNil (t , dg , "expected digger config to be not nil" )
58+ }
59+
60+ func TestDiggerConfigWhenOnlyYmlExists (t * testing.T ) {
61+ tempDir , teardown := setUp ()
62+ defer teardown ()
63+
64+ _ , err := os .Create (path .Join (tempDir , "digger.yml" ))
65+ if err != nil {
66+ t .Fatal (err )
67+ }
68+
69+ dg , err := NewDiggerConfig (tempDir )
70+ assert .NoError (t , err , "expected error to be nil" )
71+ assert .NotNil (t , dg , "expected digger config to be not nil" )
72+ }
73+
1774func TestDefaultValuesForWorkflowConfiguration (t * testing.T ) {
18- tempDir := CreateTempDir ()
19- defer func (name string ) {
20- err := os .RemoveAll (name )
21- if err != nil {
22- log .Fatal (err )
23- }
24- }(tempDir )
75+ tempDir , teardown := setUp ()
76+ defer teardown ()
2577
26- f , err := os .Create (tempDir + "/ digger.yml" )
78+ f , err := os .Create (path . Join ( tempDir , " digger.yaml" ) )
2779 if err != nil {
2880 log .Fatal (err )
2981 }
@@ -48,16 +100,23 @@ projects:
48100 }
49101
50102 dg , err := NewDiggerConfig (tempDir )
51- assert .NoError (t , err , "expected error to be not nil" )
103+ assert .NoError (t , err , "expected error to be nil" )
52104 assert .Equal (t , dg .Projects [0 ].WorkflowConfiguration .OnPullRequestPushed [0 ], "digger plan" )
53105 assert .Equal (t , dg .Projects [0 ].WorkflowConfiguration .OnPullRequestClosed [0 ], "digger unlock" )
54106 assert .Equal (t , dg .Projects [0 ].WorkflowConfiguration .OnCommitToDefault [0 ], "digger apply" )
55107}
56108
57- func CreateTempDir () string {
109+ func createTempDir () string {
58110 dir , err := os .MkdirTemp ("" , "tmp" )
59111 if err != nil {
60112 log .Fatal (err )
61113 }
62114 return dir
63115}
116+
117+ func deleteTempDir (name string ) {
118+ err := os .RemoveAll (name )
119+ if err != nil {
120+ log .Fatal (err )
121+ }
122+ }
0 commit comments