mirror of
https://github.com/hanzo-fi/go-libs.git
synced 2026-10-30 20:53:44 +00:00
38 lines
1000 B
Go
38 lines
1000 B
Go
package pgtesting
|
|
|
|
import (
|
|
. "github.com/onsi/ginkgo/v2"
|
|
|
|
"github.com/hanzo-fi/go-libs/v5/pkg/testing/deferred"
|
|
. "github.com/hanzo-fi/go-libs/v5/pkg/testing/docker/ginkgo"
|
|
)
|
|
|
|
func WithNewPostgresServer(fn func(p *deferred.Deferred[*PostgresServer])) bool {
|
|
return Context("With new postgres server", func() {
|
|
ret := deferred.New[*PostgresServer]()
|
|
BeforeEach(func() {
|
|
ret.Reset()
|
|
ret.SetValue(CreatePostgresServer(
|
|
GinkgoT(),
|
|
ActualDockerPool(),
|
|
))
|
|
})
|
|
fn(ret)
|
|
})
|
|
}
|
|
|
|
func UsePostgresDatabase(server *deferred.Deferred[*PostgresServer], options ...CreateDatabaseOption) *deferred.Deferred[*Database] {
|
|
ret := &deferred.Deferred[*Database]{}
|
|
BeforeEach(func() {
|
|
ret.Reset()
|
|
ret.SetValue(server.GetValue().NewDatabase(GinkgoT(), options...))
|
|
})
|
|
return ret
|
|
}
|
|
|
|
func WithNewPostgresDatabase(server *deferred.Deferred[*PostgresServer], fn func(p *deferred.Deferred[*Database])) {
|
|
Context("With new postgres database", func() {
|
|
fn(UsePostgresDatabase(server))
|
|
})
|
|
}
|