62 lines
1.1 KiB
Go
62 lines
1.1 KiB
Go
package stackutils
|
|
|
|
import (
|
|
"testing"
|
|
|
|
portainer "github.com/portainer/portainer/api"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestIsValidStackFile_DefaultPortEnvSubstitution(t *testing.T) {
|
|
yamlContent := []byte(`
|
|
version: "3"
|
|
|
|
services:
|
|
webservice:
|
|
image: nginx
|
|
container_name: hello-world
|
|
networks:
|
|
- "mynet1"
|
|
ports:
|
|
- "${PORT:-8080}:80"
|
|
|
|
networks:
|
|
mynet1:
|
|
driver: bridge
|
|
ipam:
|
|
config:
|
|
- subnet: 172.16.0.0/24
|
|
`)
|
|
|
|
securitySettings := &portainer.EndpointSecuritySettings{}
|
|
err := IsValidStackFile(yamlContent, securitySettings)
|
|
require.NoError(t, err)
|
|
}
|
|
|
|
func TestIsValidStackFile_PortEnv(t *testing.T) {
|
|
yamlContent := []byte(`
|
|
version: "3"
|
|
|
|
services:
|
|
webservice:
|
|
image: nginx
|
|
container_name: hello-world
|
|
networks:
|
|
- "mynet1"
|
|
ports:
|
|
- "${PORT}:80"
|
|
|
|
networks:
|
|
mynet1:
|
|
driver: bridge
|
|
ipam:
|
|
config:
|
|
- subnet: 172.16.0.0/24
|
|
`)
|
|
|
|
securitySettings := &portainer.EndpointSecuritySettings{}
|
|
err := IsValidStackFile(yamlContent, securitySettings)
|
|
require.NoError(t, err)
|
|
}
|