From fa7cc40d239e1d119426ce01c15d879035d95336 Mon Sep 17 00:00:00 2001 From: Deluan Date: Sat, 27 Jan 2024 12:16:38 -0500 Subject: [PATCH] Add tests for `toSQL` --- persistence/sql_base_repository_test.go | 39 +++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/persistence/sql_base_repository_test.go b/persistence/sql_base_repository_test.go index 8309a492..5e108192 100644 --- a/persistence/sql_base_repository_test.go +++ b/persistence/sql_base_repository_test.go @@ -31,6 +31,45 @@ var _ = Describe("sqlRepository", func() { }) }) + Describe("toSQL", func() { + var r sqlRepository + + BeforeEach(func() { + r = sqlRepository{} + }) + + It("returns error for invalid SQL", func() { + sq := squirrel.Select("*").From("test").Where(1) + _, _, err := r.toSQL(sq) + Expect(err).To(HaveOccurred()) + }) + + It("returns the same query when there are no placeholders", func() { + sq := squirrel.Select("*").From("test") + query, params, err := r.toSQL(sq) + Expect(err).NotTo(HaveOccurred()) + Expect(query).To(Equal("SELECT * FROM test")) + Expect(params).To(BeEmpty()) + }) + + It("replaces one placeholder correctly", func() { + sq := squirrel.Select("*").From("test").Where(squirrel.Eq{"id": 1}) + query, params, err := r.toSQL(sq) + Expect(err).NotTo(HaveOccurred()) + Expect(query).To(Equal("SELECT * FROM test WHERE id = {:p0}")) + Expect(params).To(HaveKeyWithValue("p0", 1)) + }) + + It("replaces multiple placeholders correctly", func() { + sq := squirrel.Select("*").From("test").Where(squirrel.Eq{"id": 1, "name": "test"}) + query, params, err := r.toSQL(sq) + Expect(err).NotTo(HaveOccurred()) + Expect(query).To(Equal("SELECT * FROM test WHERE id = {:p0} AND name = {:p1}")) + Expect(params).To(HaveKeyWithValue("p0", 1)) + Expect(params).To(HaveKeyWithValue("p1", "test")) + }) + }) + Describe("buildSortOrder", func() { Context("single field", func() { It("sorts by specified field", func() {