@@ -23,25 +23,37 @@ func ParseData(rawData string) yaml.Node {
23
23
return parsedData
24
24
}
25
25
26
+ func printDifference (t * testing.T , expectedValue interface {}, actualValue interface {}) {
27
+ opts := []write.Option {write .TerminalColor ()}
28
+ var differenceBuffer bytes.Buffer
29
+ expectedString := fmt .Sprintf ("%v" , expectedValue )
30
+ actualString := fmt .Sprintf ("%v" , actualValue )
31
+ if err := diff .Text ("expected" , "actual" , expectedString , actualString , bufio .NewWriter (& differenceBuffer ), opts ... ); err != nil {
32
+ t .Error (err )
33
+ } else {
34
+ t .Error (differenceBuffer .String ())
35
+ }
36
+ }
37
+
26
38
func AssertResult (t * testing.T , expectedValue interface {}, actualValue interface {}) {
27
39
t .Helper ()
28
40
if expectedValue != actualValue {
29
- t . Error ( "Expected <" , expectedValue , "> but got <" , actualValue , ">" , fmt . Sprintf ( "%T" , actualValue ) )
41
+ printDifference ( t , expectedValue , actualValue )
30
42
}
31
43
}
32
44
33
45
func AssertResultComplex (t * testing.T , expectedValue interface {}, actualValue interface {}) {
34
46
t .Helper ()
35
47
if ! reflect .DeepEqual (expectedValue , actualValue ) {
36
- t . Error ( " \n Expected <" , expectedValue , "> \n but got <" , actualValue , ">" , fmt . Sprintf ( "%T" , actualValue ) )
48
+ printDifference ( t , expectedValue , actualValue )
37
49
}
38
50
}
39
51
40
52
func AssertResultComplexWithContext (t * testing.T , expectedValue interface {}, actualValue interface {}, context interface {}) {
41
53
t .Helper ()
42
54
if ! reflect .DeepEqual (expectedValue , actualValue ) {
43
55
t .Error (context )
44
- t . Error ( " \n Expected <" , expectedValue , "> \n but got <" , actualValue , ">" , fmt . Sprintf ( "%T" , actualValue ) )
56
+ printDifference ( t , expectedValue , actualValue )
45
57
}
46
58
}
47
59
0 commit comments