test.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import * as anchor from "@coral-xyz/anchor";
  2. import { AnchorProgramExample } from "../target/types/anchor_program_example";
  3. describe("Anchor example", () => {
  4. const provider = anchor.AnchorProvider.env();
  5. anchor.setProvider(provider);
  6. const program = anchor.workspace
  7. .AnchorProgramExample as anchor.Program<AnchorProgramExample>;
  8. const payer = provider.wallet as anchor.Wallet;
  9. // We'll create this ahead of time.
  10. // Our program will try to modify it.
  11. const accountToChange = anchor.web3.Keypair.generate();
  12. // Our program will create this.
  13. const accountToCreate = anchor.web3.Keypair.generate();
  14. it("Create an account owned by our program", async () => {
  15. let ix = anchor.web3.SystemProgram.createAccount({
  16. fromPubkey: provider.wallet.publicKey,
  17. newAccountPubkey: accountToChange.publicKey,
  18. lamports: await provider.connection.getMinimumBalanceForRentExemption(0),
  19. space: 0,
  20. programId: program.programId, // Our program
  21. });
  22. await anchor.web3.sendAndConfirmTransaction(
  23. provider.connection,
  24. new anchor.web3.Transaction().add(ix),
  25. [payer.payer, accountToChange]
  26. );
  27. });
  28. it("Check accounts", async () => {
  29. await program.methods
  30. .checkAccounts()
  31. .accounts({
  32. payer: provider.wallet.publicKey,
  33. accountToCreate: accountToCreate.publicKey,
  34. accountToChange: accountToChange.publicKey,
  35. systemProgram: anchor.web3.SystemProgram.programId,
  36. })
  37. .signers([payer.payer])
  38. .rpc();
  39. });
  40. });