@@ -468,7 +468,7 @@ func TestNonStringKeys(t *testing.T) {
468468 foo:
469469 image: busybox
470470` )
471- assert .ErrorContains (t , err , " non-string key at top level: 123" )
471+ assert .ErrorContains (t , err , ` non-string key at top level: " 123"` )
472472
473473 _ , err = loadYAML (`
474474services:
@@ -477,7 +477,7 @@ services:
477477 123:
478478 image: busybox
479479` )
480- assert .ErrorContains (t , err , " non-string key in services: 123" )
480+ assert .ErrorContains (t , err , ` non-string key in services: " 123"` )
481481
482482 _ , err = loadYAML (`
483483services:
@@ -489,7 +489,7 @@ networks:
489489 config:
490490 - 123: oh dear
491491` )
492- assert .ErrorContains (t , err , "non-string key in networks.default.ipam.config[0]: 123" )
492+ assert .ErrorContains (t , err , "networks.default.ipam.config.0: Additional property 123 is not allowed " )
493493
494494 _ , err = loadYAML (`
495495services:
@@ -516,44 +516,44 @@ services:
516516 - foo:
517517 image: busybox
518518` )
519- assert .ErrorContains (t , err , "services must be a mapping" )
519+ assert .ErrorContains (t , err , "services: must be a mapping" )
520520
521521 _ , err = loadYAML (`
522522name: non-mapping-object
523523services:
524524 foo: busybox
525525` )
526- assert .ErrorContains (t , err , "services.foo must be a mapping" )
526+ assert .ErrorContains (t , err , "services.foo: must be a mapping" )
527527
528528 _ , err = loadYAML (`
529529name: non-mapping-object
530530networks:
531531 - default:
532532 driver: bridge
533533` )
534- assert .ErrorContains (t , err , "networks must be a mapping" )
534+ assert .ErrorContains (t , err , "networks: must be a mapping" )
535535
536536 _ , err = loadYAML (`
537537name: non-mapping-object
538538networks:
539539 default: bridge
540540` )
541- assert .ErrorContains (t , err , "networks.default must be a mapping" )
541+ assert .ErrorContains (t , err , "networks.default: must be a mapping" )
542542
543543 _ , err = loadYAML (`
544544name: non-mapping-object
545545volumes:
546546 - data:
547547 driver: local
548548` )
549- assert .ErrorContains (t , err , "volumes must be a mapping" )
549+ assert .ErrorContains (t , err , "volumes: must be a mapping" )
550550
551551 _ , err = loadYAML (`
552552name: non-mapping-object
553553volumes:
554554 data: local
555555` )
556- assert .ErrorContains (t , err , "volumes.data must be a mapping" )
556+ assert .ErrorContains (t , err , "volumes.data: must be a mapping" )
557557}
558558
559559func TestNonStringImage (t * testing.T ) {
@@ -563,7 +563,7 @@ services:
563563 foo:
564564 image: ["busybox", "latest"]
565565` )
566- assert .ErrorContains (t , err , "services.foo.image must be a string" )
566+ assert .ErrorContains (t , err , "services.foo.image: must be a string" )
567567}
568568
569569func TestLoadWithEnvironment (t * testing.T ) {
@@ -640,7 +640,7 @@ services:
640640 environment:
641641 FOO: ["1"]
642642` )
643- assert .ErrorContains (t , err , "services.dict-env.environment.FOO must be a string, number, boolean or null" )
643+ assert .ErrorContains (t , err , "services.dict-env.environment.FOO: must be a string, number, boolean or null" )
644644}
645645
646646func TestInvalidEnvironmentObject (t * testing.T ) {
@@ -651,7 +651,7 @@ services:
651651 image: busybox
652652 environment: "FOO=1"
653653` )
654- assert .ErrorContains (t , err , "services.dict-env.environment must be a mapping" )
654+ assert .ErrorContains (t , err , "services.dict-env.environment: must be a mapping" )
655655}
656656
657657func TestLoadWithEnvironmentInterpolation (t * testing.T ) {
@@ -990,7 +990,7 @@ func TestDecodeErrors(t *testing.T) {
990990
991991 configDetails := buildConfigDetails (dict , nil )
992992 _ , err := LoadWithContext (context .TODO (), configDetails )
993- assert .Error (t , err , "yaml: line 4: found a tab character that violates indentation " )
993+ assert .ErrorContains (t , err , "found character ' \t ' that cannot start any token " )
994994}
995995
996996func TestBuildProperties (t * testing.T ) {
@@ -1196,7 +1196,7 @@ services:
11961196 foo:
11971197 bar: zot
11981198` )
1199- assert .ErrorContains (t , err , "services.tmpfs.volumes.0 Additional property foo is not allowed" )
1199+ assert .ErrorContains (t , err , "services.tmpfs.volumes.0: Additional property foo is not allowed" )
12001200}
12011201
12021202func TestLoadBindMountSourceMustNotBeEmpty (t * testing.T ) {
@@ -1350,7 +1350,7 @@ services:
13501350 tmpfs:
13511351 size: -1
13521352` )
1353- assert .ErrorContains (t , err , "services.tmpfs.volumes.0.tmpfs.size Must be greater than or equal to 0" )
1353+ assert .ErrorContains (t , err , "services.tmpfs.volumes.0.tmpfs.size: Must be greater than or equal to 0" )
13541354}
13551355
13561356func TestLoadTmpfsVolumeSizeMustBeInteger (t * testing.T ) {
@@ -1365,7 +1365,7 @@ services:
13651365 tmpfs:
13661366 size: 0.0001
13671367` )
1368- assert .ErrorContains (t , err , "services.tmpfs.volumes.0.tmpfs.size must be a integer" )
1368+ assert .ErrorContains (t , err , "services.tmpfs.volumes.0.tmpfs.size: must be a integer" )
13691369}
13701370
13711371func TestLoadAttachableNetwork (t * testing.T ) {
@@ -2421,7 +2421,7 @@ services:
24212421 context: .
24222422 ssh:
24232423` )
2424- assert .ErrorContains (t , err , "services.test.build.ssh must be a mapping" )
2424+ assert .ErrorContains (t , err , "services.test.build.ssh: must be a mapping" )
24252425}
24262426
24272427func TestLoadLegacyBoolean (t * testing.T ) {
@@ -2653,7 +2653,7 @@ func TestDeviceWriteBps(t *testing.T) {
26532653
26542654func TestInvalidProjectNameType (t * testing.T ) {
26552655 p , err := loadYAML (`name: 123` )
2656- assert .Error (t , err , "validating filename0.yml: name must be a string" )
2656+ assert .ErrorContains (t , err , "name: must be a string" )
26572657 assert .Assert (t , is .Nil (p ))
26582658}
26592659
@@ -3132,7 +3132,7 @@ services:
31323132` , nil ), func (options * Options ) {
31333133 options .ResolvePaths = false
31343134 })
3135- assert .ErrorContains (t , err , "validating filename0.yml: services.frontend.develop.watch.0 action is required" )
3135+ assert .ErrorContains (t , err , "services.frontend.develop.watch.0: action is required" )
31363136}
31373137
31383138func TestBadServiceConfig (t * testing.T ) {
@@ -3729,7 +3729,7 @@ services:
37293729 environment:
37303730 - DEBUG = true
37313731` )
3732- assert .Check (t , strings . Contains ( err . Error () , "'services[test].environment': environment variable DEBUG is declared with a trailing space" ) )
3732+ assert .ErrorContains (t , err , "'services[test].environment': environment variable DEBUG is declared with a trailing space" )
37333733}
37343734
37353735func TestFileModeNumber (t * testing.T ) {
0 commit comments