Change compose file handling to require valid service specifications

Added the checks and some tests
One of the tests wasn't valid docker-compose.yml, that's been changed.
Bad config throws an error and has a test

Signed-off-by: Jack Laxson <jackjrabbit@gmail.com>
This commit is contained in:
Jack Laxson
2019-05-18 05:53:44 -04:00
committed by Tibor Vass
parent 61a6fdd767
commit 4b2666b9d6
3 changed files with 49 additions and 1 deletions

View File

@ -40,6 +40,22 @@ services:
require.Equal(t, "123", c.Target["webapp"].Args["buildno"])
}
func TestNoBuildOutOfTreeService(t *testing.T) {
var dt = []byte(`
version: "3.7"
services:
external:
image: "verycooldb:1337"
webapp:
build: ./db
`)
c, err := ParseCompose(dt)
require.NoError(t, err)
require.Equal(t, 1, len(c.Group))
}
func TestParseComposeTarget(t *testing.T) {
var dt = []byte(`
version: "3.7"
@ -47,9 +63,11 @@ version: "3.7"
services:
db:
build:
context: ./db
target: db
webapp:
build:
context: .
target: webapp
`)
@ -59,3 +77,21 @@ services:
require.Equal(t, "db", *c.Target["db"].Target)
require.Equal(t, "webapp", *c.Target["webapp"].Target)
}
func TestBogusCompose(t *testing.T) {
var dt = []byte(`
version: "3.7"
services:
db:
build:
target: db
webapp:
build:
context: .
target: webapp
`)
_, err := ParseCompose(dt)
require.Error(t, err)
}