lib.InjectContext with DB
parent
fbaaa1303f
commit
6b6f47035a
|
|
@ -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
|
||||
}
|
||||
|
|
@ -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")
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue