@@ -15,6 +15,7 @@ import (
1515 "golang.org/x/time/rate"
1616
1717 "github.com/smartcontractkit/chainlink-common/pkg/config"
18+ "github.com/smartcontractkit/chainlink-common/pkg/contexts"
1819)
1920
2021var update = flag .Bool ("update" , false , "update the golden files of this test" )
@@ -110,3 +111,50 @@ func TestSchema_Unmarshal(t *testing.T) {
110111 assert .Equal (t , uint64 (500000 ), cfg .PerWorkflow .ChainWrite .EVM .TransactionGasLimit .DefaultValue )
111112 assert .Equal (t , 3 , cfg .PerWorkflow .ChainRead .CallLimit .DefaultValue )
112113}
114+
115+ func TestDefaultGetter (t * testing.T ) {
116+ limit := Default .PerWorkflow .HTTPAction .CallLimit
117+
118+ ctx := contexts .WithCRE (t .Context (), contexts.CRE {Owner : "owner-id" , Workflow : "foo" })
119+ overrideCtx := contexts .WithCRE (t .Context (), contexts.CRE {Owner : "owner-id" , Workflow : "test-wf-id" })
120+
121+ // Default 5
122+ got , err := limit .GetOrDefault (ctx , DefaultGetter )
123+ require .NoError (t , err )
124+ require .Equal (t , 5 , got )
125+
126+ // No override
127+ got , err = limit .GetOrDefault (overrideCtx , DefaultGetter )
128+ require .NoError (t , err )
129+ require .Equal (t , 5 , got )
130+
131+ t .Cleanup (reinit ) // restore default vars
132+ t .Setenv (envNameSettings , `{
133+ "workflow": {
134+ "test-wf-id": {
135+ "PerWorkflow": {
136+ "HTTPAction": {
137+ "CallLimit": "20"
138+ }
139+ }
140+ }
141+ }
142+ }` )
143+ reinit () // set default vars
144+
145+ _ = `
146+ [workflow.test-wf-id]
147+ PerWorkflow.HTTPAction.CallLimit = 20
148+ `
149+
150+ // Default unchanged
151+ got , err = limit .GetOrDefault (ctx , DefaultGetter )
152+ require .NoError (t , err )
153+ require .Equal (t , 5 , got )
154+
155+ // Override applied
156+ got , err = limit .GetOrDefault (overrideCtx , DefaultGetter )
157+ require .NoError (t , err )
158+ require .Equal (t , 20 , got )
159+
160+ }
0 commit comments