123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- import * as anchor from "@coral-xyz/anchor";
- import { Program } from "@coral-xyz/anchor";
- import { AccountCommand } from "../target/types/account_command";
- import { assert } from "chai";
- import { execSync } from "child_process";
- import { sleep } from "@project-serum/common";
- describe("Test CLI account commands", () => {
- // Configure the client to use the local cluster.
- const provider = anchor.AnchorProvider.env();
- anchor.setProvider(provider);
- const program = anchor.workspace.AccountCommand as Program<AccountCommand>;
- it("Can fetch and deserialize account using the account command", async () => {
- const myAccount = anchor.web3.Keypair.generate();
- const balance = -2.5;
- const amount = 108;
- const memo = "account test";
- const values = [1, 2, 3, 1000];
- await program.methods
- .initialize(
- balance,
- new anchor.BN(amount),
- memo,
- values.map((x) => new anchor.BN(x))
- )
- .accounts({
- myAccount: myAccount.publicKey,
- user: provider.wallet.publicKey,
- systemProgram: anchor.web3.SystemProgram.programId,
- })
- .signers([myAccount])
- .rpc();
- let output: any = {};
- for (let tries = 0; tries < 20; tries++) {
- try {
- output = JSON.parse(
- execSync(
- `anchor account account_command.MyAccount ${myAccount.publicKey}`,
- { stdio: "pipe" }
- ).toString()
- );
- break;
- } catch (e) {
- if (!e.stderr.toString().startsWith("Error: AccountNotFound")) {
- throw e;
- }
- }
- await sleep(5000);
- }
- assert(output.balance == balance, "Balance deserialized incorrectly");
- assert(
- output.delegatePubkey == provider.wallet.publicKey,
- "delegatePubkey deserialized incorrectly"
- );
- assert(
- output.sub.state.Confirmed.amount === amount,
- "Amount deserialized incorrectly"
- );
- assert(
- output.sub.state.Confirmed.memo === memo,
- "Memo deserialized incorrectly"
- );
- for (let i = 0; i < values.length; i++) {
- assert(
- output.sub.values[i] == values[i],
- "Values deserialized incorrectly"
- );
- }
- });
- });
|