@@ -621,12 +621,13 @@ func TestFileProvider(t *testing.T) {
621621 testcases := []struct {
622622 name string
623623 args []string
624- test func (t * testing.T , cfg * static.Config )
624+ test func (t * testing.T , cfg * static.Config , err error )
625625 }{
626626 {
627627 name : "skipPrefix single element appends to default value" ,
628628 args : []string {"--providers-file-skip-prefix" , "foo" },
629- test : func (t * testing.T , cfg * static.Config ) {
629+ test : func (t * testing.T , cfg * static.Config , err error ) {
630+ require .NoError (t , err )
630631 require .Len (t , cfg .Providers .File .SkipPrefix , 2 )
631632 require .Contains (t , cfg .Providers .File .SkipPrefix , "foo" )
632633 require .Contains (t , cfg .Providers .File .SkipPrefix , "_" )
@@ -635,7 +636,8 @@ func TestFileProvider(t *testing.T) {
635636 {
636637 name : "skipPrefix list replace default value" ,
637638 args : []string {"--providers-file-skip-prefix" , "foo" , "bar" },
638- test : func (t * testing.T , cfg * static.Config ) {
639+ test : func (t * testing.T , cfg * static.Config , err error ) {
640+ require .NoError (t , err )
639641 require .Len (t , cfg .Providers .File .SkipPrefix , 2 )
640642 require .Contains (t , cfg .Providers .File .SkipPrefix , "foo" )
641643 require .Contains (t , cfg .Providers .File .SkipPrefix , "bar" )
@@ -644,42 +646,71 @@ func TestFileProvider(t *testing.T) {
644646 {
645647 name : "feature foo" ,
646648 args : []string {"--feature" , "foo" },
647- test : func (t * testing.T , cfg * static.Config ) {
649+ test : func (t * testing.T , cfg * static.Config , err error ) {
650+ require .NoError (t , err )
648651 require .Len (t , cfg .Features , 1 )
649652 require .Equal (t , "foo" , cfg .Features [0 ])
650653 },
651654 },
652655 {
653656 name : "event store size" ,
654657 args : []string {"--event-store-default" , "size=200" },
655- test : func (t * testing.T , cfg * static.Config ) {
658+ test : func (t * testing.T , cfg * static.Config , err error ) {
659+ require .NoError (t , err )
656660 require .Equal (t , int64 (200 ), cfg .Event .Store ["default" ].Size )
657661 },
658662 },
659663 {
660664 name : "event store size" ,
661665 args : []string {"--event-store-default-size" , "200" },
662- test : func (t * testing.T , cfg * static.Config ) {
666+ test : func (t * testing.T , cfg * static.Config , err error ) {
667+ require .NoError (t , err )
663668 require .Equal (t , int64 (200 ), cfg .Event .Store ["default" ].Size )
664669 },
665670 },
666671 {
667672 name : "default event store size" ,
668- test : func (t * testing.T , cfg * static.Config ) {
673+ test : func (t * testing.T , cfg * static.Config , err error ) {
674+ require .NoError (t , err )
669675 require .Equal (t , int64 (100 ), cfg .Event .Store ["default" ].Size )
670676 },
671677 },
672678 {
673679 name : "event store for foo" ,
674680 args : []string {"--event-store-foo-size" , "250" },
675- test : func (t * testing.T , cfg * static.Config ) {
681+ test : func (t * testing.T , cfg * static.Config , err error ) {
682+ require .NoError (t , err )
676683 require .Equal (t , int64 (250 ), cfg .Event .Store ["foo" ].Size )
677684 },
678685 },
679686 {
680687 name : "event store name with spaces" ,
681688 args : []string {"--event-store" , `Swagger PetStore API={"size": 250}` },
682- test : func (t * testing.T , cfg * static.Config ) {
689+ test : func (t * testing.T , cfg * static.Config , err error ) {
690+ require .NoError (t , err )
691+ require .Equal (t , int64 (250 ), cfg .Event .Store ["Swagger PetStore API" ].Size )
692+ },
693+ },
694+ {
695+ name : "event store name with spaces followed by positional parameter: error" ,
696+ args : []string {"--event-store" , `Swagger PetStore API={"size": 250}` , "smtp.yaml" },
697+ test : func (t * testing.T , cfg * static.Config , err error ) {
698+ require .EqualError (t , err , "configuration error 'event-store' value '[Swagger PetStore API={\" size\" : 250} smtp.yaml]': expected key to set map value" )
699+ },
700+ },
701+ {
702+ name : "event store name with spaces and positional parameter" ,
703+ args : []string {"--event-store" , `Swagger PetStore API={"size": 250}` , "--" , "smtp.yaml" },
704+ test : func (t * testing.T , cfg * static.Config , err error ) {
705+ require .NoError (t , err )
706+ require .Equal (t , int64 (250 ), cfg .Event .Store ["Swagger PetStore API" ].Size )
707+ },
708+ },
709+ {
710+ name : "positional parameter followed event store name with spaces and " ,
711+ args : []string {"smtp.yaml" , "--event-store" , `Swagger PetStore API={"size": 250}` },
712+ test : func (t * testing.T , cfg * static.Config , err error ) {
713+ require .NoError (t , err )
683714 require .Equal (t , int64 (250 ), cfg .Event .Store ["Swagger PetStore API" ].Size )
684715 },
685716 },
@@ -694,9 +725,8 @@ func TestFileProvider(t *testing.T) {
694725
695726 cfg := static .NewConfig ()
696727 err := decoders .Load ([]decoders.ConfigDecoder {decoders .NewDefaultFileDecoder (), decoders .NewFlagDecoder ()}, cfg )
697- require .NoError (t , err )
698728
699- tc .test (t , cfg )
729+ tc .test (t , cfg , err )
700730 })
701731 }
702732}
0 commit comments