Skip to content

Commit 13578a2

Browse files
authored
provide default values for workflowconfiguration (#59)
1 parent 96b2449 commit 13578a2

File tree

2 files changed

+67
-0
lines changed

2 files changed

+67
-0
lines changed

pkg/digger/digger_config.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,23 @@ type Project struct {
2525
WorkflowConfiguration WorkflowConfiguration `yaml:"workflow_configuration"`
2626
}
2727

28+
func (p *Project) UnmarshalYAML(unmarshal func(interface{}) error) error {
29+
type rawProject Project
30+
raw := rawProject{
31+
WorkflowConfiguration: WorkflowConfiguration{
32+
OnPullRequestPushed: []string{"digger plan"},
33+
OnPullRequestClosed: []string{"digger unlock"},
34+
OnCommitToDefault: []string{"digger apply"},
35+
},
36+
}
37+
if err := unmarshal(&raw); err != nil {
38+
return err
39+
}
40+
*p = Project(raw)
41+
return nil
42+
43+
}
44+
2845
func NewDiggerConfig(workingDir string) (*DiggerConfig, error) {
2946
config := &DiggerConfig{}
3047
var fileName string

pkg/digger/digger_config_test.go

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package digger
22

33
import (
4+
"log"
5+
"os"
46
"testing"
57
)
68
import "github.com/stretchr/testify/assert"
@@ -11,3 +13,51 @@ func TestDiggerConfigFileDoesNotExist(t *testing.T) {
1113
assert.Equal(t, dg.Projects[0].Name, "default", "expected default project to have name 'default'")
1214
assert.Equal(t, dg.Projects[0].Dir, ".", "expected default project dir to be '.'")
1315
}
16+
17+
func 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)
25+
26+
f, err := os.Create(tempDir + "/digger.yml")
27+
if err != nil {
28+
log.Fatal(err)
29+
}
30+
31+
defer func(f *os.File) {
32+
err := f.Close()
33+
if err != nil {
34+
35+
}
36+
}(f)
37+
38+
digger_yml := `
39+
projects:
40+
- name: dev
41+
branch: /main/
42+
dir: .
43+
workspace: default
44+
`
45+
_, err2 := f.WriteString(digger_yml)
46+
if err2 != nil {
47+
log.Fatal(err2)
48+
}
49+
50+
dg, err := NewDiggerConfig(tempDir)
51+
assert.NoError(t, err, "expected error to be not nil")
52+
assert.Equal(t, dg.Projects[0].WorkflowConfiguration.OnPullRequestPushed[0], "digger plan")
53+
assert.Equal(t, dg.Projects[0].WorkflowConfiguration.OnPullRequestClosed[0], "digger unlock")
54+
assert.Equal(t, dg.Projects[0].WorkflowConfiguration.OnCommitToDefault[0], "digger apply")
55+
}
56+
57+
func CreateTempDir() string {
58+
dir, err := os.MkdirTemp("", "tmp")
59+
if err != nil {
60+
log.Fatal(err)
61+
}
62+
return dir
63+
}

0 commit comments

Comments
 (0)