anchor/examples/tutorial/basic-3/tests/basic-3.js

41 lines
1.2 KiB
JavaScript

const assert = require("assert");
const anchor = require("@coral-xyz/anchor");
const { SystemProgram } = anchor.web3;
describe("basic-3", () => {
const provider = anchor.AnchorProvider.local();
// Configure the client to use the local cluster.
anchor.setProvider(provider);
it("Performs CPI from puppet master to puppet", async () => {
const puppetMaster = anchor.workspace.PuppetMaster;
const puppet = anchor.workspace.Puppet;
// Initialize a new puppet account.
const newPuppetAccount = anchor.web3.Keypair.generate();
const tx = await puppet.methods
.initialize()
.accounts({
puppet: newPuppetAccount.publicKey,
user: provider.wallet.publicKey,
systemProgram: SystemProgram.programId,
})
.signers([newPuppetAccount])
.rpc();
// Invoke the puppet master to perform a CPI to the puppet.
await puppetMaster.methods
.pullStrings(new anchor.BN(111))
.accounts({
puppet: newPuppetAccount.publicKey,
puppetProgram: puppet.programId,
})
.rpc();
// Check the state updated.
puppetAccount = await puppet.account.data.fetch(newPuppetAccount.publicKey);
assert.ok(puppetAccount.data.eq(new anchor.BN(111)));
});
});