Skip to content

Commit 7453e5b

Browse files
committed
implement todo save init frozen
1 parent e17654d commit 7453e5b

File tree

1 file changed

+34
-51
lines changed

1 file changed

+34
-51
lines changed

test/000_fullchain.test.ts

Lines changed: 34 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -126,19 +126,9 @@ describe('Integration tests', function () {
126126
PocoMode.CLASSIC,
127127
);
128128
const schedulerRewardPerTask = workerpoolPrice - workerRewardPerTask;
129-
// Check initial balances.
130-
// TODO save initial balances and use them in for loop for comparison.
131-
await checkBalancesAndFrozens({
132-
proxyBalance: dealPrice + schedulerStakePerDeal,
133-
accounts: [
134-
{ signer: sponsor, balance: 0, frozen: dealPrice },
135-
{ signer: requester, balance: 0, frozen: 0 },
136-
{ signer: scheduler, balance: 0, frozen: schedulerStakePerDeal },
137-
{ signer: appProvider, balance: 0, frozen: 0 },
138-
{ signer: datasetProvider, balance: 0, frozen: 0 },
139-
{ signer: worker1, balance: 0, frozen: 0 },
140-
],
141-
});
129+
// Save frozens
130+
const accounts = [sponsor, requester, scheduler, appProvider, datasetProvider, worker1];
131+
const accountsInitialFrozens = await getInitialFrozens(accounts);
142132
// Finalize each task and check balance changes.
143133
for (let taskIndex = 0; taskIndex < volume; taskIndex++) {
144134
const taskId = await iexecWrapper.initializeTask(dealId, taskIndex);
@@ -152,10 +142,9 @@ describe('Integration tests', function () {
152142
.connect(worker1)
153143
.reveal(taskId, callbackResultDigest)
154144
.then((tx) => tx.wait());
155-
await iexecPoco
145+
const finalizeTx = await iexecPoco
156146
.connect(scheduler)
157-
.finalize(taskId, results, resultsCallback)
158-
.then((tx) => tx.wait());
147+
.finalize(taskId, results, resultsCallback);
159148
expect((await iexecPoco.viewTask(taskId)).status).to.equal(TaskStatusEnum.COMPLETED);
160149
// Multiply amount by the number of finalized tasks to correctly compute
161150
// stake and reward amounts.
@@ -174,27 +163,36 @@ describe('Integration tests', function () {
174163
// - Worker:
175164
// - balance: balance before + taskStake + taskReward
176165
// - frozen: frozen before - taskStake
177-
await checkBalancesAndFrozens({
178-
proxyBalance:
179-
dealPrice +
180-
schedulerStakePerDeal -
181-
(taskPrice + schedulerStakePerTask) * completedTasks,
182-
accounts: [
183-
{ signer: sponsor, balance: 0, frozen: dealPrice - taskPrice * completedTasks },
184-
{ signer: requester, balance: 0, frozen: 0 },
185-
{
186-
signer: scheduler,
187-
balance: (schedulerStakePerTask + schedulerRewardPerTask) * completedTasks,
188-
frozen: schedulerStakePerDeal - schedulerStakePerTask * completedTasks,
189-
},
190-
{ signer: appProvider, balance: appPrice * completedTasks, frozen: 0 },
191-
{ signer: datasetProvider, balance: datasetPrice * completedTasks, frozen: 0 },
192-
{
193-
signer: worker1,
194-
balance: (workerStakePerTask + workerRewardPerTask) * completedTasks,
195-
frozen: 0,
196-
},
166+
// Verify token balance changes
167+
const expectedProxyBalanceChange = -(
168+
taskPrice * completedTasks +
169+
schedulerStakePerTask * completedTasks
170+
);
171+
expect(finalizeTx).to.changeTokenBalances(
172+
iexecPoco,
173+
[proxyAddress, sponsor, scheduler, appProvider, datasetProvider, worker1],
174+
[
175+
expectedProxyBalanceChange, // Proxy
176+
-taskPrice * completedTasks, // Sponsor
177+
schedulerStakePerTask + schedulerRewardPerTask, // Scheduler
178+
appPrice, // AppProvider
179+
datasetPrice, // DatasetProvider
180+
workerStakePerTask + workerRewardPerTask, // Worker
197181
],
182+
);
183+
// Calculate expected frozen changes
184+
const expectedFrozenChanges = [
185+
0, // Proxy
186+
-taskPrice * completedTasks, // Sponsor
187+
0, // Requester
188+
-schedulerStakePerTask * completedTasks, // Scheduler
189+
0, // AppProvider
190+
0, // DatasetProvider
191+
0, // Worker
192+
];
193+
await changesInFrozen({
194+
accountsInitialFrozens,
195+
frozenChanges: expectedFrozenChanges,
198196
});
199197
}
200198
});
@@ -416,21 +414,6 @@ describe('Integration tests', function () {
416414
}
417415
});
418416

419-
async function checkBalancesAndFrozens(args: {
420-
proxyBalance: number;
421-
accounts: { signer: SignerWithAddress; balance: number; frozen: number }[];
422-
}) {
423-
expect(await iexecPoco.balanceOf(proxyAddress)).to.equal(args.proxyBalance);
424-
for (const account of args.accounts) {
425-
const message = `Failed with account at index ${args.accounts.indexOf(account)}`;
426-
expect(await iexecPoco.balanceOf(account.signer.address)).to.equal(
427-
account.balance,
428-
message,
429-
);
430-
expect(await iexecPoco.frozenOf(account.signer.address)).to.equal(account.frozen, message);
431-
}
432-
}
433-
434417
async function changesInFrozen(args: {
435418
accountsInitialFrozens: { address: string; frozen: number }[];
436419
frozenChanges: number[];

0 commit comments

Comments
 (0)