package simplesql_test import ( "context" "embed" "testing" ssql "git.simplesystems.tech/simplesystems/simple-sql" _ "github.com/mattn/go-sqlite3" ) //go:embed sqlq var sqlQueries embed.FS type user struct { Username string `db:"username"` } func TestNew(t *testing.T) { // SQL to create a test table and users initSQL := `CREATE TABLE users(id INT, username VARCHAR);INSERT INTO users (id, username) VALUES (1, 'u1'), (2, 'u2');` // Create in-memory db for test db, err := ssql.New(context.TODO(), "sqlite3", "file:temp.db?mode=memory", sqlQueries, initSQL) if err != nil { t.Fatalf("opening db: %v", err) } defer db.Close() // Get a user from the table, using the prepared statement var res user if err := db.Get("get_user", &res, map[string]interface{}{"user_id": "2"}); err != nil { t.Fatalf("getting user: %v", err) } if res.Username != "u2" { t.Errorf("expecting u2, but got %s", res.Username) } }