Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions docker.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"strconv"
"time"

contractsprocess "github.com/goravel/framework/contracts/process"
contractsdocker "github.com/goravel/framework/contracts/testing/docker"
supportdocker "github.com/goravel/framework/support/docker"
testingdocker "github.com/goravel/framework/testing/docker"
Expand All @@ -18,9 +19,10 @@ type Docker struct {
config contracts.ConfigBuilder
databaseConfig contractsdocker.DatabaseConfig
imageDriver contractsdocker.ImageDriver
process contractsprocess.Process
}

func NewDocker(config contracts.ConfigBuilder, database, username, password string) *Docker {
func NewDocker(config contracts.ConfigBuilder, process contractsprocess.Process, database, username, password string) *Docker {
return &Docker{
config: config,
databaseConfig: contractsdocker.DatabaseConfig{
Expand All @@ -39,7 +41,8 @@ func NewDocker(config contracts.ConfigBuilder, database, username, password stri
"MSSQL_SA_PASSWORD=" + password,
},
ExposedPorts: []string{"1433"},
}),
}, process),
process: process,
}
}

Expand All @@ -60,7 +63,7 @@ func (r *Docker) Config() contractsdocker.DatabaseConfig {
}

func (r *Docker) Database(name string) (contractsdocker.DatabaseDriver, error) {
docker := NewDocker(r.config, name, r.databaseConfig.Username, r.databaseConfig.Password)
docker := NewDocker(r.config, r.process, name, r.databaseConfig.Username, r.databaseConfig.Password)
docker.databaseConfig.ContainerID = r.databaseConfig.ContainerID
docker.databaseConfig.Port = r.databaseConfig.Port

Expand Down Expand Up @@ -99,7 +102,7 @@ func (r *Docker) Fresh() error {
}

func (r *Docker) Image(image contractsdocker.Image) {
r.imageDriver = testingdocker.NewImageDriver(image)
r.imageDriver = testingdocker.NewImageDriver(image, r.process)
}

func (r *Docker) Ready() error {
Expand Down
3 changes: 2 additions & 1 deletion docker_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"testing"

"github.com/goravel/framework/mocks/config"
"github.com/goravel/framework/process"
"github.com/goravel/sqlserver/contracts"
"github.com/stretchr/testify/suite"
)
Expand All @@ -33,7 +34,7 @@ func (s *DockerTestSuite) SetupTest() {
s.username = "goravel"
s.password = "Framework!123"
s.mockConfig = config.NewConfig(s.T())
s.docker = NewDocker(NewConfig(s.mockConfig, s.connection), s.database, s.username, s.password)
s.docker = NewDocker(NewConfig(s.mockConfig, s.connection), process.New(), s.database, s.username, s.password)
}

func (s *DockerTestSuite) Test_Build_Config_AddData_Fresh_Shutdown() {
Expand Down
46 changes: 29 additions & 17 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ toolchain go1.25.6

require (
github.com/Masterminds/squirrel v1.5.4
github.com/goravel/framework v1.16.1-0.20251216090700-ae61a854735f
github.com/goravel/framework v1.16.1-0.20260128144145-280cdc17fcee
github.com/spf13/cast v1.10.0
github.com/stretchr/testify v1.11.1
gorm.io/driver/sqlserver v1.6.3
Expand All @@ -17,14 +17,23 @@ require (
atomicgo.dev/cursor v0.2.0 // indirect
atomicgo.dev/keyboard v0.2.9 // indirect
atomicgo.dev/schedule v0.1.0 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
github.com/charmbracelet/bubbles v0.21.1-0.20250623103423-23b8fd6302d7 // indirect
github.com/charmbracelet/bubbletea v1.3.10 // indirect
github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc // indirect
github.com/charmbracelet/huh/spinner v0.0.0-20251215014908-6f7d32faaff3 // indirect
github.com/charmbracelet/lipgloss v1.1.0 // indirect
github.com/charmbracelet/x/ansi v0.10.1 // indirect
github.com/charmbracelet/x/cellbuf v0.0.13 // indirect
github.com/charmbracelet/x/term v0.2.1 // indirect
github.com/clipperhouse/uax29/v2 v2.2.0 // indirect
github.com/containerd/console v1.0.5 // indirect
github.com/dave/dst v0.27.3 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/dromara/carbon/v2 v2.6.11 // indirect
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
github.com/gabriel-vasile/mimetype v1.4.12 // indirect
github.com/go-viper/mapstructure/v2 v2.4.0 // indirect
github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect
github.com/golang-sql/sqlexp v0.1.0 // indirect
github.com/google/uuid v1.6.0 // indirect
Expand All @@ -35,29 +44,32 @@ require (
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect
github.com/lithammer/fuzzysearch v1.1.8 // indirect
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-localereader v0.0.1 // indirect
github.com/mattn/go-runewidth v0.0.19 // indirect
github.com/microsoft/go-mssqldb v1.9.1 // indirect
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
github.com/muesli/cancelreader v0.2.2 // indirect
github.com/muesli/termenv v0.16.0 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/pterm/pterm v0.12.82 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/samber/lo v1.52.0 // indirect
github.com/sirupsen/logrus v1.9.3 // indirect
github.com/stretchr/objx v0.5.2 // indirect
github.com/urfave/cli/v3 v3.6.1 // indirect
github.com/urfave/cli/v3 v3.6.2 // indirect
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
go.opentelemetry.io/otel v1.39.0 // indirect
go.opentelemetry.io/otel/metric v1.39.0 // indirect
go.opentelemetry.io/otel/trace v1.39.0 // indirect
golang.org/x/crypto v0.46.0 // indirect
golang.org/x/exp v0.0.0-20251209150349-8475f28825e9 // indirect
golang.org/x/mod v0.31.0 // indirect
golang.org/x/net v0.48.0 // indirect
golang.org/x/crypto v0.47.0 // indirect
golang.org/x/exp v0.0.0-20260112195511-716be5621a96 // indirect
golang.org/x/mod v0.32.0 // indirect
golang.org/x/net v0.49.0 // indirect
golang.org/x/sync v0.19.0 // indirect
golang.org/x/sys v0.39.0 // indirect
golang.org/x/term v0.38.0 // indirect
golang.org/x/text v0.32.0 // indirect
golang.org/x/tools v0.40.0 // indirect
golang.org/x/sys v0.40.0 // indirect
golang.org/x/term v0.39.0 // indirect
golang.org/x/text v0.33.0 // indirect
golang.org/x/tools v0.41.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 // indirect
google.golang.org/grpc v1.77.0 // indirect
google.golang.org/grpc v1.78.0 // indirect
google.golang.org/protobuf v1.36.11 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
gorm.io/plugin/dbresolver v1.6.2 // indirect
Expand Down
Loading
Loading