Browse Source

test actions

Ayush 11 months ago
parent
commit
5596fbac46

+ 36 - 0
basics/hello-solana/native/tests/index.test.ts

@@ -0,0 +1,36 @@
+import { describe, test } from 'node:test';
+import { PublicKey, Transaction, TransactionInstruction } from '@solana/web3.js';
+import { assert } from 'chai';
+import { start } from 'solana-bankrun';
+
+describe('hello-solana', async () => {
+  // load program in solana-bankrun
+  const PROGRAM_ID = PublicKey.unique();
+  const context = await start([{ name: 'hello_solana_program', programId: PROGRAM_ID }], []);
+  const client = context.banksClient;
+  const payer = context.payer;
+
+  test('Say hello!', async () => {
+    const blockhash = context.lastBlockhash;
+    // We set up our instruction first.
+    const ix = new TransactionInstruction({
+      keys: [{ pubkey: payer.publicKey, isSigner: true, isWritable: true }],
+      programId: PROGRAM_ID,
+      data: Buffer.alloc(0), // No data
+    });
+
+    const tx = new Transaction();
+    tx.recentBlockhash = blockhash;
+    tx.add(ix).sign(payer);
+
+    // Now we process the transaction
+    const transaction = await client.processTransaction(tx);
+
+    assert(transaction.logMessages[0].startsWith(`Program ${PROGRAM_ID}`));
+    assert(transaction.logMessages[1] === 'Program log: Hello, Solana!');
+    assert(transaction.logMessages[2] === `Program log: Our program's Program ID: ${PROGRAM_ID}`);
+    assert(transaction.logMessages[3].startsWith(`Program ${PROGRAM_ID} consumed`));
+    assert(transaction.logMessages[4] === `Program ${PROGRAM_ID} success`);
+    assert(transaction.logMessages.length === 5);
+  });
+});

+ 36 - 0
basics/hello-solana/steel/tests/index.test.ts

@@ -0,0 +1,36 @@
+import { describe, test } from 'node:test';
+import { PublicKey, Transaction, TransactionInstruction } from '@solana/web3.js';
+import { assert } from 'chai';
+import { start } from 'solana-bankrun';
+
+describe('hello-solana', async () => {
+  // load program in solana-bankrun
+  const PROGRAM_ID = PublicKey.unique();
+  const context = await start([{ name: 'steel_hello_solana', programId: PROGRAM_ID }], []);
+  const client = context.banksClient;
+  const payer = context.payer;
+
+  test('Say hello!', async () => {
+    const blockhash = context.lastBlockhash;
+    // We set up our instruction first.
+    const ix = new TransactionInstruction({
+      keys: [{ pubkey: payer.publicKey, isSigner: true, isWritable: true }],
+      programId: PROGRAM_ID,
+      data: Buffer.alloc(0), // No data
+    });
+
+    const tx = new Transaction();
+    tx.recentBlockhash = blockhash;
+    tx.add(ix).sign(payer);
+
+    // Now we process the transaction
+    const transaction = await client.processTransaction(tx);
+
+    assert(transaction.logMessages[0].startsWith(`Program ${PROGRAM_ID}`));
+    assert(transaction.logMessages[1] === 'Program log: Hello, Solana!');
+    assert(transaction.logMessages[2] === `Program log: Our program's Program ID: ${PROGRAM_ID}`);
+    assert(transaction.logMessages[3].startsWith(`Program ${PROGRAM_ID} consumed`));
+    assert(transaction.logMessages[4] === `Program ${PROGRAM_ID} success`);
+    assert(transaction.logMessages.length === 5);
+  });
+});