@@ -92,6 +92,7 @@ func TestAPI(t *testing.T) {
92
92
t .Run ("Tabpage" , testTabpage (v ))
93
93
t .Run ("Lines" , testLines (v ))
94
94
t .Run ("Var" , testVar (v ))
95
+ t .Run ("Message" , testMessage (v ))
95
96
t .Run ("StructValue" , testStructValue (v ))
96
97
t .Run ("Eval" , testEval (v ))
97
98
t .Run ("Batch" , testBatch (v ))
@@ -884,6 +885,143 @@ func testVar(v *Nvim) func(*testing.T) {
884
885
}
885
886
}
886
887
888
+ func testMessage (v * Nvim ) func (* testing.T ) {
889
+ return func (t * testing.T ) {
890
+ t .Run ("Nvim" , func (t * testing.T ) {
891
+ const wantWriteOut = `hello WriteOut`
892
+ if err := v .WriteOut (wantWriteOut + "\n " ); err != nil {
893
+ t .Fatalf ("failed to WriteOut: %v" , err )
894
+ }
895
+
896
+ var gotWriteOut string
897
+ if err := v .VVar ("statusmsg" , & gotWriteOut ); err != nil {
898
+ t .Fatalf ("could not get v:statusmsg nvim variable: %v" , err )
899
+ }
900
+ if gotWriteOut != wantWriteOut {
901
+ t .Fatalf ("WriteOut(%q) = %q, want: %q" , wantWriteOut , gotWriteOut , wantWriteOut )
902
+ }
903
+
904
+ // cleanup v:statusmsg
905
+ if err := v .SetVVar ("statusmsg" , "" ); err != nil {
906
+ t .Fatalf ("failed to SetVVar: %v" , err )
907
+ }
908
+
909
+ // clear messages
910
+ if _ , err := v .Exec (":messages clear" , false ); err != nil {
911
+ t .Fatalf ("failed to SetVVar: %v" , err )
912
+ }
913
+
914
+ const wantWriteErr = `hello WriteErr`
915
+ if err := v .WriteErr (wantWriteErr + "\n " ); err != nil {
916
+ t .Fatalf ("failed to WriteErr: %v" , err )
917
+ }
918
+
919
+ var gotWriteErr string
920
+ if err := v .VVar ("errmsg" , & gotWriteErr ); err != nil {
921
+ t .Fatalf ("could not get v:statusmsg nvim variable: %v" , err )
922
+ }
923
+ if gotWriteErr != wantWriteErr {
924
+ t .Fatalf ("WriteErr(%q) = %q, want: %q" , wantWriteErr , gotWriteErr , wantWriteErr )
925
+ }
926
+
927
+ // cleanup v:statusmsg
928
+ if err := v .SetVVar ("statusmsg" , "" ); err != nil {
929
+ t .Fatalf ("failed to SetVVar: %v" , err )
930
+ }
931
+
932
+ // clear messages
933
+ if _ , err := v .Exec (":messages clear" , false ); err != nil {
934
+ t .Fatalf ("failed to SetVVar: %v" , err )
935
+ }
936
+
937
+ const wantWritelnErr = `hello WritelnErr`
938
+ if err := v .WritelnErr (wantWritelnErr ); err != nil {
939
+ t .Fatalf ("failed to WriteErr: %v" , err )
940
+ }
941
+
942
+ var gotWritelnErr string
943
+ if err := v .VVar ("errmsg" , & gotWritelnErr ); err != nil {
944
+ t .Fatalf ("could not get v:statusmsg nvim variable: %v" , err )
945
+ }
946
+ if gotWritelnErr != wantWritelnErr {
947
+ t .Fatalf ("WritelnErr(%q) = %q, want: %q" , wantWritelnErr , gotWritelnErr , wantWritelnErr )
948
+ }
949
+
950
+ // cleanup v:statusmsg
951
+ if err := v .SetVVar ("statusmsg" , "" ); err != nil {
952
+ t .Fatalf ("failed to SetVVar: %v" , err )
953
+ }
954
+
955
+ // clear messages
956
+ if _ , err := v .Exec (":messages clear" , false ); err != nil {
957
+ t .Fatalf ("failed to SetVVar: %v" , err )
958
+ }
959
+ })
960
+
961
+ t .Run ("Batch" , func (t * testing.T ) {
962
+ b := v .NewBatch ()
963
+
964
+ const wantWriteOut = `hello WriteOut`
965
+ b .WriteOut (wantWriteOut + "\n " )
966
+ if err := b .Execute (); err != nil {
967
+ t .Fatalf ("failed to WriteOut: %v" , err )
968
+ }
969
+
970
+ var gotWriteOut string
971
+ b .VVar ("statusmsg" , & gotWriteOut )
972
+ if err := b .Execute (); err != nil {
973
+ t .Fatalf ("could not get v:statusmsg nvim variable: %v" , err )
974
+ }
975
+ if gotWriteOut != wantWriteOut {
976
+ t .Fatalf ("b.WriteOut(%q) = %q, want: %q" , wantWriteOut , gotWriteOut , wantWriteOut )
977
+ }
978
+
979
+ // cleanup v:statusmsg
980
+ if err := v .SetVVar ("statusmsg" , "" ); err != nil {
981
+ t .Fatalf ("failed to SetVVar: %v" , err )
982
+ }
983
+
984
+ const wantWriteErr = `hello WriteErr`
985
+ b .WriteErr (wantWriteErr + "\n " )
986
+ if err := b .Execute (); err != nil {
987
+ t .Fatalf ("failed to WriteErr: %v" , err )
988
+ }
989
+ var gotWriteErr string
990
+ b .VVar ("errmsg" , & gotWriteErr )
991
+ if err := b .Execute (); err != nil {
992
+ t .Fatalf ("could not get v:statusmsg nvim variable: %v" , err )
993
+ }
994
+ if gotWriteErr != wantWriteErr {
995
+ t .Fatalf ("b.WriteErr(%q) = %q, want: %q" , wantWriteErr , gotWriteErr , wantWriteErr )
996
+ }
997
+
998
+ // cleanup v:statusmsg
999
+ if err := v .SetVVar ("statusmsg" , "" ); err != nil {
1000
+ t .Fatalf ("failed to SetVVar: %v" , err )
1001
+ }
1002
+
1003
+ const wantWritelnErr = `hello WritelnErr`
1004
+ b .WritelnErr (wantWritelnErr )
1005
+ if err := b .Execute (); err != nil {
1006
+ t .Fatalf ("failed to WriteErr: %v" , err )
1007
+ }
1008
+ var gotWritelnErr string
1009
+ b .VVar ("errmsg" , & gotWritelnErr )
1010
+ if err := b .Execute (); err != nil {
1011
+ t .Fatalf ("could not get v:statusmsg nvim variable: %v" , err )
1012
+ }
1013
+ if gotWritelnErr != wantWritelnErr {
1014
+ t .Fatalf ("b.WritelnErr(%q) = %q, want: %q" , wantWritelnErr , gotWritelnErr , wantWritelnErr )
1015
+ }
1016
+
1017
+ // cleanup v:statusmsg
1018
+ if err := v .SetVVar ("statusmsg" , "" ); err != nil {
1019
+ t .Fatalf ("failed to SetVVar: %v" , err )
1020
+ }
1021
+ })
1022
+ }
1023
+ }
1024
+
887
1025
func testStructValue (v * Nvim ) func (* testing.T ) {
888
1026
return func (t * testing.T ) {
889
1027
t .Run ("Nvim" , func (t * testing.T ) {
0 commit comments