@@ -134,6 +134,7 @@ func TestAPI(t *testing.T) {
134
134
t .Run ("UI" , testUI (v ))
135
135
t .Run ("Proc" , testProc (v ))
136
136
t .Run ("Mark" , testMark (v ))
137
+ t .Run ("StatusLine" , testStatusLine (v ))
137
138
}
138
139
139
140
func testBufAttach (v * Nvim ) func (* testing.T ) {
@@ -5109,3 +5110,94 @@ func testMark(v *Nvim) func(*testing.T) {
5109
5110
})
5110
5111
}
5111
5112
}
5113
+
5114
+ func testStatusLine (v * Nvim ) func (* testing.T ) {
5115
+ return func (t * testing.T ) {
5116
+ t .Run ("Nvim" , func (t * testing.T ) {
5117
+ opts := map [string ]interface {}{
5118
+ "highlights" : true ,
5119
+ }
5120
+ gotStatusLine , err := v .EvalStatusLine ("TextWithNoHighlight" , opts )
5121
+ if err != nil {
5122
+ t .Fatal (err )
5123
+ }
5124
+
5125
+ wantStatusLine := map [string ]interface {}{
5126
+ "highlights" : []interface {}{
5127
+ map [string ]interface {}{
5128
+ "group" : "StatusLine" ,
5129
+ "start" : int64 (0 ),
5130
+ },
5131
+ },
5132
+ "str" : "TextWithNoHighlight" ,
5133
+ "width" : 19 ,
5134
+ }
5135
+
5136
+ gotHighlight := gotStatusLine ["highlights" ].([]interface {})[0 ].(map [string ]interface {})
5137
+ wantHighlight := wantStatusLine ["highlights" ].([]interface {})[0 ].(map [string ]interface {})
5138
+ if ! reflect .DeepEqual (gotHighlight ["group" ], wantHighlight ["group" ]) {
5139
+ t .Fatalf ("got %#v highlight group but want %#v" , gotHighlight ["group" ], wantHighlight ["group" ])
5140
+ }
5141
+ if gotHighlight ["start" ] != wantHighlight ["start" ] {
5142
+ t .Fatalf ("got %#v highlight start but want %#v" , gotHighlight ["start" ], wantHighlight ["start" ])
5143
+ }
5144
+
5145
+ gotStr := gotStatusLine ["str" ]
5146
+ wantStr := gotStatusLine ["str" ]
5147
+ if gotStr != wantStr {
5148
+ t .Fatalf ("got %#v str but want %#v" , gotStr , wantStr )
5149
+ }
5150
+
5151
+ gotWidth := gotStatusLine ["width" ]
5152
+ wantWidth := gotStatusLine ["width" ]
5153
+ if gotWidth != wantWidth {
5154
+ t .Fatalf ("got %#v width but want %#v" , gotWidth , wantWidth )
5155
+ }
5156
+ })
5157
+
5158
+ t .Run ("Batch" , func (t * testing.T ) {
5159
+ b := v .NewBatch ()
5160
+
5161
+ opts := map [string ]interface {}{
5162
+ "highlights" : true ,
5163
+ }
5164
+ var gotStatusLine map [string ]interface {}
5165
+ b .EvalStatusLine ("TextWithNoHighlight" , opts , & gotStatusLine )
5166
+ if err := b .Execute (); err != nil {
5167
+ t .Fatal (err )
5168
+ }
5169
+
5170
+ wantStatusLine := map [string ]interface {}{
5171
+ "highlights" : []interface {}{
5172
+ map [string ]interface {}{
5173
+ "group" : "StatusLine" ,
5174
+ "start" : int64 (0 ),
5175
+ },
5176
+ },
5177
+ "str" : "TextWithNoHighlight" ,
5178
+ "width" : 19 ,
5179
+ }
5180
+
5181
+ gotHighlight := gotStatusLine ["highlights" ].([]interface {})[0 ].(map [string ]interface {})
5182
+ wantHighlight := wantStatusLine ["highlights" ].([]interface {})[0 ].(map [string ]interface {})
5183
+ if ! reflect .DeepEqual (gotHighlight ["group" ], wantHighlight ["group" ]) {
5184
+ t .Fatalf ("got %#v highlight group but want %#v" , gotHighlight ["group" ], wantHighlight ["group" ])
5185
+ }
5186
+ if gotHighlight ["start" ] != wantHighlight ["start" ] {
5187
+ t .Fatalf ("got %#v highlight start but want %#v" , gotHighlight ["start" ], wantHighlight ["start" ])
5188
+ }
5189
+
5190
+ gotStr := gotStatusLine ["str" ]
5191
+ wantStr := gotStatusLine ["str" ]
5192
+ if gotStr != wantStr {
5193
+ t .Fatalf ("got %#v str but want %#v" , gotStr , wantStr )
5194
+ }
5195
+
5196
+ gotWidth := gotStatusLine ["width" ]
5197
+ wantWidth := gotStatusLine ["width" ]
5198
+ if gotWidth != wantWidth {
5199
+ t .Fatalf ("got %#v width but want %#v" , gotWidth , wantWidth )
5200
+ }
5201
+ })
5202
+ }
5203
+ }
0 commit comments