test.ts 1.5 KB

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