@@ -557,40 +557,40 @@ func TestBuildTargetDatalogFacts(t *testing.T) {
557557 }
558558}
559559
560- func TestRegionFactsAndCheck (t * testing.T ) {
560+ func TestLabelFactsAndCheck (t * testing.T ) {
561561 pub , priv := makeKeyPair (t )
562562
563- if facts := RegionFacts ( "" ); facts != nil {
564- t .Errorf ("RegionFacts( \" \" ) = %v, want nil" , facts )
563+ if facts := LabelFacts ( nil ); facts != nil {
564+ t .Errorf ("LabelFacts(nil ) = %v, want nil" , facts )
565565 }
566- if _ , err := RegionCheck (nil ); err == nil {
567- t .Error ("RegionCheck (nil): expected error, got nil" )
566+ if _ , err := LabelCheck (nil ); err == nil {
567+ t .Error ("LabelCheck (nil): expected error, got nil" )
568568 }
569- if _ , err := RegionCheck ([ ]string {"MARS " }); err == nil {
570- t .Error ("RegionCheck(MARS ): expected error, got nil" )
569+ if _ , err := LabelCheck ( map [ string ]string {"region" : "bad,value " }); err == nil {
570+ t .Error ("LabelCheck(invalid value ): expected error, got nil" )
571571 }
572572
573573 tests := []struct {
574574 name string
575- claimed string // minted into the token via RegionFacts
576- required [ ]string
575+ claimed map [ string ] string // minted into the token via LabelFacts
576+ required map [ string ]string
577577 expectAllow bool
578578 }{
579- {"finer claim satisfies coarser requirement " , "EU-DE-BY" , [ ]string {"EU " }, true },
580- {"exact level match " , "EU-DE" , [ ]string {"EU-DE " }, true },
581- {"any-of requirement" , "NA-US " , [ ]string {"EU" , "NA-US " }, true },
582- {"lowercase requirement is normalized " , "EU-DE" , [ ]string {"eu" }, true },
583- {"coarser claim never satisfies finer requirement " , "EU" , [ ]string {"EU-DE " }, false },
584- {"disjoint region " , "NA-US" , [ ]string {"EU " }, false },
585- {"unattested token fails closed" , "" , [ ]string {"EU " }, false },
579+ {"exact match " , map [ string ] string { "region" : "us-east-1" }, map [ string ]string {"region" : "us-east-1 " }, true },
580+ {"any-of requirement " , map [ string ] string { "region" : "us-east-1" }, map [ string ]string {"region" : "eu" , "team" : "us-east-1 " }, false },
581+ {"any-of requirement matches one key " , map [ string ] string { "region" : "us-east-1 " , "team" : "platform" }, map [ string ]string {"region" : "eu" , "team" : "platform " }, true },
582+ {"case-sensitive value mismatch " , map [ string ] string { "region" : "us-east-1" }, map [ string ]string {"region" : "US-EAST-1" }, false },
583+ {"no built-in hierarchy: coarser requirement does not match a finer claim " , map [ string ] string { "region" : "us-east-1" }, map [ string ]string {"region" : "us " }, false },
584+ {"disjoint labels " , map [ string ] string { "region" : "us-east-1" }, map [ string ]string {"region" : "eu-west-1 " }, false },
585+ {"unattested token fails closed" , nil , map [ string ]string {"region" : "us-east-1 " }, false },
586586 }
587587
588588 for _ , tt := range tests {
589589 t .Run (tt .name , func (t * testing.T ) {
590590 builder := biscuit .NewBuilder (priv )
591- for _ , fact := range RegionFacts (tt .claimed ) {
591+ for _ , fact := range LabelFacts (tt .claimed ) {
592592 if err := builder .AddAuthorityFact (fact ); err != nil {
593- t .Fatalf ("failed to add region fact: %v" , err )
593+ t .Fatalf ("failed to add label fact: %v" , err )
594594 }
595595 }
596596 tok , err := builder .Build ()
@@ -602,9 +602,9 @@ func TestRegionFactsAndCheck(t *testing.T) {
602602 if err != nil {
603603 t .Fatalf ("failed to create authorizer: %v" , err )
604604 }
605- check , err := RegionCheck (tt .required )
605+ check , err := LabelCheck (tt .required )
606606 if err != nil {
607- t .Fatalf ("RegionCheck (%v): %v" , tt .required , err )
607+ t .Fatalf ("LabelCheck (%v): %v" , tt .required , err )
608608 }
609609 authorizer .AddCheck (check )
610610 authorizer .AddPolicy (AllowIfTruePolicy )
0 commit comments