@@ -77,6 +77,99 @@ describe("getContracts", () => {
7777 expect ( getContracts ( [ flowJSON ] , "testnet" ) ) . toEqual ( testnetMappings )
7878 expect ( getContracts ( [ flowJSON ] , "mainnet" ) ) . toEqual ( mainnetMappings )
7979 } )
80+
81+ test ( "it should handle multiple contracts in deployments section" , ( ) => {
82+ const flowJSON : FlowJson = {
83+ accounts : {
84+ "emulator-account" : {
85+ address : "f8d6e0586b0a20c7" ,
86+ } ,
87+ "testnet-account" : {
88+ address : "a470920a30c770a5" ,
89+ } ,
90+ } ,
91+ deployments : {
92+ emulator : {
93+ "emulator-account" : [ "ContractA" , "ContractB" , "ContractC" ] ,
94+ } ,
95+ testnet : {
96+ "testnet-account" : [ "ContractA" , "ContractB" ] ,
97+ } ,
98+ } ,
99+ }
100+
101+ const emulatorMappings = {
102+ ContractA : "f8d6e0586b0a20c7" ,
103+ ContractB : "f8d6e0586b0a20c7" ,
104+ ContractC : "f8d6e0586b0a20c7" ,
105+ }
106+
107+ const testnetMappings = {
108+ ContractA : "a470920a30c770a5" ,
109+ ContractB : "a470920a30c770a5" ,
110+ }
111+
112+ expect ( getContracts ( flowJSON , "emulator" ) ) . toEqual ( emulatorMappings )
113+ expect ( getContracts ( flowJSON , "testnet" ) ) . toEqual ( testnetMappings )
114+ } )
115+
116+ test ( "it should merge deployments with contract aliases" , ( ) => {
117+ const flowJSON : FlowJson = {
118+ contracts : {
119+ HelloWorld : {
120+ source : "./cadence/contracts/HelloWorld.cdc" ,
121+ aliases : {
122+ emulator : "0x123" ,
123+ } ,
124+ } ,
125+ } ,
126+ accounts : {
127+ "emulator-account" : {
128+ address : "0xf8d6e0586b0a20c7" ,
129+ } ,
130+ } ,
131+ deployments : {
132+ emulator : {
133+ "emulator-account" : [ "DeployedContract" ] ,
134+ } ,
135+ } ,
136+ }
137+
138+ const emulatorMappings = {
139+ HelloWorld : "0x123" ,
140+ DeployedContract : "0xf8d6e0586b0a20c7" ,
141+ }
142+
143+ expect ( getContracts ( flowJSON , "emulator" ) ) . toEqual ( emulatorMappings )
144+ } )
145+
146+ test ( "it should handle multiple accounts with multiple contracts each" , ( ) => {
147+ const flowJSON : FlowJson = {
148+ accounts : {
149+ "account-1" : {
150+ address : "0x01" ,
151+ } ,
152+ "account-2" : {
153+ address : "0x02" ,
154+ } ,
155+ } ,
156+ deployments : {
157+ emulator : {
158+ "account-1" : [ "Contract1A" , "Contract1B" ] ,
159+ "account-2" : [ "Contract2A" , "Contract2B" ] ,
160+ } ,
161+ } ,
162+ }
163+
164+ const emulatorMappings = {
165+ Contract1A : "0x01" ,
166+ Contract1B : "0x01" ,
167+ Contract2A : "0x02" ,
168+ Contract2B : "0x02" ,
169+ }
170+
171+ expect ( getContracts ( flowJSON , "emulator" ) ) . toEqual ( emulatorMappings )
172+ } )
80173} )
81174
82175describe ( "anyHasPrivateKeys" , ( ) => {
0 commit comments