@@ -21,6 +21,114 @@ import (
2121 cfgnet "github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/config/network"
2222)
2323
24+ func Test_newChainLoaders (t * testing.T ) {
25+ t .Parallel ()
26+
27+ lggr := logger .Test (t )
28+ networks := & cfgnet.Config {}
29+
30+ tests := []struct {
31+ name string
32+ onchainConfig cfgenv.OnchainConfig
33+ wantLoaders []string // Expected chain families with loaders
34+ }{
35+ {
36+ name : "All credentials provided" ,
37+ onchainConfig : cfgenv.OnchainConfig {
38+ EVM : cfgenv.EVMConfig {
39+ DeployerKey : "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef" ,
40+ },
41+ Tron : cfgenv.TronConfig {
42+ DeployerKey : "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef" ,
43+ },
44+ Solana : cfgenv.SolanaConfig {
45+ WalletKey : "test-key" ,
46+ ProgramsDirPath : "/tmp/programs" ,
47+ },
48+ Aptos : cfgenv.AptosConfig {
49+ DeployerKey : "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef" ,
50+ },
51+ Sui : cfgenv.SuiConfig {
52+ DeployerKey : "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef" ,
53+ },
54+ Ton : cfgenv.TonConfig {
55+ DeployerKey : "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef" ,
56+ },
57+ },
58+ wantLoaders : []string {
59+ chainsel .FamilyEVM ,
60+ chainsel .FamilyTron ,
61+ chainsel .FamilySolana ,
62+ chainsel .FamilyAptos ,
63+ chainsel .FamilySui ,
64+ chainsel .FamilyTon ,
65+ },
66+ },
67+ {
68+ name : "No EVM credentials - EVM skipped" ,
69+ onchainConfig : cfgenv.OnchainConfig {
70+ Tron : cfgenv.TronConfig {
71+ DeployerKey : "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef" ,
72+ },
73+ },
74+ wantLoaders : []string {
75+ chainsel .FamilyTron ,
76+ },
77+ },
78+ {
79+ name : "KMS configured - EVM and Tron loaded" ,
80+ onchainConfig : cfgenv.OnchainConfig {
81+ KMS : cfgenv.KMSConfig {
82+ KeyID : "test-key-id" ,
83+ KeyRegion : "us-west-2" ,
84+ },
85+ },
86+ wantLoaders : []string {
87+ chainsel .FamilyEVM ,
88+ chainsel .FamilyTron ,
89+ },
90+ },
91+ {
92+ name : "No credentials - all chains skipped" ,
93+ onchainConfig : cfgenv.OnchainConfig {},
94+ wantLoaders : []string {},
95+ },
96+ {
97+ name : "Only EVM deployer key" ,
98+ onchainConfig : cfgenv.OnchainConfig {
99+ EVM : cfgenv.EVMConfig {
100+ DeployerKey : "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef" ,
101+ },
102+ },
103+ wantLoaders : []string {
104+ chainsel .FamilyEVM ,
105+ },
106+ },
107+ }
108+
109+ for _ , tt := range tests {
110+ t .Run (tt .name , func (t * testing.T ) {
111+ t .Parallel ()
112+
113+ loaders := newChainLoaders (lggr , networks , tt .onchainConfig )
114+
115+ // Check that we got the expected number of loaders
116+ assert .Len (t , loaders , len (tt .wantLoaders ),
117+ "Expected %d loaders but got %d" , len (tt .wantLoaders ), len (loaders ))
118+
119+ // Check that each expected family has a loader
120+ for _ , family := range tt .wantLoaders {
121+ assert .Contains (t , loaders , family , "Expected loader for family %s" , family )
122+ }
123+
124+ // Check that we don't have unexpected loaders
125+ for family := range loaders {
126+ assert .Contains (t , tt .wantLoaders , family , "Unexpected loader for family %s" , family )
127+ }
128+ })
129+ }
130+ }
131+
24132func Test_LoadChains (t * testing.T ) {
25133 t .Parallel ()
26134
0 commit comments