5
5
package highlight
6
6
7
7
import (
8
- "reflect "
8
+ "strings "
9
9
"testing"
10
10
11
11
"code.gitea.io/gitea/modules/setting"
12
12
13
+ "github.com/lithammer/dedent"
14
+ "github.com/stretchr/testify/assert"
13
15
"gopkg.in/ini.v1"
14
16
)
15
17
@@ -20,83 +22,83 @@ func TestFile(t *testing.T) {
20
22
numLines int
21
23
fileName string
22
24
code string
23
- want [] string
25
+ want string
24
26
}{
25
27
{
26
28
name : ".drone.yml" ,
27
29
numLines : 12 ,
28
30
fileName : ".drone.yml" ,
29
- code : `kind: pipeline
30
- name: default
31
+ code : strings .TrimSpace (dedent .Dedent (`
32
+ kind: pipeline
33
+ name: default
31
34
32
- steps:
33
- - name: test
34
- image: golang:1.13
35
- environment:
36
- GOPROXY: https://goproxy.cn
37
- commands:
38
- - go get -u
39
- - go build -v
40
- - go test -v -race -coverprofile=coverage.txt -covermode=atomic
41
- ` ,
42
- want : []string {
43
- `<span class="line"><span class="cl"><span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l">pipeline</span>` ,
44
- `</span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">default</span>` ,
45
- `</span></span><span class="line"><span class="cl">` ,
46
- `</span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">steps</span><span class="p">:</span>` ,
47
- `</span></span><span class="line"><span class="cl"><span class="w"></span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">test</span>` ,
48
- `</span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l">golang:1.13</span>` ,
49
- `</span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">environment</span><span class="p">:</span>` ,
50
- `</span></span><span class="line"><span class="cl"><span class="w"></span><span class="w"> </span><span class="nt">GOPROXY</span><span class="p">:</span><span class="w"> </span><span class="l">https://goproxy.cn</span>` ,
51
- `</span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">commands</span><span class="p">:</span>` ,
52
- `</span></span><span class="line"><span class="cl"><span class="w"></span><span class="w"> </span>- <span class="l">go get -u</span>` ,
53
- `</span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">go build -v</span>` ,
54
- `</span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">go test -v -race -coverprofile=coverage.txt -covermode=atomic</span><span class="w">
55
- </span></span></span>` ,
56
- `<span class="w">
57
- </span>` ,
58
- },
35
+ steps:
36
+ - name: test
37
+ image: golang:1.13
38
+ environment:
39
+ GOPROXY: https://goproxy.cn
40
+ commands:
41
+ - go get -u
42
+ - go build -v
43
+ - go test -v -race -coverprofile=coverage.txt -covermode=atomic
44
+ ` )),
45
+ want : strings .TrimSpace (dedent .Dedent (`
46
+ <span class="line"><span class="cl"><span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l">pipeline</span>
47
+ </span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">default</span>
48
+ </span></span><span class="line"><span class="cl">
49
+ </span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">steps</span><span class="p">:</span>
50
+ </span></span><span class="line"><span class="cl"><span class="w"></span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">test</span>
51
+ </span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l">golang:1.13</span>
52
+ </span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">environment</span><span class="p">:</span>
53
+ </span></span><span class="line"><span class="cl"><span class="w"></span><span class="w"> </span><span class="nt">GOPROXY</span><span class="p">:</span><span class="w"> </span><span class="l">https://goproxy.cn</span>
54
+ </span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">commands</span><span class="p">:</span>
55
+ </span></span><span class="line"><span class="cl"><span class="w"></span><span class="w"> </span>- <span class="l">go get -u</span>
56
+ </span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">go build -v</span>
57
+ </span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">go test -v -race -coverprofile=coverage.txt -covermode=atomic</span></span></span>
58
+ ` )),
59
59
},
60
60
{
61
61
name : ".drone.yml - trailing space" ,
62
62
numLines : 13 ,
63
63
fileName : ".drone.yml" ,
64
- code : `kind: pipeline
65
- name: default ` + `
64
+ code : strings .Replace (strings .TrimSpace (dedent .Dedent (`
65
+ kind: pipeline
66
+ name: default
66
67
67
- steps:
68
- - name: test
69
- image: golang:1.13
70
- environment:
71
- GOPROXY: https://goproxy.cn
72
- commands:
73
- - go get -u
74
- - go build -v
75
- - go test -v -race -coverprofile=coverage.txt -covermode=atomic
76
- ` ,
77
- want : []string {
78
- `<span class="line"><span class="cl"><span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l">pipeline</span>` ,
79
- `</span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">default </span>` ,
80
- `</span></span><span class="line"><span class="cl">` ,
81
- `</span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">steps</span><span class="p">:</span>` ,
82
- `</span></span><span class="line"><span class="cl"><span class="w"></span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">test</span>` ,
83
- `</span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l">golang:1.13</span>` ,
84
- `</span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">environment</span><span class="p">:</span>` ,
85
- `</span></span><span class="line"><span class="cl"><span class="w"></span><span class="w"> </span><span class="nt">GOPROXY</span><span class="p">:</span><span class="w"> </span><span class="l">https://goproxy.cn</span>` ,
86
- `</span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">commands</span><span class="p">:</span>` ,
87
- `</span></span><span class="line"><span class="cl"><span class="w"></span><span class="w"> </span>- <span class="l">go get -u</span>` ,
88
- `</span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">go build -v</span>` ,
89
- `</span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">go test -v -race -coverprofile=coverage.txt -covermode=atomic</span>` ,
90
- `</span></span><span class="line"><span class="cl"><span class="w"> </span></span></span>` ,
91
- },
68
+ steps:
69
+ - name: test
70
+ image: golang:1.13
71
+ environment:
72
+ GOPROXY: https://goproxy.cn
73
+ commands:
74
+ - go get -u
75
+ - go build -v
76
+ - go test -v -race -coverprofile=coverage.txt -covermode=atomic
77
+ ` ))+ "\n " , "name: default" , "name: default " , 1 ),
78
+ want : strings .TrimSpace (dedent .Dedent (`
79
+ <span class="line"><span class="cl"><span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l">pipeline</span>
80
+ </span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">default </span>
81
+ </span></span><span class="line"><span class="cl">
82
+ </span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">steps</span><span class="p">:</span>
83
+ </span></span><span class="line"><span class="cl"><span class="w"></span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">test</span>
84
+ </span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l">golang:1.13</span>
85
+ </span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">environment</span><span class="p">:</span>
86
+ </span></span><span class="line"><span class="cl"><span class="w"></span><span class="w"> </span><span class="nt">GOPROXY</span><span class="p">:</span><span class="w"> </span><span class="l">https://goproxy.cn</span>
87
+ </span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">commands</span><span class="p">:</span>
88
+ </span></span><span class="line"><span class="cl"><span class="w"></span><span class="w"> </span>- <span class="l">go get -u</span>
89
+ </span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">go build -v</span>
90
+ </span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">go test -v -race -coverprofile=coverage.txt -covermode=atomic</span>
91
+ </span></span>
92
+ <span class="w">
93
+ </span>
94
+ ` )),
92
95
},
93
96
}
94
97
95
98
for _ , tt := range tests {
96
99
t .Run (tt .name , func (t * testing.T ) {
97
- if got := File (tt .numLines , tt .fileName , "" , []byte (tt .code )); ! reflect .DeepEqual (got , tt .want ) {
98
- t .Errorf ("File() = %v, want %v" , got , tt .want )
99
- }
100
+ got := strings .Join (File (tt .numLines , tt .fileName , "" , []byte (tt .code )), "\n " )
101
+ assert .Equal (t , tt .want , got )
100
102
})
101
103
}
102
104
}
0 commit comments