@@ -20,6 +20,7 @@ import (
2020 "bytes"
2121 "fmt"
2222 "os"
23+ "path/filepath"
2324 "sort"
2425 "strings"
2526 "testing"
@@ -270,6 +271,32 @@ func TestLoad(t *testing.T) {
270271 assert .Check (t , is .DeepEqual (sampleConfig .Volumes , actual .Volumes ))
271272}
272273
274+ func TestLoadFromFile (t * testing.T ) {
275+ workingDir , err := os .Getwd ()
276+ if err != nil {
277+ t .Fatalf ("os.Getwd(): %s" , err )
278+ }
279+ tmpdir := t .TempDir ()
280+ tmpPath := filepath .Join (tmpdir , "Docker-compose.yaml" )
281+ if err := os .WriteFile (tmpPath , []byte (sampleYAML ), 0444 ); err != nil {
282+ t .Fatalf ("failed to write temporary file: %s" , err )
283+ }
284+ actual , err := Load (types.ConfigDetails {
285+ WorkingDir : workingDir ,
286+ ConfigFiles : []types.ConfigFile {{
287+ Filename : tmpPath ,
288+ }},
289+ Environment : nil ,
290+ }, func (options * Options ) {
291+ options .SkipNormalization = true
292+ options .SkipConsistencyCheck = true
293+ })
294+ assert .NilError (t , err )
295+ assert .Check (t , is .DeepEqual (serviceSort (sampleConfig .Services ), serviceSort (actual .Services )))
296+ assert .Check (t , is .DeepEqual (sampleConfig .Networks , actual .Networks ))
297+ assert .Check (t , is .DeepEqual (sampleConfig .Volumes , actual .Volumes ))
298+ }
299+
273300func TestLoadExtensions (t * testing.T ) {
274301 actual , err := loadYAML (`
275302services:
0 commit comments