@@ -134,6 +134,7 @@ func TestAPI(t *testing.T) {
134134 t .Run ("UI" , testUI (v ))
135135 t .Run ("Proc" , testProc (v ))
136136 t .Run ("Mark" , testMark (v ))
137+ t .Run ("StatusLine" , testStatusLine (v ))
137138}
138139
139140func testBufAttach (v * Nvim ) func (* testing.T ) {
@@ -5109,3 +5110,94 @@ func testMark(v *Nvim) func(*testing.T) {
51095110 })
51105111 }
51115112}
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