make withdraw ts tests work

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
This commit is contained in:
microwavedcola1 2021-11-26 07:49:22 +01:00
parent eccaecc2e5
commit 23ad57302d
5 changed files with 47 additions and 1 deletions

View File

@ -13,6 +13,7 @@ no-entrypoint = []
no-idl = []
cpi = ["no-entrypoint"]
default = []
localnet = []
[dependencies]
anchor-lang = "0.18.0"

View File

@ -10,6 +10,11 @@ use std::convert::TryFrom;
vote_weight_record!(crate::ID);
/// Seconds in one day.
/// for localnet, to make testing of vesting possible,
/// set a low value so tests can just sleep for 10s to simulate a day
#[cfg(feature = "localnet")]
pub const SECS_PER_DAY: i64 = 10;
#[cfg(not(feature = "localnet"))]
pub const SECS_PER_DAY: i64 = 86_400;
/// Maximum number of days one can lock for.

6
run-format.sh Executable file
View File

@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -euo pipefail
yarn prettier --write tests
cargo fmt

5
run-test.sh Executable file
View File

@ -0,0 +1,5 @@
#!/usr/bin/env bash
set -euo pipefail
./run-format.sh && anchor test -- --features localnet

View File

@ -1,7 +1,7 @@
import * as assert from "assert";
import * as anchor from "@project-serum/anchor";
import { Program } from "@project-serum/anchor";
import { createMintAndVault } from "@project-serum/common";
import { createMintAndVault, sleep } from "@project-serum/common";
import BN from "bn.js";
import {
PublicKey,
@ -273,6 +273,7 @@ describe("voting-rights", () => {
});
it("Withdraws cliff locked A tokens", async () => {
await sleep(10000);
const depositId = 0;
const amount = new BN(10);
await program.rpc.withdraw(depositId, amount, {
@ -329,6 +330,34 @@ describe("voting-rights", () => {
assert.ok(deposit.rateIdx === 0);
});
it("Withdraws daily locked A tokens", async () => {
await sleep(10000);
const depositId = 1;
const amount = new BN(10);
await program.rpc.withdraw(depositId, amount, {
accounts: {
registrar,
voter,
exchangeVault: exchangeVaultA,
withdrawMint: mintA,
votingToken,
votingMint: votingMintA,
destination: godA,
authority: program.provider.wallet.publicKey,
tokenProgram,
},
});
const voterAccount = await program.account.voter.fetch(voter);
const deposit = voterAccount.deposits[0];
assert.ok(deposit.isUsed);
assert.ok(deposit.amountDeposited.toNumber() === 0);
assert.ok(deposit.rateIdx === 0);
const vtAccount = await votingTokenClientA.getAccountInfo(votingToken);
assert.ok(vtAccount.amount.toNumber() === 0);
});
it("Updates a vote weight record", async () => {
await program.rpc.updateVoterWeightRecord({
accounts: {