Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix plugin integration tests
Browse files Browse the repository at this point in the history
jankjr committed Dec 14, 2023
1 parent 879bded commit a819aea
Showing 2 changed files with 15 additions and 4 deletions.
4 changes: 3 additions & 1 deletion test/plugins/individual-collateral/collateralTests.ts
Original file line number Diff line number Diff line change
@@ -53,7 +53,7 @@ import {
} from '../../../typechain'
import snapshotGasCost from '../../utils/snapshotGasCost'
import { IMPLEMENTATION, Implementation, ORACLE_ERROR, PRICE_TIMEOUT } from '../../fixtures'
import { bidOnTrade } from '#/test/utils/bidOnTrade'
import { bidOnTrade, ensureApproval } from '#/test/utils/bidOnTrade'

const getDescribeFork = (targetNetwork = 'mainnet') => {
return useEnv('FORK') && useEnv('FORK_NETWORK') === targetNetwork ? describe : describe.skip
@@ -835,6 +835,7 @@ export default function fn<X extends CollateralFixtureContext>(

it('rebalances out of the collateral', async () => {
const router = await (await ethers.getContractFactory('DutchTradeRouter')).deploy()
await ensureApproval(pairedERC20, addr1, addr1.address, router)
// Remove collateral from basket
await basketHandler.connect(owner).setPrimeBasket([pairedERC20.address], [fp('1e-4')])
await expect(basketHandler.connect(owner).refreshBasket())
@@ -868,6 +869,7 @@ export default function fn<X extends CollateralFixtureContext>(

it('forwards revenue and sells in a revenue auction', async () => {
const router = await (await ethers.getContractFactory('DutchTradeRouter')).deploy()
await ensureApproval(rToken, addr1, addr1.address, router)
// Send excess collateral to the RToken trader via forwardRevenue()
const mintAmt = toBNDecimals(fp('1e-6'), await collateralERC20.decimals())
await mintCollateralTo(
15 changes: 12 additions & 3 deletions test/plugins/individual-collateral/curve/collateralTests.ts
Original file line number Diff line number Diff line change
@@ -55,7 +55,7 @@ import {
} from '../../../../typechain'
import snapshotGasCost from '../../../utils/snapshotGasCost'
import { IMPLEMENTATION, Implementation, ORACLE_ERROR, PRICE_TIMEOUT } from '../../../fixtures'
import { bidOnTrade } from '#/test/utils/bidOnTrade'
import { bidOnTrade, ensureApproval } from '#/test/utils/bidOnTrade'

const describeGas =
IMPLEMENTATION == Implementation.P1 && useEnv('REPORT_GAS') ? describe.only : describe.skip
@@ -980,6 +980,8 @@ export default function fn<X extends CurveCollateralFixtureContext>(
})

it('rebalances out of the collateral', async () => {
const router = await (await ethers.getContractFactory('DutchTradeRouter')).deploy()
await ensureApproval(pairedERC20, addr1, addr1.address, router)
// Remove collateral from basket
await basketHandler.connect(owner).setPrimeBasket([pairedERC20.address], [fp('1e-4')])
await expect(basketHandler.connect(owner).refreshBasket())
@@ -996,18 +998,24 @@ export default function fn<X extends CurveCollateralFixtureContext>(
const tradeAddr = await backingManager.trades(collateralERC20.address)
expect(tradeAddr).to.not.equal(ZERO_ADDRESS)
const trade = await ethers.getContractAt('DutchTrade', tradeAddr)

expect(await trade.sell()).to.equal(collateralERC20.address)
expect(await trade.buy()).to.equal(pairedERC20.address)
const buyAmt = await trade.bidAmount(await trade.endBlock())
await pairedERC20.connect(addr1).approve(trade.address, buyAmt)
await advanceBlocks((await trade.endBlock()).sub(await getLatestBlockNumber()).sub(1))
const pairedBal = await pairedERC20.balanceOf(backingManager.address)
await expect(bidOnTrade(trade, pairedERC20, addr1)).to.emit(backingManager, 'TradeSettled')
await expect(bidOnTrade(trade, pairedERC20, router, addr1)).to.emit(
backingManager,
'TradeSettled'
)
expect(await pairedERC20.balanceOf(backingManager.address)).to.be.gt(pairedBal)
expect(await backingManager.tradesOpen()).to.equal(0)
})

it('forwards revenue and sells in a revenue auction', async () => {
const router = await (await ethers.getContractFactory('DutchTradeRouter')).deploy()
await ensureApproval(rToken, addr1, addr1.address, router)
// Send excess collateral to the RToken trader via forwardRevenue()
const mintAmt = toBNDecimals(fp('1e-6'), await collateralERC20.decimals())
await mintCollateralTo(
@@ -1028,13 +1036,14 @@ export default function fn<X extends CurveCollateralFixtureContext>(
const tradeAddr = await rTokenTrader.trades(collateralERC20.address)
expect(tradeAddr).to.not.equal(ZERO_ADDRESS)
const trade = await ethers.getContractAt('DutchTrade', tradeAddr)

expect(await trade.sell()).to.equal(collateralERC20.address)
expect(await trade.buy()).to.equal(rToken.address)
const buyAmt = await trade.bidAmount(await trade.endBlock())
await rToken.connect(addr1).approve(trade.address, buyAmt)
await advanceBlocks((await trade.endBlock()).sub(await getLatestBlockNumber()).sub(1))

await expect(bidOnTrade(trade, rToken, addr1)).to.emit(rTokenTrader, 'TradeSettled')
await expect(bidOnTrade(trade, rToken, router, addr1)).to.emit(rTokenTrader, 'TradeSettled')
expect(await rTokenTrader.tradesOpen()).to.equal(0)
})

0 comments on commit a819aea

Please sign in to comment.