Skip to content

Commit 1cfd890

Browse files
committed
check all in one changeTokenBalances with workers
1 parent 387e4a4 commit 1cfd890

File tree

1 file changed

+18
-32
lines changed

1 file changed

+18
-32
lines changed

test/000_fullchain.test.ts

Lines changed: 18 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -165,25 +165,21 @@ describe('Integration tests', function () {
165165
taskPrice * completedTasks +
166166
schedulerStakePerTask * completedTasks
167167
);
168+
const expectedWorkerBalanceChange =
169+
workerStakePerTask + workerRewardPerTask / workers.length;
168170
expect(finalizeTx).to.changeTokenBalances(
169171
iexecPoco,
170-
[proxyAddress, sponsor, requester, scheduler, appProvider, datasetProvider],
172+
[proxyAddress, ...accounts],
171173
[
172174
expectedProxyBalanceChange, // Proxy
173175
-taskPrice * completedTasks, // Sponsor
174176
0, // Requester
175177
schedulerStakePerTask + schedulerRewardPerTask, // Scheduler
176178
appPrice, // AppProvider
177179
datasetPrice, // DatasetProvider
180+
...workers.map(() => expectedWorkerBalanceChange), // Workers
178181
],
179182
);
180-
for (const worker of workers) {
181-
expect(finalizeTx).to.changeTokenBalances(
182-
iexecPoco,
183-
[worker],
184-
[workerStakePerTask + workerRewardPerTask / workers.length],
185-
);
186-
}
187183
// Calculate expected frozen changes
188184
const expectedFrozenChanges = [
189185
0, // Proxy
@@ -263,24 +259,20 @@ describe('Integration tests', function () {
263259
taskPrice * completedTasks +
264260
schedulerStakePerTask * completedTasks
265261
);
262+
const expectedWorkerBalanceChange =
263+
workerStakePerTask + workerRewardPerTask / workers.length;
266264
expect(finalizeTx).to.changeTokenBalances(
267265
iexecPoco,
268-
[proxyAddress, requester, scheduler, appProvider, datasetProvider],
266+
[proxyAddress, ...accounts],
269267
[
270268
expectedProxyBalanceChange, // Proxy
271269
-taskPrice * completedTasks, // Requester
272270
schedulerStakePerTask + schedulerRewardPerTask, // Scheduler
273271
appPrice, // AppProvider
274272
datasetPrice, // DatasetProvider
273+
...workers.map(() => expectedWorkerBalanceChange), // Workers
275274
],
276275
);
277-
for (const worker of workers) {
278-
expect(finalizeTx).to.changeTokenBalances(
279-
iexecPoco,
280-
[worker],
281-
[workerStakePerTask + workerRewardPerTask / workers.length],
282-
);
283-
}
284276
// Calculate expected frozen changes
285277
const expectedFrozenChanges = [
286278
0, // Proxy
@@ -563,7 +555,7 @@ describe('Integration tests', function () {
563555
}
564556
const taskId = await iexecWrapper.initializeTask(dealId, 0);
565557
// Finalize each task and check balance changes.
566-
const workerStake = await iexecPoco
558+
const workerStakePerTask = await iexecPoco
567559
.viewDeal(dealId)
568560
.then((deal) => deal.workerStake.toNumber());
569561

@@ -580,24 +572,20 @@ describe('Integration tests', function () {
580572
.connect(scheduler)
581573
.finalize(taskId, results, '0x');
582574
await finalizeTx.wait();
575+
const expectedWorkerBalanceChange =
576+
workerStakePerTask + workerRewardPerTask / workerNumber;
583577
expect(finalizeTx).to.changeTokenBalances(
584578
iexecPoco,
585-
[proxyAddress, requester, scheduler, appProvider, datasetProvider],
579+
[proxyAddress, ...accounts],
586580
[
587581
-(dealPrice + schedulerStakePerDeal),
588582
0,
589583
schedulerStakePerTask + schedulerRewardPerTask,
590584
appPrice,
591585
datasetPrice,
586+
...workers.map(() => expectedWorkerBalanceChange), // Workers
592587
],
593588
);
594-
for (let i = 0; i < workerNumber; i++) {
595-
expect(finalizeTx).to.changeTokenBalances(
596-
iexecPoco,
597-
[workers[i]],
598-
[workerStake + workerRewardPerTask / workerNumber],
599-
);
600-
}
601589
expect((await iexecPoco.viewTask(taskId)).status).to.equal(
602590
TaskStatusEnum.COMPLETED,
603591
);
@@ -689,27 +677,25 @@ describe('Integration tests', function () {
689677
}
690678
const finalizeTx = await iexecPoco.connect(scheduler).finalize(taskId, results, '0x');
691679
await finalizeTx.wait();
680+
const expectedWinningWorkerBalanceChange =
681+
workerStake + workerRewardPerTask / winningWorkers.length;
692682
expect(finalizeTx).to.changeTokenBalances(
693683
iexecPoco,
694-
[proxyAddress, requester, scheduler, appProvider, datasetProvider],
684+
[proxyAddress, ...accounts],
695685
[
696686
-(dealPrice + schedulerStakePerDeal),
697687
0,
698688
schedulerStakePerTask + schedulerRewardPerTask,
699689
appPrice,
700690
datasetPrice,
691+
0, // losing worker
692+
...winningWorkers.map(() => expectedWinningWorkerBalanceChange), // winning workers
701693
],
702694
);
703695
// checks on losing worker
704-
expect(finalizeTx).to.changeTokenBalances(iexecPoco, [losingWorker], [0]);
705696
expect(await iexecPoco.viewScore(losingWorker.address)).to.be.equal(0);
706697
// checks on winning workers
707698
for (const winningWorker of winningWorkers) {
708-
expect(finalizeTx).to.changeTokenBalances(
709-
iexecPoco,
710-
[winningWorker.address],
711-
[workerStake + workerRewardPerTask / winningWorkers.length],
712-
);
713699
expect(await iexecPoco.viewScore(winningWorker.address)).to.be.equal(1);
714700
}
715701
// verify task status

0 commit comments

Comments
 (0)