Skip to content

Commit 6974ce2

Browse files
committed
implement todo test 1 replication
1 parent 7453e5b commit 6974ce2

File tree

1 file changed

+33
-15
lines changed

1 file changed

+33
-15
lines changed

test/000_fullchain.test.ts

Lines changed: 33 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)