Skip to content

Commit 29336ba

Browse files
committed
fix(fxtestcontainer): add missing test
1 parent b28a292 commit 29336ba

File tree

2 files changed

+67
-0
lines changed

2 files changed

+67
-0
lines changed

fxtestcontainer/factory_test.go

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,65 @@ func TestDefaultContainerConfigFactory_Create_NotFound(t *testing.T) {
3838
assert.Nil(t, containerConfig)
3939
assert.ErrorIs(t, err, fxtestcontainer.ErrContainerConfigNotFound)
4040
}
41+
42+
func TestDefaultContainerConfigFactory_Create_DefaultName(t *testing.T) {
43+
t.Setenv("APP_ENV", "test")
44+
45+
cfg, err := config.NewDefaultConfigFactory().Create(config.WithFilePaths("./testdata/config"))
46+
require.NoError(t, err)
47+
48+
factory := fxtestcontainer.NewDefaultContainerConfigFactory(cfg)
49+
50+
containerConfig, err := factory.Create("noname")
51+
require.NoError(t, err)
52+
53+
// Should use configKey as default name when name is not provided
54+
assert.Equal(t, "noname", containerConfig.Name)
55+
assert.Equal(t, "nginx:alpine", containerConfig.Image)
56+
assert.Equal(t, "80/tcp", containerConfig.Port)
57+
}
58+
59+
func TestDefaultContainerConfigFactory_Create_CompleteConfig(t *testing.T) {
60+
t.Setenv("APP_ENV", "test")
61+
62+
cfg, err := config.NewDefaultConfigFactory().Create(config.WithFilePaths("./testdata/config"))
63+
require.NoError(t, err)
64+
65+
factory := fxtestcontainer.NewDefaultContainerConfigFactory(cfg)
66+
67+
containerConfig, err := factory.Create("postgres")
68+
require.NoError(t, err)
69+
70+
// Test all fields are properly populated
71+
assert.Equal(t, "test-postgres", containerConfig.Name)
72+
assert.Equal(t, "postgres:13", containerConfig.Image)
73+
assert.Equal(t, "5432/tcp", containerConfig.Port)
74+
75+
// Test exposed ports
76+
expectedExposedPorts := []string{"5432/tcp"}
77+
assert.Equal(t, expectedExposedPorts, containerConfig.ExposedPorts)
78+
79+
// Test environment variables (should be uppercase)
80+
expectedEnv := map[string]string{
81+
"POSTGRES_DB": "testdb",
82+
"POSTGRES_USER": "testuser",
83+
"POSTGRES_PASSWORD": "testpass",
84+
}
85+
assert.Equal(t, expectedEnv, containerConfig.Environment)
86+
87+
// Test command
88+
expectedCmd := []string{"postgres", "-c", "log_statement=all"}
89+
assert.Equal(t, expectedCmd, containerConfig.Cmd)
90+
}
91+
92+
func TestNewDefaultContainerConfigFactory(t *testing.T) {
93+
t.Setenv("APP_ENV", "test")
94+
95+
cfg, err := config.NewDefaultConfigFactory().Create(config.WithFilePaths("./testdata/config"))
96+
require.NoError(t, err)
97+
98+
factory := fxtestcontainer.NewDefaultContainerConfigFactory(cfg)
99+
100+
assert.NotNil(t, factory)
101+
assert.IsType(t, &fxtestcontainer.DefaultContainerConfigFactory{}, factory)
102+
}

fxtestcontainer/testdata/config/config.test.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,8 @@ modules:
2828
- "postgres"
2929
- "-c"
3030
- "log_statement=all"
31+
32+
# Container without explicit name for testing default name assignment
33+
noname:
34+
image: "nginx:alpine"
35+
port: "80/tcp"

0 commit comments

Comments
 (0)