@@ -715,6 +715,57 @@ func TestValidateRuleSetMetadataUpdateRejectsRuleSetThatWouldRequireLegacyDNSMod
715715 require .ErrorContains (t , err , "Address Filter Fields" )
716716}
717717
718+ func TestValidateRuleSetMetadataUpdateAllowsRuleSetThatKeepsNewMode (t * testing.T ) {
719+ t .Parallel ()
720+
721+ fakeSet := & fakeRuleSet {}
722+ routerService := & fakeRouter {
723+ ruleSets : map [string ]adapter.RuleSet {
724+ "dynamic-set" : fakeSet ,
725+ },
726+ }
727+ ctx := service .ContextWith [adapter.Router ](context .Background (), routerService )
728+ router := newTestRouterWithContext (t , ctx , []option.DNSRule {
729+ {
730+ Type : C .RuleTypeDefault ,
731+ DefaultOptions : option.DefaultDNSRule {
732+ RawDefaultDNSRule : option.RawDefaultDNSRule {
733+ Domain : badoption.Listable [string ]{"example.com" },
734+ },
735+ DNSRuleAction : option.DNSRuleAction {
736+ Action : C .RuleActionTypeEvaluate ,
737+ RouteOptions : option.DNSRouteActionOptions {Server : "upstream" },
738+ },
739+ },
740+ },
741+ {
742+ Type : C .RuleTypeDefault ,
743+ DefaultOptions : option.DefaultDNSRule {
744+ RawDefaultDNSRule : option.RawDefaultDNSRule {
745+ RuleSet : badoption.Listable [string ]{"dynamic-set" },
746+ },
747+ DNSRuleAction : option.DNSRuleAction {
748+ Action : C .RuleActionTypeRoute ,
749+ RouteOptions : option.DNSRouteActionOptions {Server : "selected" },
750+ },
751+ },
752+ },
753+ }, & fakeDNSTransportManager {
754+ defaultTransport : & fakeDNSTransport {tag : "default" , transportType : C .DNSTypeUDP },
755+ transports : map [string ]adapter.DNSTransport {
756+ "default" : & fakeDNSTransport {tag : "default" , transportType : C .DNSTypeUDP },
757+ "selected" : & fakeDNSTransport {tag : "selected" , transportType : C .DNSTypeUDP },
758+ "upstream" : & fakeDNSTransport {tag : "upstream" , transportType : C .DNSTypeUDP },
759+ },
760+ }, & fakeDNSClient {})
761+ require .False (t , router .legacyDNSMode )
762+
763+ err := router .ValidateRuleSetMetadataUpdate ("dynamic-set" , adapter.RuleSetMetadata {
764+ ContainsIPCIDRRule : true ,
765+ })
766+ require .NoError (t , err )
767+ }
768+
718769func TestValidateRuleSetMetadataUpdateAllowsRelaxingLegacyRequirement (t * testing.T ) {
719770 t .Parallel ()
720771
0 commit comments