@@ -107,6 +107,7 @@ describe('Integration tests', function () {
107107 it ( '[1] Sponsorship, beneficiary, callback, BoT, replication' , async function ( ) {
108108 const volume = 3 ;
109109 // Create deal.
110+ const workers = [ worker1 , worker2 ] ;
110111 const orders = buildOrders ( {
111112 assets : ordersAssets ,
112113 prices : ordersPrices ,
@@ -115,7 +116,7 @@ describe('Integration tests', function () {
115116 beneficiary : beneficiary . address ,
116117 callback : callbackAddress ,
117118 volume,
118- trust : 1 , // TODO use 5 workers.
119+ trust : workers . length ** 2 - 1 ,
119120 } ) ;
120121 const { dealId, dealPrice, schedulerStakePerDeal } =
121122 await iexecWrapper . signAndSponsorMatchOrders ( ...orders . toArray ( ) ) ;
@@ -127,21 +128,30 @@ describe('Integration tests', function () {
127128 ) ;
128129 const schedulerRewardPerTask = workerpoolPrice - workerRewardPerTask ;
129130 // Save frozens
130- const accounts = [ sponsor , requester , scheduler , appProvider , datasetProvider , worker1 ] ;
131+
132+ const accounts = [ sponsor , requester , scheduler , appProvider , datasetProvider , ...workers ] ;
131133 const accountsInitialFrozens = await getInitialFrozens ( accounts ) ;
132134 // Finalize each task and check balance changes.
133135 for ( let taskIndex = 0 ; taskIndex < volume ; taskIndex ++ ) {
134136 const taskId = await iexecWrapper . initializeTask ( dealId , taskIndex ) ;
135- const { workerStakePerTask } = await iexecWrapper . contributeToTask (
136- dealId ,
137- taskIndex ,
138- callbackResultDigest ,
139- worker1 ,
140- ) ;
141- await iexecPoco
142- . connect ( worker1 )
143- . reveal ( taskId , callbackResultDigest )
144- . then ( ( tx ) => tx . wait ( ) ) ;
137+ const workerStakePerTask = await iexecPoco
138+ . viewDeal ( dealId )
139+ . then ( ( deal ) => deal . workerStake . toNumber ( ) ) ;
140+ for ( const worker of workers ) {
141+ await iexecWrapper . contributeToTask (
142+ dealId ,
143+ taskIndex ,
144+ callbackResultDigest ,
145+ worker ,
146+ ) ;
147+ }
148+ // Reveal contributions for all workers
149+ for ( const worker of workers ) {
150+ await iexecPoco
151+ . connect ( worker )
152+ . reveal ( taskId , callbackResultDigest )
153+ . then ( ( tx ) => tx . wait ( ) ) ;
154+ }
145155 const finalizeTx = await iexecPoco
146156 . connect ( scheduler )
147157 . finalize ( taskId , results , resultsCallback ) ;
@@ -170,16 +180,22 @@ describe('Integration tests', function () {
170180 ) ;
171181 expect ( finalizeTx ) . to . changeTokenBalances (
172182 iexecPoco ,
173- [ proxyAddress , sponsor , scheduler , appProvider , datasetProvider , worker1 ] ,
183+ [ proxyAddress , sponsor , scheduler , appProvider , datasetProvider ] ,
174184 [
175185 expectedProxyBalanceChange , // Proxy
176186 - taskPrice * completedTasks , // Sponsor
177187 schedulerStakePerTask + schedulerRewardPerTask , // Scheduler
178188 appPrice , // AppProvider
179189 datasetPrice , // DatasetProvider
180- workerStakePerTask + workerRewardPerTask , // Worker
181190 ] ,
182191 ) ;
192+ for ( const worker of workers ) {
193+ expect ( finalizeTx ) . to . changeTokenBalances (
194+ iexecPoco ,
195+ [ worker ] ,
196+ [ workerStakePerTask + workerRewardPerTask / workers . length ] ,
197+ ) ;
198+ }
183199 // Calculate expected frozen changes
184200 const expectedFrozenChanges = [
185201 0 , // Proxy
@@ -188,8 +204,10 @@ describe('Integration tests', function () {
188204 - schedulerStakePerTask * completedTasks , // Scheduler
189205 0 , // AppProvider
190206 0 , // DatasetProvider
191- 0 , // Worker
192207 ] ;
208+ for ( let i = 0 ; i < workers . length ; i ++ ) {
209+ expectedFrozenChanges . push ( 0 ) ;
210+ }
193211 await changesInFrozen ( {
194212 accountsInitialFrozens,
195213 frozenChanges : expectedFrozenChanges ,
0 commit comments