@@ -82,7 +82,7 @@ networks:
82
82
mynet:
83
83
name: myProject_mynet
84
84
`
85
- err := normalize (& project , false )
85
+ err := Normalize (& project , false )
86
86
assert .NilError (t , err )
87
87
marshal , err := yaml .Marshal (project )
88
88
assert .NilError (t , err )
@@ -118,7 +118,7 @@ networks:
118
118
default:
119
119
name: myProject_default
120
120
` , filepath .Join (wd , "testdata" ))
121
- err := normalize (& project , true )
121
+ err := Normalize (& project , true )
122
122
assert .NilError (t , err )
123
123
marshal , err := yaml .Marshal (project )
124
124
assert .NilError (t , err )
@@ -142,7 +142,7 @@ func TestNormalizeAbsolutePaths(t *testing.T) {
142
142
WorkingDir : absWorkingDir ,
143
143
ComposeFiles : []string {absComposeFile , absOverrideFile },
144
144
}
145
- err := normalize (& project , false )
145
+ err := Normalize (& project , false )
146
146
assert .NilError (t , err )
147
147
assert .DeepEqual (t , expected , project )
148
148
}
@@ -180,7 +180,65 @@ func TestNormalizeVolumes(t *testing.T) {
180
180
WorkingDir : absCwd ,
181
181
ComposeFiles : []string {},
182
182
}
183
- err := normalize (& project , false )
183
+ err := Normalize (& project , false )
184
184
assert .NilError (t , err )
185
185
assert .DeepEqual (t , expected , project )
186
186
}
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