add tests
This commit is contained in:
parent
8f387e52c2
commit
efa9daa623
|
@ -0,0 +1,64 @@
|
|||
import * as assert from "assert";
|
||||
import { PoolUtil, SwapDirection, TokenType } from "../../../../src";
|
||||
import { testWhirlpoolData } from "../../../utils/testDataTypes";
|
||||
import { Keypair } from "@solana/web3.js";
|
||||
|
||||
describe("PoolUtils tests", () => {
|
||||
describe("getTokenType", () => {
|
||||
it("Token is tokenA", async () => {
|
||||
const whirlpoolData = testWhirlpoolData;
|
||||
const result = PoolUtil.getTokenType(whirlpoolData, whirlpoolData.tokenMintA);
|
||||
assert.equal(result, TokenType.TokenA);
|
||||
});
|
||||
|
||||
it("Token is tokenB", async () => {
|
||||
const whirlpoolData = testWhirlpoolData;
|
||||
const result = PoolUtil.getTokenType(whirlpoolData, whirlpoolData.tokenMintB);
|
||||
assert.equal(result, TokenType.TokenB);
|
||||
});
|
||||
|
||||
it("Token is some other token", async () => {
|
||||
const whirlpoolData = testWhirlpoolData;
|
||||
const result = PoolUtil.getTokenType(whirlpoolData, Keypair.generate().publicKey);
|
||||
assert.ok(result === undefined);
|
||||
});
|
||||
});
|
||||
|
||||
describe("getSwapDirection", () => {
|
||||
it("SwapToken is tokenA and is an input", async () => {
|
||||
const whirlpoolData = testWhirlpoolData;
|
||||
const result = PoolUtil.getSwapDirection(whirlpoolData, whirlpoolData.tokenMintA, true);
|
||||
assert.equal(result, SwapDirection.AtoB);
|
||||
});
|
||||
|
||||
it("SwapToken is tokenB and is an input", async () => {
|
||||
const whirlpoolData = testWhirlpoolData;
|
||||
const result = PoolUtil.getSwapDirection(whirlpoolData, whirlpoolData.tokenMintB, true);
|
||||
assert.equal(result, SwapDirection.BtoA);
|
||||
});
|
||||
|
||||
it("SwapToken is tokenA and is not an input", async () => {
|
||||
const whirlpoolData = testWhirlpoolData;
|
||||
const result = PoolUtil.getSwapDirection(whirlpoolData, whirlpoolData.tokenMintA, false);
|
||||
assert.equal(result, SwapDirection.BtoA);
|
||||
});
|
||||
|
||||
it("SwapToken is tokenB and is not an input", async () => {
|
||||
const whirlpoolData = testWhirlpoolData;
|
||||
const result = PoolUtil.getSwapDirection(whirlpoolData, whirlpoolData.tokenMintB, false);
|
||||
assert.equal(result, SwapDirection.AtoB);
|
||||
});
|
||||
|
||||
it("SwapToken is a random mint and is an input", async () => {
|
||||
const whirlpoolData = testWhirlpoolData;
|
||||
const result = PoolUtil.getSwapDirection(whirlpoolData, Keypair.generate().publicKey, true);
|
||||
assert.equal(result, undefined);
|
||||
});
|
||||
|
||||
it("SwapToken is a random mint and is not an input", async () => {
|
||||
const whirlpoolData = testWhirlpoolData;
|
||||
const result = PoolUtil.getSwapDirection(whirlpoolData, Keypair.generate().publicKey, false);
|
||||
assert.equal(result, undefined);
|
||||
});
|
||||
});
|
||||
});
|
|
@ -0,0 +1,24 @@
|
|||
import { Keypair } from "@solana/web3.js";
|
||||
import { BN } from "bn.js";
|
||||
import { PriceMath } from "../../src";
|
||||
|
||||
export const testWhirlpoolData = {
|
||||
whirlpoolsConfig: Keypair.generate().publicKey,
|
||||
whirlpoolBump: [],
|
||||
feeRate: 300,
|
||||
protocolFeeRate: 1800,
|
||||
liquidity: new BN("32523523532"),
|
||||
sqrtPrice: new BN("32523523532"),
|
||||
tickCurrentIndex: PriceMath.sqrtPriceX64ToTickIndex(new BN("32523523532")),
|
||||
protocolFeeOwedA: new BN("2314532532"),
|
||||
protocolFeeOwedB: new BN("2314532532"),
|
||||
tokenMintA: Keypair.generate().publicKey,
|
||||
tokenVaultA: Keypair.generate().publicKey,
|
||||
feeGrowthGlobalA: new BN("32532523523523523"),
|
||||
tokenMintB: Keypair.generate().publicKey,
|
||||
tokenVaultB: Keypair.generate().publicKey,
|
||||
feeGrowthGlobalB: new BN("32532523523523523"),
|
||||
rewardLastUpdatedTimestamp: new BN("3253252312412523523523"),
|
||||
rewardInfos: [],
|
||||
tickSpacing: 64,
|
||||
};
|
Loading…
Reference in New Issue