@@ -82,7 +82,7 @@ networks:
8282 mynet:
8383 name: myProject_mynet
8484`
85- err := normalize (& project , false )
85+ err := Normalize (& project , false )
8686 assert .NilError (t , err )
8787 marshal , err := yaml .Marshal (project )
8888 assert .NilError (t , err )
@@ -118,7 +118,7 @@ networks:
118118 default:
119119 name: myProject_default
120120` , filepath .Join (wd , "testdata" ))
121- err := normalize (& project , true )
121+ err := Normalize (& project , true )
122122 assert .NilError (t , err )
123123 marshal , err := yaml .Marshal (project )
124124 assert .NilError (t , err )
@@ -142,7 +142,7 @@ func TestNormalizeAbsolutePaths(t *testing.T) {
142142 WorkingDir : absWorkingDir ,
143143 ComposeFiles : []string {absComposeFile , absOverrideFile },
144144 }
145- err := normalize (& project , false )
145+ err := Normalize (& project , false )
146146 assert .NilError (t , err )
147147 assert .DeepEqual (t , expected , project )
148148}
@@ -180,7 +180,65 @@ func TestNormalizeVolumes(t *testing.T) {
180180 WorkingDir : absCwd ,
181181 ComposeFiles : []string {},
182182 }
183- err := normalize (& project , false )
183+ err := Normalize (& project , false )
184184 assert .NilError (t , err )
185185 assert .DeepEqual (t , expected , project )
186186}
187+
188+ func TestNormalizeDependsOn (t * testing.T ) {
189+ project := types.Project {
190+ Name : "myProject" ,
191+ Networks : types.Networks {},
192+ Volumes : types.Volumes {},
193+ Services : []types.ServiceConfig {
194+ {
195+ Name : "foo" ,
196+ DependsOn : map [string ]types.ServiceDependency {
197+ "bar" : { // explicit depends_on never should be overridden
198+ Condition : types .ServiceConditionHealthy ,
199+ Restart : false ,
200+ },
201+ },
202+ NetworkMode : "service:zot" ,
203+ },
204+ {
205+ Name : "bar" ,
206+ VolumesFrom : []string {"zot" },
207+ },
208+ {
209+ Name : "zot" ,
210+ },
211+ },
212+ }
213+
214+ expected := `name: myProject
215+ services:
216+ bar:
217+ depends_on:
218+ zot:
219+ condition: service_started
220+ networks:
221+ default: null
222+ volumes_from:
223+ - zot
224+ foo:
225+ depends_on:
226+ bar:
227+ condition: service_healthy
228+ zot:
229+ condition: service_started
230+ restart: true
231+ network_mode: service:zot
232+ zot:
233+ networks:
234+ default: null
235+ networks:
236+ default:
237+ name: myProject_default
238+ `
239+ err := Normalize (& project , true )
240+ assert .NilError (t , err )
241+ marshal , err := yaml .Marshal (project )
242+ assert .NilError (t , err )
243+ assert .DeepEqual (t , expected , string (marshal ))
244+ }
0 commit comments