1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import { PublicKey, Transaction } from '@solana/web3.js';
- import { describe, test } from 'node:test';
- import { createCreateUserInstruction, createCloseUserInstruction } from '../ts';
- import { start } from 'solana-bankrun';
- describe('Close Account!', async () => {
- const PROGRAM_ID = PublicKey.unique();
- const context = await start(
- [{ name: 'close_account_native_program', programId: PROGRAM_ID }],
- []
- );
- const client = context.banksClient;
- const payer = context.payer;
- const testAccountPublicKey = PublicKey.findProgramAddressSync(
- [Buffer.from('USER'), payer.publicKey.toBuffer()],
- PROGRAM_ID
- )[0];
- test('Create the account', async () => {
- const blockhash = context.lastBlockhash;
- const ix = createCreateUserInstruction(
- testAccountPublicKey,
- payer.publicKey,
- PROGRAM_ID,
- 'Jacob'
- );
- const tx = new Transaction();
- tx.recentBlockhash = blockhash;
- tx.add(ix).sign(payer);
- await client.processTransaction(tx);
- });
- test('Close the account', async () => {
- const blockhash = context.lastBlockhash;
- const ix = createCloseUserInstruction(
- testAccountPublicKey,
- payer.publicKey,
- PROGRAM_ID
- );
- const tx = new Transaction();
- tx.recentBlockhash = blockhash;
- tx.add(ix).sign(payer);
- await client.processTransaction(tx);
- });
- });
|