1
0
mirror of https://github.com/oceanprotocol/ocean.js.git synced 2024-11-26 20:39:05 +01:00

test unit test updates

This commit is contained in:
Bogdan Fazakas 2021-11-11 14:36:01 +02:00
parent 2b3448de6b
commit 86a996184f
2 changed files with 56 additions and 36 deletions

View File

@ -27,6 +27,7 @@
"test:ss": "mocha --config=test/unit/.mocharc.json --node-env=test --exit 'test/unit/pools/ssContracts/SideStaking.test.ts'", "test:ss": "mocha --config=test/unit/.mocharc.json --node-env=test --exit 'test/unit/pools/ssContracts/SideStaking.test.ts'",
"test:fixed": "mocha --config=test/unit/.mocharc.json --node-env=test --exit 'test/unit/pools/fixedRate/FixedRateExchange.test.ts'", "test:fixed": "mocha --config=test/unit/.mocharc.json --node-env=test --exit 'test/unit/pools/fixedRate/FixedRateExchange.test.ts'",
"test:pool": "mocha --config=test/unit/.mocharc.json --node-env=test --exit 'test/unit/pools/balancer/Pool.test.ts'", "test:pool": "mocha --config=test/unit/.mocharc.json --node-env=test --exit 'test/unit/pools/balancer/Pool.test.ts'",
"test:dispenser": "mocha --config=test/unit/.mocharc.json --node-env=test --exit 'test/unit/pools/dispenser/Dispenser.test.ts'",
"test:dt": "mocha --config=test/unit/.mocharc.json --node-env=test --exit 'test/unit/Datatoken.test.ts'", "test:dt": "mocha --config=test/unit/.mocharc.json --node-env=test --exit 'test/unit/Datatoken.test.ts'",
"test:nftDt": "mocha --config=test/unit/.mocharc.json --node-env=test --exit 'test/unit/NFTDatatoken.test.ts'", "test:nftDt": "mocha --config=test/unit/.mocharc.json --node-env=test --exit 'test/unit/NFTDatatoken.test.ts'",
"test:router": "mocha --config=test/unit/.mocharc.json --node-env=test --exit 'test/unit/pools/Router.test.ts'", "test:router": "mocha --config=test/unit/.mocharc.json --node-env=test --exit 'test/unit/pools/Router.test.ts'",

View File

