73 lines
1.4 KiB
Go
73 lines
1.4 KiB
Go
|
package testutil
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"github.com/stretchr/testify/require"
|
||
|
)
|
||
|
|
||
|
func TestEmptyContainerIntegration(t *testing.T) {
|
||
|
if testing.Short() {
|
||
|
t.Skip("Skipping integration test in short mode")
|
||
|
}
|
||
|
|
||
|
container := Container{
|
||
|
Image: "docksal/empty",
|
||
|
}
|
||
|
|
||
|
err := container.Start()
|
||
|
require.NoError(t, err)
|
||
|
|
||
|
container.Terminate()
|
||
|
}
|
||
|
|
||
|
func TestMappedPortLookupIntegration(t *testing.T) {
|
||
|
if testing.Short() {
|
||
|
t.Skip("Skipping integration test in short mode")
|
||
|
}
|
||
|
t.Skip("Broken due to testcontainers/testcontainers-go#2652")
|
||
|
|
||
|
cases := []struct {
|
||
|
name string
|
||
|
port string
|
||
|
expected string
|
||
|
}{
|
||
|
{"random", "80", "80"},
|
||
|
{"only 80", "80:80", "80"},
|
||
|
{"only 80", "80:80/tcp", "80"},
|
||
|
{"only 8080", "8080:80", "8080"},
|
||
|
{"only 8080", "8080:80/tcp", "8080"},
|
||
|
}
|
||
|
|
||
|
for _, tc := range cases {
|
||
|
container := Container{
|
||
|
Image: "nginx:stable-alpine",
|
||
|
ExposedPorts: []string{tc.port},
|
||
|
}
|
||
|
|
||
|
err := container.Start()
|
||
|
require.NoError(t, err)
|
||
|
|
||
|
if tc.name == "random" {
|
||
|
require.NotEqual(t, tc.expected, container.Ports["80"])
|
||
|
} else {
|
||
|
require.Equal(t, tc.expected, container.Ports["80"])
|
||
|
}
|
||
|
|
||
|
container.Terminate()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestBadImageNameIntegration(t *testing.T) {
|
||
|
if testing.Short() {
|
||
|
t.Skip("Skipping integration test in short mode")
|
||
|
}
|
||
|
|
||
|
container := Container{
|
||
|
Image: "fAk3-n4mE",
|
||
|
}
|
||
|
|
||
|
err := container.Start()
|
||
|
require.Error(t, err)
|
||
|
}
|