From 5d579781a8ad7aeba8e5f3031cbeb177d8eebf6f Mon Sep 17 00:00:00 2001 From: paul Date: Tue, 4 Nov 2025 17:16:42 -0500 Subject: [PATCH] More robust testing --- server/services/poll.go | 22 ++++++++++++++++++++++ server/services/services_test.go | 4 ++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/server/services/poll.go b/server/services/poll.go index 56a4d8e..0e2513a 100644 --- a/server/services/poll.go +++ b/server/services/poll.go @@ -1,6 +1,9 @@ package services import ( + "database/sql" + "errors" + "go-sjles-pta-vote/server/db" "go-sjles-pta-vote/server/models" ) @@ -13,6 +16,25 @@ func CreatePoll(poll *models.Poll) (*models.Poll, error) { return nil, err } defer db.Close() + + get_stmt, err := db_conn.Prepare(` + SELECT id + FROM polls + WHERE question == $1 + `) + if err != nil { + return nil, err + } + defer get_stmt.Close() + + var id int + err = get_stmt.QueryRow(poll.Question).Scan(&id) + if err != sql.ErrNoRows { + if err != nil { + return nil, err + } + return nil, errors.New("Already exists") + } stmt, err := db_conn.Prepare(` INSERT INTO polls ( diff --git a/server/services/services_test.go b/server/services/services_test.go index a5d0a5d..a137abc 100644 --- a/server/services/services_test.go +++ b/server/services/services_test.go @@ -39,7 +39,7 @@ func TestCreatePoll(t *testing.T) { t.Errorf(`Failed to insert into table: %v`, err) } - if new_poll.ID != 1 { - t.Errorf(`Failed to insert into table: Index %d: error %v`, new_poll.ID, err) + if new_poll == nil { + t.Errorf(`Failed to insert into table`) } } \ No newline at end of file