Dan Anglin
2a761272a0
The shared volume will be used by each container to share their specific traefik dynamic configuration to allow Traefik to dynamically configure the backend.
81 lines
1.8 KiB
Go
81 lines
1.8 KiB
Go
package config
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestValidConfig(t *testing.T) {
|
|
var testCase = struct {
|
|
name string
|
|
description string
|
|
file string
|
|
want Config
|
|
}{
|
|
name: "Test case: A valid Config",
|
|
description: "Testing the parsing of valid configuration.",
|
|
file: "./testdata/config-valid.json",
|
|
want: Config{
|
|
ProjectName: "forge-platform-test-config",
|
|
Docker: DockerConfig{
|
|
Network: DockerNetworkConfig{
|
|
Name: "forge-platform-test-netwwork",
|
|
Subnet: "172.17.1.0/24",
|
|
Driver: "default",
|
|
},
|
|
SharedVolume: DockerSharedVolumeConfig{
|
|
Name: "shared-volume",
|
|
},
|
|
},
|
|
Services: ServicesConfig{
|
|
Traefik: TraefikConfig{
|
|
CheckNewVersion: true,
|
|
SendAnonymousUsage: false,
|
|
Version: "v2.4.9",
|
|
ContainerIp: "172.17.1.2",
|
|
LogLevel: "info",
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
testFunc := func(t *testing.T) {
|
|
t.Log(testCase.description)
|
|
got, err := NewConfig(testCase.file)
|
|
if err != nil {
|
|
t.Fatalf("Unable to create the configuration from file: %v", err)
|
|
}
|
|
|
|
if !reflect.DeepEqual(got, testCase.want) {
|
|
t.Errorf("Unexpected Config value created. Got %v, want %v", got, testCase.want)
|
|
} else {
|
|
t.Log("Test passed.")
|
|
}
|
|
}
|
|
|
|
t.Run(testCase.name, testFunc)
|
|
}
|
|
|
|
func TestInvalidConfig(t *testing.T) {
|
|
var testCase = struct {
|
|
name string
|
|
description string
|
|
file string
|
|
}{
|
|
name: "Test case: An invalid Config",
|
|
description: "Testing the handling of invalid configuration.",
|
|
file: "./testdata/config-invalid.json",
|
|
}
|
|
|
|
testFunc := func(t *testing.T) {
|
|
t.Log(testCase.description)
|
|
_, err := NewConfig(testCase.file)
|
|
if err == nil {
|
|
t.Error("Expected an error with this invalid configuration.")
|
|
} else {
|
|
t.Log("Test passed.")
|
|
}
|
|
}
|
|
|
|
t.Run(testCase.name, testFunc)
|
|
}
|