Skip to content

Commit e196786

Browse files
committed
nvim: add Message related testcases
1 parent 9ac9c91 commit e196786

File tree

1 file changed

+138
-0
lines changed

1 file changed

+138
-0
lines changed

nvim/nvim_test.go

+138
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ func TestAPI(t *testing.T) {
9292
t.Run("Tabpage", testTabpage(v))
9393
t.Run("Lines", testLines(v))
9494
t.Run("Var", testVar(v))
95+
t.Run("Message", testMessage(v))
9596
t.Run("StructValue", testStructValue(v))
9697
t.Run("Eval", testEval(v))
9798
t.Run("Batch", testBatch(v))
@@ -884,6 +885,143 @@ func testVar(v *Nvim) func(*testing.T) {
884885
}
885886
}
886887

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+
8871025
func testStructValue(v *Nvim) func(*testing.T) {
8881026
return func(t *testing.T) {
8891027
t.Run("Nvim", func(t *testing.T) {

0 commit comments

Comments
 (0)