1
1
package v2
2
2
3
3
import (
4
+ "fmt"
5
+ "github.com/kylelemons/godebug/pretty"
6
+ "github.com/stretchr/testify/assert"
4
7
"reflect"
5
8
"testing"
6
9
7
10
v1 "github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2"
8
11
)
9
12
10
13
func TestDevfile200_AddEvents (t * testing.T ) {
14
+ multipleDupError := fmt .Sprintf ("%s\n %s" , "event field pre start already exists in devfile" , "event field post stop already exists in devfile" )
11
15
12
16
tests := []struct {
13
17
name string
14
18
currentEvents * v1.Events
15
19
newEvents v1.Events
16
- wantErr bool
20
+ wantEvents v1.Events
21
+ wantErr * string
17
22
}{
18
23
{
19
24
name : "successfully add the events" ,
@@ -27,7 +32,13 @@ func TestDevfile200_AddEvents(t *testing.T) {
27
32
PostStart : []string {"postStart1" },
28
33
},
29
34
},
30
- wantErr : false ,
35
+ wantEvents : v1.Events {
36
+ DevWorkspaceEvents : v1.DevWorkspaceEvents {
37
+ PreStart : []string {"preStart1" },
38
+ PostStart : []string {"postStart1" },
39
+ },
40
+ },
41
+ wantErr : nil ,
31
42
},
32
43
{
33
44
name : "successfully add the events to empty devfile event" ,
@@ -37,21 +48,29 @@ func TestDevfile200_AddEvents(t *testing.T) {
37
48
PostStart : []string {"postStart1" },
38
49
},
39
50
},
40
- wantErr : false ,
51
+ wantEvents : v1.Events {
52
+ DevWorkspaceEvents : v1.DevWorkspaceEvents {
53
+ PostStart : []string {"postStart1" },
54
+ },
55
+ },
56
+ wantErr : nil ,
41
57
},
42
58
{
43
59
name : "event already present" ,
44
60
currentEvents : & v1.Events {
45
61
DevWorkspaceEvents : v1.DevWorkspaceEvents {
46
62
PreStart : []string {"preStart1" },
63
+ PostStop : []string {"postStop1" },
47
64
},
48
65
},
49
66
newEvents : v1.Events {
50
67
DevWorkspaceEvents : v1.DevWorkspaceEvents {
51
68
PreStart : []string {"preStart2" },
69
+ PostStop : []string {"postStop2" },
70
+ PreStop : []string {"preStop" },
52
71
},
53
72
},
54
- wantErr : true ,
73
+ wantErr : & multipleDupError ,
55
74
},
56
75
}
57
76
for _ , tt := range tests {
@@ -68,8 +87,14 @@ func TestDevfile200_AddEvents(t *testing.T) {
68
87
69
88
err := d .AddEvents (tt .newEvents )
70
89
71
- if (err != nil ) != tt .wantErr {
72
- t .Errorf ("DeleteCommand() error = %v, wantErr %v" , err , tt .wantErr )
90
+ if (err != nil ) != (tt .wantErr != nil ) {
91
+ t .Errorf ("TestDevfile200_AddEvents() error = %v, wantErr %v" , err , tt .wantErr )
92
+ } else if tt .wantErr != nil {
93
+ assert .Regexp (t , * tt .wantErr , err .Error (), "Error message should match" )
94
+ } else {
95
+ if ! reflect .DeepEqual (* d .Events , tt .wantEvents ) {
96
+ t .Errorf ("TestDevfile200_AddEvents() wanted: %v, got: %v, difference at %v" , tt .wantEvents , * d .Events , pretty .Compare (tt .wantEvents , * d .Events ))
97
+ }
73
98
}
74
99
75
100
})
0 commit comments