composite.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. const assert = require('assert');
  2. const anchor = require('@project-serum/anchor');
  3. describe('composite', () => {
  4. const provider = anchor.Provider.local();
  5. // Configure the client to use the local cluster.
  6. anchor.setProvider(provider);
  7. it('Is initialized!', async () => {
  8. const program = anchor.workspace.Composite;
  9. const dummyA = new anchor.web3.Account();
  10. const dummyB = new anchor.web3.Account();
  11. const tx = await program.rpc.initialize({
  12. accounts: {
  13. dummyA: dummyA.publicKey,
  14. dummyB: dummyB.publicKey,
  15. rent: anchor.web3.SYSVAR_RENT_PUBKEY,
  16. },
  17. signers: [dummyA, dummyB],
  18. instructions: [
  19. anchor.web3.SystemProgram.createAccount({
  20. fromPubkey: provider.wallet.publicKey,
  21. newAccountPubkey: dummyA.publicKey,
  22. space: 8 + 8,
  23. lamports: await provider.connection.getMinimumBalanceForRentExemption(
  24. 8 + 8
  25. ),
  26. programId: program.programId,
  27. }),
  28. anchor.web3.SystemProgram.createAccount({
  29. fromPubkey: provider.wallet.publicKey,
  30. newAccountPubkey: dummyB.publicKey,
  31. space: 8 + 100,
  32. lamports: await provider.connection.getMinimumBalanceForRentExemption(
  33. 8 + 100
  34. ),
  35. programId: program.programId,
  36. }),
  37. ],
  38. });
  39. await program.rpc.compositeUpdate(new anchor.BN(1234), 'hello', {
  40. accounts: {
  41. dummyA: dummyA.publicKey,
  42. dummyB: dummyB.publicKey,
  43. },
  44. });
  45. const dummyAAccount = await program.account.dummyA(dummyA.publicKey);
  46. const dummyBAccount = await program.account.dummyB(dummyB.publicKey);
  47. assert.ok(dummyAAccount.data.eq(new anchor.BN(1234)));
  48. assert.ok(dummyBAccount.data === 'hello');
  49. });
  50. });