diff --git a/store/store_test.go b/store/store_test.go index 8b0d2c59..f0b92e10 100644 --- a/store/store_test.go +++ b/store/store_test.go @@ -100,6 +100,29 @@ func Test_SingleNodeInMemExecuteQuery(t *testing.T) { } } +// Test_SingleNodeInMemExecuteQueryFail ensures database level errors are presented by the store. +func Test_SingleNodeInMemExecuteQueryFail(t *testing.T) { + s := mustNewStore(true) + defer os.RemoveAll(s.Path()) + + if err := s.Open(true); err != nil { + t.Fatalf("failed to open single-node store: %s", err.Error()) + } + defer s.Close(true) + s.WaitForLeader(10 * time.Second) + + queries := []string{ + `INSERT INTO foo(id, name) VALUES(1, "fiona")`, + } + r, err := s.Execute(queries, false, false) + if err != nil { + t.Fatalf("failed to execute on single node: %s", err.Error()) + } + if exp, got := "no such table: foo", r[0].Error; exp != got { + t.Fatalf("unexpected results for query\nexp: %s\ngot: %s", exp, got) + } +} + func Test_SingleNodeFileExecuteQuery(t *testing.T) { s := mustNewStore(false) defer os.RemoveAll(s.Path())