anchor/examples/composite/tests/composite.js

60 lines
1.7 KiB
JavaScript

const assert = require('assert');
const anchor = require('@project-serum/anchor');
describe('composite', () => {
const provider = anchor.Provider.local();
// Configure the client to use the local cluster.
anchor.setProvider(provider);
it('Is initialized!', async () => {
const program = anchor.workspace.Composite;
const dummyA = new anchor.web3.Account();
const dummyB = new anchor.web3.Account();
const tx = await program.rpc.initialize({
accounts: {
dummyA: dummyA.publicKey,
dummyB: dummyB.publicKey,
rent: anchor.web3.SYSVAR_RENT_PUBKEY,
},
signers: [dummyA, dummyB],
instructions: [
anchor.web3.SystemProgram.createAccount({
fromPubkey: provider.wallet.publicKey,
newAccountPubkey: dummyA.publicKey,
space: 8 + 8,
lamports: await provider.connection.getMinimumBalanceForRentExemption(
8 + 8
),
programId: program.programId,
}),
anchor.web3.SystemProgram.createAccount({
fromPubkey: provider.wallet.publicKey,
newAccountPubkey: dummyB.publicKey,
space: 8 + 100,
lamports: await provider.connection.getMinimumBalanceForRentExemption(
8 + 100
),
programId: program.programId,
}),
],
});
await program.rpc.compositeUpdate(new anchor.BN(1234), 'hello', {
accounts: {
dummyA: dummyA.publicKey,
dummyB: dummyB.publicKey,
},
});
const dummyAAccount = await program.account.dummyA(dummyA.publicKey);
const dummyBAccount = await program.account.dummyB(dummyB.publicKey);
assert.ok(dummyAAccount.data.eq(new anchor.BN(1234)));
assert.ok(dummyBAccount.data === 'hello');
});
});