@ -3,14 +3,19 @@ import { AbiItem, AbiInput } from 'web3-utils'
import { assert, expect } from 'chai' import { assert, expect } from 'chai'
import ERC721Factory from '@oceanprotocol/contracts/artifacts/contracts/ERC721Factory.sol/ERC721Factory.json' import ERC721Factory from '@oceanprotocol/contracts/artifacts/contracts/ERC721Factory.sol/ERC721Factory.json'
import ERC721Template from '@oceanprotocol/contracts/artifacts/contracts/templates/ERC721Template.sol/ERC721Template.json' import ERC721Template from '@oceanprotocol/contracts/artifacts/contracts/templates/ERC721Template.sol/ERC721Template.json'
import ERC20Template from '@oceanprotocol/contracts/artifacts/contracts/templates/ERC20Template.sol/ERC20Template.json' import SideStaking from '@oceanprotocol/contracts/artifacts/contracts/pools/ssContracts/SideStaking.sol/SideStaking.json'
import FactoryRouter from '@oceanprotocol/contracts/artifacts/contracts/pools/FactoryRouter.sol/FactoryRouter.json' import FactoryRouter from '@oceanprotocol/contracts/artifacts/contracts/pools/FactoryRouter.sol/FactoryRouter.json'
import ERC20Template from '@oceanprotocol/contracts/artifacts/contracts/templates/ERC20Template.sol/ERC20Template.json'
import DispenserTemplate from '@oceanprotocol/contracts/artifacts/contracts/pools/dispenser/Dispenser.sol/Dispenser.json' import DispenserTemplate from '@oceanprotocol/contracts/artifacts/contracts/pools/dispenser/Dispenser.sol/Dispenser.json'
import { LoggerInstance } from '.../../../src/utils' import FixedRate from '@oceanprotocol/contracts/artifacts/contracts/pools/fixedRate/FixedRateExchange.sol/FixedRateExchange.json'
import { Dispenser } from '.../../../src/pools/dispenser/' import MockERC20 from '@oceanprotocol/contracts/artifacts/contracts/utils/mock/MockERC20Decimals.sol/MockERC20Decimals.json'
import { NFTFactory } from '.../../../src/factories/' import PoolTemplate from '@oceanprotocol/contracts/artifacts/contracts/pools/balancer/BPool.sol/BPool.json'
import { Datatoken } from '.../../../src/datatokens/' import OPFCollector from '@oceanprotocol/contracts/artifacts/contracts/communityFee/OPFCommunityFeeCollector.sol/OPFCommunityFeeCollector.json'
import { TestContractHandler } from '../../TestContractHandler' import { NFTFactory, NFTCreateData } from '../../../../src/factories/'
import { Datatoken } from '../../../../src/datatokens/'
import { Dispenser } from '../../../../src/pools/dispenser/'
import { TestContractHandler } from '../../../TestContractHandler'
import { Erc20CreateParams } from '../../../../src/interfaces'
const web3 = new Web3('http://127.0.0.1:8545') const web3 = new Web3('http://127.0.0.1:8545')
@ -31,22 +36,25 @@ describe('Dispenser flow', () => {
it('should deploy contracts', async () => { it('should deploy contracts', async () => {
contracts = new TestContractHandler( contracts = new TestContractHandler(
web3, web3,
ERC721Template.abi as AbiItem, ERC721Template.abi as AbiItem[],
ERC20Template.abi as AbiItem, ERC20Template.abi as AbiItem[],
null, PoolTemplate.abi as AbiItem[],
ERC721Factory.abi as AbiItem, ERC721Factory.abi as AbiItem[],
null, FactoryRouter.abi as AbiItem[],
null, SideStaking.abi as AbiItem[],
null, FixedRate.abi as AbiItem[],
DispenserTemplate.abi as AbiItem, DispenserTemplate.abi as AbiItem[],
OPFCollector.abi as AbiItem[],
ERC721Template.bytecode, ERC721Template.bytecode,
ERC20Template.bytecode, ERC20Template.bytecode,
null, PoolTemplate.bytecode,
ERC721Factory.bytecode, ERC721Factory.bytecode,
FactoryRouter.bytecode, FactoryRouter.bytecode,
null, SideStaking.bytecode,
null, FixedRate.bytecode,
DispenserTemplate.bytecode DispenserTemplate.bytecode,
OPFCollector.bytecode
) )
await contracts.getAccounts() await contracts.getAccounts()
factoryOwner = contracts.accounts[0] factoryOwner = contracts.accounts[0]
@ -61,38 +69,38 @@ describe('Dispenser flow', () => {
it('should initialize Dispenser class', async () => { it('should initialize Dispenser class', async () => {
DispenserClass = new Dispenser( DispenserClass = new Dispenser(
web3, web3,
DispenserAddress, contracts.dispenserAddress,
DispenserTemplate.abi as AbiItem[] DispenserTemplate.abi as AbiItem[]
) )
assert(DispenserClass !== null) assert(DispenserClass !== null)
}) })
it('#createNftwithErc - should create an NFT and a Datatoken ', async () => { it('#createNftwithErc - should create an NFT and a Datatoken ', async () => {
nftFactory = new NFTFactory(contracts.factory721Address, web3, LoggerInstance) nftFactory = new NFTFactory(contracts.factory721Address, web3)
const nftData = { const nftData: NFTCreateData = {
name: '72120Bundle', name: '72120Bundle',
symbol: '72Bundle', symbol: '72Bundle',
templateIndex: 1, templateIndex: 1,
baseURI: 'https://oceanprotocol.com/nft/' baseURI: 'https://oceanprotocol.com/nft/'
} }
const ercData = {
const ercParams: Erc20CreateParams = {
templateIndex: 1, templateIndex: 1,
strings: ['ERC20B1', 'ERC20DT1Symbol'], minter: contracts.accounts[0],
addresses: [ feeManager: user3,
contracts.accounts[0], mpFeeAddress: user2,
user3, feeToken: '0x0000000000000000000000000000000000000000',
user2, cap: '10000',
'0x0000000000000000000000000000000000000000' feeAmount: '0',
], name: 'ERC20B1',
uints: [web3.utils.toWei('10000'), 0], symbol: 'ERC20DT1Symbol'
bytess: []
} }
const txReceipt = await nftFactory.createNftWithErc( const txReceipt = await nftFactory.createNftWithErc(
contracts.accounts[0], contracts.accounts[0],
nftData, nftData,
ercData ercParams
) )
expect(txReceipt.events.NFTCreated.event === 'NFTCreated') expect(txReceipt.events.NFTCreated.event === 'NFTCreated')
@ -103,13 +111,24 @@ describe('Dispenser flow', () => {
}) })
it('Make user2 minter', async () => { it('Make user2 minter', async () => {
datatoken = new Datatoken(web3, ERC20Template.abi as AbiItem) datatoken = new Datatoken(web3, ERC20Template.abi as AbiItem[])
await datatoken.addMinter(dtAddress, nftOwner, user2) await datatoken.addMinter(dtAddress, contracts.accounts[0], user2)
assert((await datatoken.getDTPermissions(dtAddress, user2)).minter === true) assert((await datatoken.getDTPermissions(dtAddress, user2)).minter === true)
}) })
it('user2 creates a dispenser', async () => { it('Create dispenser', async () => {
const tx = await DispenserClass.activate(dtAddress, '1', '1', user2) const tx = await DispenserClass.create(
dtAddress,
contracts.accounts[0],
'1',
'1',
'0x0000000000000000000000000000000000000000'
)
assert(tx, 'Cannot create dispenser')
})
it('Activate dispenser', async () => {
const tx = await DispenserClass.activate(dtAddress, '1', '1', contracts.accounts[0])
assert(tx, 'Cannot activate dispenser') assert(tx, 'Cannot activate dispenser')
}) })