vault: remove duplication in tests

This commit is contained in:
Mark Spanbroek 2025-01-21 14:06:01 +01:00
parent 6dbbdb5bd3
commit cbbcad5166

View File

@ -266,40 +266,35 @@ describe("Vault", function () {
const context = randomBytes(32)
const amount = 42
let expiry
let maximum
beforeEach(async function () {
await token.connect(account).approve(vault.address, amount)
await vault.deposit(context, account.address, amount)
let start = await currentTime()
expiry = start + 10
maximum = start + 20
})
it("can lock up all tokens in a context", async function () {
let start = await currentTime()
let expiry = start + 10
let maximum = start + 20
await vault.lockup(context, expiry, maximum)
expect((await vault.lock(context))[0]).to.equal(expiry)
expect((await vault.lock(context))[1]).to.equal(maximum)
})
it("cannot lock up when already locked", async function () {
let start = await currentTime()
let expiry = start + 10
let maximum = start + 20
await vault.lockup(context, expiry, maximum)
const locking = vault.lockup(context, expiry, maximum)
await expect(locking).to.be.revertedWith("AlreadyLocked")
})
it("cannot lock when expiry is past maximum", async function () {
let start = await currentTime()
let expiry = start + 10
let maximum = start + 9
const locking = vault.lockup(context, expiry, maximum)
const locking = vault.lockup(context, maximum + 1, maximum)
await expect(locking).to.be.revertedWith("ExpiryPastMaximum")
})
it("does not allow withdrawal before lock expires", async function () {
let start = await currentTime()
let expiry = start + 10
await vault.lockup(context, expiry, expiry)
await advanceTimeTo(expiry - 1)
const withdrawing = vault.withdraw(context, account.address)
@ -307,8 +302,6 @@ describe("Vault", function () {
})
it("allows withdrawal after lock expires", async function () {
let start = await currentTime()
let expiry = start + 10
await vault.lockup(context, expiry, expiry)
await advanceTimeTo(expiry)
const before = await token.balanceOf(account.address)
@ -318,38 +311,26 @@ describe("Vault", function () {
})
it("can extend a lock expiry up to its maximum", async function () {
let start = await currentTime()
let expiry = start + 10
let maximum = start + 20
await vault.lockup(context, expiry, maximum)
await vault.extend(context, start + 15)
expect((await vault.lock(context))[0]).to.equal(start + 15)
await vault.extend(context, start + 20)
expect((await vault.lock(context))[0]).to.equal(start + 20)
await vault.extend(context, expiry + 1)
expect((await vault.lock(context))[0]).to.equal(expiry + 1)
await vault.extend(context, maximum)
expect((await vault.lock(context))[0]).to.equal(maximum)
})
it("cannot extend a lock past its maximum", async function () {
let start = await currentTime()
let expiry = start + 10
let maximum = start + 20
await vault.lockup(context, expiry, maximum)
const extending = vault.extend(context, start + 21)
const extending = vault.extend(context, maximum + 1)
await expect(extending).to.be.revertedWith("ExpiryPastMaximum")
})
it("cannot move expiry forward", async function () {
let start = await currentTime()
let expiry = start + 10
let maximum = start + 20
await vault.lockup(context, expiry, maximum)
const extending = vault.extend(context, start + 9)
const extending = vault.extend(context, expiry - 1)
await expect(extending).to.be.revertedWith("InvalidExpiry")
})
it("cannot extend an expired lock", async function () {
let start = await currentTime()
let expiry = start + 10
let maximum = start + 20
await vault.lockup(context, expiry, maximum)
await advanceTimeTo(expiry)
const extending = vault.extend(context, maximum)
@ -357,8 +338,6 @@ describe("Vault", function () {
})
it("deletes lock when funds are withdrawn", async function () {
let start = await currentTime()
let expiry = start + 10
await vault.lockup(context, expiry, expiry)
await advanceTimeToForNextBlock(expiry)
await vault.withdraw(context, account.address)