@@ -29,11 +29,50 @@ target "webapp" {
2929
3030 ctx := context .TODO ()
3131
32- m , err := ReadTargets (ctx , []string {fp }, []string {"webapp" }, nil )
33- require .NoError (t , err )
32+ t .Run ("NoOverrides" , func (t * testing.T ) {
33+ m , err := ReadTargets (ctx , []string {fp }, []string {"webapp" }, nil )
34+ require .NoError (t , err )
35+
36+ require .Equal (t , "Dockerfile.webapp" , * m ["webapp" ].Dockerfile )
37+ require .Equal (t , "." , * m ["webapp" ].Context )
38+ })
39+
40+ t .Run ("ArgsOverrides" , func (t * testing.T ) {
41+ os .Setenv ("VAR_FROMENV" + t .Name (), "fromEnv" )
42+ defer os .Unsetenv ("VAR_FROM_ENV" + t .Name ())
43+
44+ m , err := ReadTargets (ctx , []string {fp }, []string {"webapp" }, []string {
45+ "webapp.args.VAR_UNSET" ,
46+ "webapp.args.VAR_EMPTY=" ,
47+ "webapp.args.VAR_SET=bananas" ,
48+ "webapp.args.VAR_FROMENV" + t .Name (),
49+ })
50+ require .NoError (t , err )
51+
52+ require .Equal (t , "Dockerfile.webapp" , * m ["webapp" ].Dockerfile )
53+ require .Equal (t , "." , * m ["webapp" ].Context )
54+
55+ _ , isSet := m ["webapp" ].Args ["VAR_UNSET" ]
56+ require .False (t , isSet , m ["webapp" ].Args ["VAR_UNSET" ])
57+
58+ _ , isSet = m ["webapp" ].Args ["VAR_EMPTY" ]
59+ require .True (t , isSet , m ["webapp" ].Args ["VAR_EMPTY" ])
60+
61+ require .Equal (t , m ["webapp" ].Args ["VAR_SET" ], "bananas" )
62+
63+ require .Equal (t , m ["webapp" ].Args ["VAR_FROMENV" + t .Name ()], "fromEnv" )
64+ })
65+
66+ t .Run ("ContextOverride" , func (t * testing.T ) {
67+ _ , err := ReadTargets (ctx , []string {fp }, []string {"webapp" }, []string {"webapp.context" })
68+ require .NotNil (t , err )
69+
70+ m , err := ReadTargets (ctx , []string {fp }, []string {"webapp" }, []string {"webapp.context=foo" })
71+ require .NoError (t , err )
72+
73+ require .Equal (t , "foo" , * m ["webapp" ].Context )
74+ })
3475
35- require .Equal (t , "Dockerfile.webapp" , * m ["webapp" ].Dockerfile )
36- require .Equal (t , "." , * m ["webapp" ].Context )
3776}
3877
3978func TestReadTargetsCompose (t * testing.T ) {
0 commit comments