11package changeset_test
22
33import (
4+ "errors"
45 "fmt"
56 "testing"
67
@@ -88,34 +89,59 @@ func TestAddCapabilitiesRequest_Validate_WriterCapability(t *testing.T) {
8889 expectedError error
8990 }{
9091 {
91- name : "valid request with chain ID on capability name" ,
92+ name : "valid request with chain ID on capability name and `writer_` prefix " ,
9293 req : func (te test.EnvWrapper ) (* changeset.AddCapabilitiesRequest , error ) {
9394 chainID , err := chainselectors .GetChainIDFromSelector (chainselectors .TEST_90000001 .Selector )
9495 if err != nil {
9596 return nil , err
9697 }
9798 return & changeset.AddCapabilitiesRequest {
9899 RegistryChainSel : te .RegistrySelector ,
99- Capabilities : []kcr.CapabilitiesRegistryCapability {{LabelledName : fmt .Sprintf ("%s%s" , changeset .CapabilityTypeTargetNamePrefix , chainID ), Version : "1.0.0" , CapabilityType : changeset .CapabilityTypeTarget }},
100+ Capabilities : []kcr.CapabilitiesRegistryCapability {{LabelledName : fmt .Sprintf ("%s%s" , changeset .CapabilityTypeTargetNamePrefix1 , chainID ), Version : "1.0.0" , CapabilityType : changeset .CapabilityTypeTarget }},
101+ RegistryRef : te .CapabilityRegistryAddressRef (),
102+ }, nil
103+ },
104+ expectedError : nil ,
105+ },
106+ {
107+ name : "valid request with chain ID on capability name and `writer-` prefix" ,
108+ req : func (te test.EnvWrapper ) (* changeset.AddCapabilitiesRequest , error ) {
109+ chainID , err := chainselectors .GetChainIDFromSelector (chainselectors .TEST_90000001 .Selector )
110+ if err != nil {
111+ return nil , err
112+ }
113+ return & changeset.AddCapabilitiesRequest {
114+ RegistryChainSel : te .RegistrySelector ,
115+ Capabilities : []kcr.CapabilitiesRegistryCapability {{LabelledName : fmt .Sprintf ("%s%s" , changeset .CapabilityTypeTargetNamePrefix2 , chainID ), Version : "1.0.0" , CapabilityType : changeset .CapabilityTypeTarget }},
116+ RegistryRef : te .CapabilityRegistryAddressRef (),
117+ }, nil
118+ },
119+ expectedError : nil ,
120+ },
121+ {
122+ name : "valid request with chain name on capability name and `writer_` prefix" ,
123+ req : func (te test.EnvWrapper ) (* changeset.AddCapabilitiesRequest , error ) {
124+ chainName := "random-chain-name"
125+ return & changeset.AddCapabilitiesRequest {
126+ RegistryChainSel : te .RegistrySelector ,
127+ Capabilities : []kcr.CapabilitiesRegistryCapability {{LabelledName : fmt .Sprintf ("%s%s" , changeset .CapabilityTypeTargetNamePrefix1 , chainName ), Version : "1.0.0" , CapabilityType : changeset .CapabilityTypeTarget }},
128+ RegistryRef : te .CapabilityRegistryAddressRef (),
129+ }, nil
130+ },
131+ expectedError : nil ,
132+ },
133+ {
134+ name : "valid request with chain name on capability name and `writer-` prefix" ,
135+ req : func (te test.EnvWrapper ) (* changeset.AddCapabilitiesRequest , error ) {
136+ chainName := "random-chain-name-1"
137+ return & changeset.AddCapabilitiesRequest {
138+ RegistryChainSel : te .RegistrySelector ,
139+ Capabilities : []kcr.CapabilitiesRegistryCapability {{LabelledName : fmt .Sprintf ("%s%s" , changeset .CapabilityTypeTargetNamePrefix2 , chainName ), Version : "1.0.0" , CapabilityType : changeset .CapabilityTypeTarget }},
100140 RegistryRef : te .CapabilityRegistryAddressRef (),
101141 }, nil
102142 },
103143 expectedError : nil ,
104144 },
105- // Cannot test this since `chainselectors.ChainIdFromName()` uses the chains from the `.yaml` files,
106- // and the chain name is not set in the `test_selectors.yaml` file.
107- // {
108- // name: "valid request with chain name on capability name",
109- // req: func(te test.EnvWrapper) (*changeset.AddCapabilitiesRequest, error) {
110- // chain := te.Env.BlockChains.EVMChains()[chainselectors.TEST_90000001.Selector]
111- // return &changeset.AddCapabilitiesRequest{
112- // RegistryChainSel: te.RegistrySelector,
113- // Capabilities: []kcr.CapabilitiesRegistryCapability{{LabelledName: fmt.Sprintf("%s%s", changeset.CapabilityTypeTargetNamePrefix, chain.Name()), Version: "1.0.0", CapabilityType: changeset.CapabilityTypeTarget}},
114- // RegistryRef: te.CapabilityRegistryAddressRef(),
115- // }, nil
116- // },
117- // expectError: false,
118- // },
119145 {
120146 name : "empty capability name" ,
121147 req : func (te test.EnvWrapper ) (* changeset.AddCapabilitiesRequest , error ) {
@@ -132,11 +158,11 @@ func TestAddCapabilitiesRequest_Validate_WriterCapability(t *testing.T) {
132158 req : func (te test.EnvWrapper ) (* changeset.AddCapabilitiesRequest , error ) {
133159 return & changeset.AddCapabilitiesRequest {
134160 RegistryChainSel : te .RegistrySelector ,
135- Capabilities : []kcr.CapabilitiesRegistryCapability {{LabelledName : changeset .CapabilityTypeTargetNamePrefix , Version : "1.0.0" , CapabilityType : changeset .CapabilityTypeTarget }},
161+ Capabilities : []kcr.CapabilitiesRegistryCapability {{LabelledName : changeset .CapabilityTypeTargetNamePrefix1 , Version : "1.0.0" , CapabilityType : changeset .CapabilityTypeTarget }},
136162 RegistryRef : te .CapabilityRegistryAddressRef (),
137163 }, nil
138164 },
139- expectedError : changeset .ErrEmptyTrimmedWriteCapName ,
165+ expectedError : changeset .ErrInvalidWriteCapName ,
140166 },
141167 {
142168 name : "missing prefix on capability name" ,
@@ -150,26 +176,37 @@ func TestAddCapabilitiesRequest_Validate_WriterCapability(t *testing.T) {
150176 expectedError : changeset .ErrInvalidWriteCapName ,
151177 },
152178 {
153- name : "invalid chain name on capability name" ,
179+ name : "mixed chars after prefix as chain family" ,
180+ req : func (te test.EnvWrapper ) (* changeset.AddCapabilitiesRequest , error ) {
181+ return & changeset.AddCapabilitiesRequest {
182+ RegistryChainSel : te .RegistrySelector ,
183+ Capabilities : []kcr.CapabilitiesRegistryCapability {{LabelledName : changeset .CapabilityTypeTargetNamePrefix2 + "test23-test" , Version : "1.0.0" , CapabilityType : 3 }},
184+ RegistryRef : te .CapabilityRegistryAddressRef (),
185+ }, nil
186+ },
187+ expectedError : errors .New ("chain family name 'test23' is not valid" ),
188+ },
189+ {
190+ name : "mixed chars after prefix as network name" ,
154191 req : func (te test.EnvWrapper ) (* changeset.AddCapabilitiesRequest , error ) {
155192 return & changeset.AddCapabilitiesRequest {
156193 RegistryChainSel : te .RegistrySelector ,
157- Capabilities : []kcr.CapabilitiesRegistryCapability {{LabelledName : changeset .CapabilityTypeTargetNamePrefix + "test-cap " , Version : "1.0.0" , CapabilityType : 3 }},
194+ Capabilities : []kcr.CapabilitiesRegistryCapability {{LabelledName : changeset .CapabilityTypeTargetNamePrefix1 + "test-cap123 " , Version : "1.0.0" , CapabilityType : 3 }},
158195 RegistryRef : te .CapabilityRegistryAddressRef (),
159196 }, nil
160197 },
161- expectedError : changeset . ErrInvalidWriteCapNameFormat ,
198+ expectedError : errors . New ( "network name or chain ID 'cap123' is not valid" ) ,
162199 },
163200 {
164- name : "invalid chain ID on capability name" ,
201+ name : "with chain family but without network name or chain ID " ,
165202 req : func (te test.EnvWrapper ) (* changeset.AddCapabilitiesRequest , error ) {
166203 return & changeset.AddCapabilitiesRequest {
167204 RegistryChainSel : te .RegistrySelector ,
168- Capabilities : []kcr.CapabilitiesRegistryCapability {{LabelledName : changeset .CapabilityTypeTargetNamePrefix + "12345 " , Version : "1.0.0" , CapabilityType : 3 }},
205+ Capabilities : []kcr.CapabilitiesRegistryCapability {{LabelledName : changeset .CapabilityTypeTargetNamePrefix1 + "family- " , Version : "1.0.0" , CapabilityType : 3 }},
169206 RegistryRef : te .CapabilityRegistryAddressRef (),
170207 }, nil
171208 },
172- expectedError : changeset .ErrInvalidWriteCapNameFormat ,
209+ expectedError : changeset .ErrEmptyWriteCapNetworkNameOrChainID ,
173210 },
174211 }
175212
@@ -189,7 +226,7 @@ func TestAddCapabilitiesRequest_Validate_WriterCapability(t *testing.T) {
189226 require .NoError (t , err )
190227 err = req .Validate (te .Env )
191228 if tt .expectedError != nil {
192- assert .ErrorIs (t , err , tt .expectedError )
229+ assert .ErrorContains (t , err , tt .expectedError . Error () )
193230 } else {
194231 assert .NoError (t , err )
195232 }
0 commit comments