lib.InjectContext with DB

main
Bel LaPointe 2025-02-09 16:48:59 -07:00
parent fbaaa1303f
commit 6b6f47035a
2 changed files with 35 additions and 0 deletions

15
src/lib/db.go Normal file
View File

@ -0,0 +1,15 @@
package lib
import (
"context"
"database/sql"
)
func InjectDB(ctx context.Context, db *sql.DB) context.Context {
return context.WithValue(ctx, "__db__", db)
}
func ExtractDB(ctx context.Context) *sql.DB {
v, _ := ctx.Value("__db__").(*sql.DB)
return v
}

20
src/lib/db_test.go Normal file
View File

@ -0,0 +1,20 @@
package lib_test
import (
"context"
"database/sql"
"gitea/price-is-wrong/src/lib"
"testing"
)
func TestInjectDB(t *testing.T) {
ctx := context.Background()
db := &sql.DB{}
injected := lib.InjectDB(ctx, db)
extracted := lib.ExtractDB(injected)
if db != extracted {
t.Fatal("couldnt extract injected db")
}
}