@@ -74,71 +74,57 @@ func TestAddCapabilities_VerifyPreconditions(t *testing.T) {
7474 env := test .SetupEnvV2 (t , false )
7575 chainSelector := env .RegistrySelector
7676
77- // Missing donName and donNames
78- err := cs .VerifyPreconditions (* env .Env , changeset.AddCapabilitiesInput {
79- RegistryChainSel : chainSelector ,
80- RegistryQualifier : "qual" ,
81- DonNames : nil ,
82- CapabilityConfigs : []contracts.CapabilityConfig {{Capability : contracts.Capability {CapabilityID : "cap@1.0.0" }}},
83- })
84- require .Error (t , err )
85- assert .Contains (t , err .Error (), "must specify donName or donNames" )
77+ capCfg := []contracts.CapabilityConfig {{Capability : contracts.Capability {CapabilityID : "cap@1.0.0" }, Config : map [string ]any {"k" : "v" }}}
8678
87- // Both donName and donNames set
88- err = cs .VerifyPreconditions (* env .Env , changeset.AddCapabilitiesInput {
89- RegistryChainSel : chainSelector ,
90- RegistryQualifier : "qual" ,
91- DonName : "don-1" ,
92- DonNames : []string {"don-2" },
93- CapabilityConfigs : []contracts.CapabilityConfig {{Capability : contracts.Capability {CapabilityID : "cap@1.0.0" }}},
79+ // Empty map
80+ err := cs .VerifyPreconditions (* env .Env , changeset.AddCapabilitiesInput {
81+ RegistryChainSel : chainSelector ,
82+ RegistryQualifier : "qual" ,
83+ DonCapabilityConfigs : nil ,
9484 })
9585 require .Error (t , err )
96- assert .Contains (t , err .Error (), "cannot specify both donName and donNames " )
86+ assert .Contains (t , err .Error (), "donCapabilityConfigs must contain at least one DON entry " )
9787
98- // donNames with empty string
88+ // Empty DON name key
9989 err = cs .VerifyPreconditions (* env .Env , changeset.AddCapabilitiesInput {
10090 RegistryChainSel : chainSelector ,
10191 RegistryQualifier : "qual" ,
102- DonNames : []string {"don-1" , "" },
103- CapabilityConfigs : []contracts.CapabilityConfig {{Capability : contracts.Capability {CapabilityID : "cap@1.0.0" }}},
92+ DonCapabilityConfigs : map [string ][]contracts.CapabilityConfig {
93+ "" : capCfg ,
94+ },
10495 })
10596 require .Error (t , err )
106- assert .Contains (t , err .Error (), "cannot contain an empty string " )
97+ assert .Contains (t , err .Error (), "cannot be empty strings " )
10798
108- // Missing capability configs
99+ // Empty config list for a DON
109100 err = cs .VerifyPreconditions (* env .Env , changeset.AddCapabilitiesInput {
110101 RegistryChainSel : chainSelector ,
111102 RegistryQualifier : "qual" ,
112- DonNames : []string {"don-1" },
113- CapabilityConfigs : nil ,
103+ DonCapabilityConfigs : map [string ][]contracts.CapabilityConfig {
104+ "don-1" : {},
105+ },
114106 })
115107 require .Error (t , err )
116- assert .Contains (t , err .Error (), "capabilityConfigs " )
108+ assert .Contains (t , err .Error (), "at least one capability config " )
117109
118- // Valid (single DON via donNames )
110+ // Valid (single DON)
119111 err = cs .VerifyPreconditions (* env .Env , changeset.AddCapabilitiesInput {
120112 RegistryChainSel : chainSelector ,
121113 RegistryQualifier : "qual" ,
122- DonNames : []string {"don-1" },
123- CapabilityConfigs : []contracts.CapabilityConfig {{Capability : contracts.Capability {CapabilityID : "cap@1.0.0" }, Config : map [string ]any {"k" : "v" }}},
124- })
125- require .NoError (t , err )
126-
127- // Valid (single DON via donName - backward compatibility)
128- err = cs .VerifyPreconditions (* env .Env , changeset.AddCapabilitiesInput {
129- RegistryChainSel : chainSelector ,
130- RegistryQualifier : "qual" ,
131- DonName : "don-1" ,
132- CapabilityConfigs : []contracts.CapabilityConfig {{Capability : contracts.Capability {CapabilityID : "cap@1.0.0" }, Config : map [string ]any {"k" : "v" }}},
114+ DonCapabilityConfigs : map [string ][]contracts.CapabilityConfig {
115+ "don-1" : capCfg ,
116+ },
133117 })
134118 require .NoError (t , err )
135119
136120 // Valid (multiple DONs)
137121 err = cs .VerifyPreconditions (* env .Env , changeset.AddCapabilitiesInput {
138122 RegistryChainSel : chainSelector ,
139123 RegistryQualifier : "qual" ,
140- DonNames : []string {"don-1" , "don-2" },
141- CapabilityConfigs : []contracts.CapabilityConfig {{Capability : contracts.Capability {CapabilityID : "cap@1.0.0" }, Config : map [string ]any {"k" : "v" }}},
124+ DonCapabilityConfigs : map [string ][]contracts.CapabilityConfig {
125+ "don-1" : capCfg ,
126+ "don-2" : capCfg ,
127+ },
142128 })
143129 require .NoError (t , err )
144130}
@@ -147,15 +133,16 @@ func addNewCapability(t *testing.T, fixture *test.EnvWrapperV2, capID string) {
147133 input := changeset.AddCapabilitiesInput {
148134 RegistryChainSel : fixture .RegistrySelector ,
149135 RegistryQualifier : test .RegistryQualifier ,
150- DonNames : []string {test .DONName },
151- CapabilityConfigs : []contracts.CapabilityConfig {{
152- Capability : contracts.Capability {
153- CapabilityID : capID ,
154- ConfigurationContract : common.Address {},
155- Metadata : newCapMetadata ,
156- },
157- Config : newCapConfig ,
158- }},
136+ DonCapabilityConfigs : map [string ][]contracts.CapabilityConfig {
137+ test .DONName : {{
138+ Capability : contracts.Capability {
139+ CapabilityID : capID ,
140+ ConfigurationContract : common.Address {},
141+ Metadata : newCapMetadata ,
142+ },
143+ Config : newCapConfig ,
144+ }},
145+ },
159146 Force : true ,
160147 }
161148
@@ -246,15 +233,16 @@ func TestAddCapabilities_Apply_MCMS(t *testing.T) {
246233 input := changeset.AddCapabilitiesInput {
247234 RegistryChainSel : fixture .RegistrySelector ,
248235 RegistryQualifier : test .RegistryQualifier ,
249- DonNames : []string {test .DONName },
250- CapabilityConfigs : []contracts.CapabilityConfig {{
251- Capability : contracts.Capability {
252- CapabilityID : newCapID ,
253- ConfigurationContract : common.Address {},
254- Metadata : newCapMetadata ,
255- },
256- Config : newCapConfig ,
257- }},
236+ DonCapabilityConfigs : map [string ][]contracts.CapabilityConfig {
237+ test .DONName : {{
238+ Capability : contracts.Capability {
239+ CapabilityID : newCapID ,
240+ ConfigurationContract : common.Address {},
241+ Metadata : newCapMetadata ,
242+ },
243+ Config : newCapConfig ,
244+ }},
245+ },
258246 Force : true ,
259247 MCMSConfig : & crecontracts.MCMSConfig {
260248 MinDelay : 1 * time .Second ,
0 commit comments