From aa9c02af3fd5967230605fb97ab2f5393f4d218d Mon Sep 17 00:00:00 2001 From: Bogdan Fazakas Date: Wed, 24 Nov 2021 23:34:52 +0200 Subject: [PATCH] fixed rest of dispenser unit tests --- src/datatokens/Datatoken.ts | 2 - src/pools/dispenser/Dispenser.ts | 5 +- test/unit/pools/dispenser/Dispenser.test.ts | 68 ++++++++++++--------- 3 files changed, 41 insertions(+), 34 deletions(-) diff --git a/src/datatokens/Datatoken.ts b/src/datatokens/Datatoken.ts index 9149ea44..e7d1c2cd 100644 --- a/src/datatokens/Datatoken.ts +++ b/src/datatokens/Datatoken.ts @@ -338,8 +338,6 @@ export class Datatoken { dtContract ) - console.log('dispenserParams', dispenserParams) - // Call createFixedRate contract method const trxReceipt = await dtContract.methods .createDispenser( diff --git a/src/pools/dispenser/Dispenser.ts b/src/pools/dispenser/Dispenser.ts index e14516b9..7275e151 100644 --- a/src/pools/dispenser/Dispenser.ts +++ b/src/pools/dispenser/Dispenser.ts @@ -13,8 +13,7 @@ export interface DispenserToken { maxTokens: string maxBalance: string balance: string - minterApproved: boolean - isTrueMinter: boolean + isMinter: boolean allowedSwapper: string } @@ -436,7 +435,7 @@ export class Dispenser { if (new Decimal(String(amount)).greaterThan(status.maxTokens)) return false // check dispenser balance const contractBalance = new Decimal(status.balance) - if (contractBalance.greaterThanOrEqualTo(amount) || status.isTrueMinter === true) + if (contractBalance.greaterThanOrEqualTo(amount) || status.isMinter === true) return true return false } diff --git a/test/unit/pools/dispenser/Dispenser.test.ts b/test/unit/pools/dispenser/Dispenser.test.ts index 43d8cb5b..959406cc 100644 --- a/test/unit/pools/dispenser/Dispenser.test.ts +++ b/test/unit/pools/dispenser/Dispenser.test.ts @@ -140,39 +140,49 @@ describe('Dispenser flow', () => { const status = await DispenserClass.status(dtAddress) assert(status.active === true, 'Dispenser not active') assert(status.owner === contracts.accounts[0], 'Dispenser owner is not alice') - assert(status.minterApproved === true, 'Dispenser is not a minter') + assert(status.isMinter === true, 'Dispenser is not a minter') }) - // it('user2 deactivates the dispenser', async () => { - // const tx = await DispenserClass.deactivate(dtAddress, user2) - // assert(tx, 'Cannot deactivate dispenser') - // const status = await DispenserClass.status(dtAddress) - // assert(status.active === false, 'Dispenser is still active') - // }) + it('user2 deactivates the dispenser', async () => { + const tx = await DispenserClass.deactivate(dtAddress, contracts.accounts[0]) + assert(tx, 'Cannot deactivate dispenser') + const status = await DispenserClass.status(dtAddress) + assert(status.active === false, 'Dispenser is still active') + }) - // it('user2 sets user3 as an AllowedSwapper for the dispenser', async () => { - // const tx = await DispenserClass.setAllowedSwapper(dtAddress, user2, user3) - // assert(tx, 'Cannot deactivate dispenser') - // const status = await DispenserClass.status(dtAddress) - // assert(status.allowedSwapper === user3, 'Dispenser is still active') - // }) + it('user2 sets user3 as an AllowedSwapper for the dispenser', async () => { + const tx = await DispenserClass.setAllowedSwapper( + dtAddress, + contracts.accounts[0], + user3 + ) + assert(tx, 'Cannot set Allowed Swapper') + const status = await DispenserClass.status(dtAddress) + assert(status.allowedSwapper === user3, 'user3 is Allowed Swapper') + }) - // it('User3 requests datatokens', async () => { - // const check = await DispenserClass.isDispensable(dtAddress, datatoken, user3, '1') - // assert(check === true, 'isDispensable should return true') - // const tx = await DispenserClass.dispense(dtAddress, user3, '1', user3) - // assert(tx, 'user3 failed to get 1DT') - // }) + it('User3 requests datatokens', async () => { + const activate = await DispenserClass.activate( + dtAddress, + '10', + '10', + contracts.accounts[0] + ) + const check = await DispenserClass.isDispensable(dtAddress, datatoken, user3, '1') + assert(check === true, 'isDispensable should return true') + const tx = await DispenserClass.dispense(dtAddress, user3, '1', user3) + assert(tx, 'user3 failed to get 1DT') + }) - // it('tries to withdraw all datatokens', async () => { - // const tx = await DispenserClass.ownerWithdraw(dtAddress, user3) - // assert(tx === null, 'Request should fail') - // }) + it('tries to withdraw all datatokens', async () => { + const tx = await DispenserClass.ownerWithdraw(dtAddress, user3) + assert(tx === null, 'Request should fail') + }) - // it('user2 withdraws all datatokens', async () => { - // const tx = await DispenserClass.ownerWithdraw(dtAddress, user2) - // assert(tx, 'user2 failed to withdraw all her tokens') - // const status = await DispenserClass.status(dtAddress) - // assert(status.balance === '0', 'Balance > 0') - // }) + it('user2 withdraws all datatokens', async () => { + const tx = await DispenserClass.ownerWithdraw(dtAddress, contracts.accounts[0]) + assert(tx, 'user2 failed to withdraw all her tokens') + const status = await DispenserClass.status(dtAddress) + assert(status.balance === '0', 'Balance > 0') + }) })