Skip to content

Commit

Permalink
[wip]: Draft first JS client test
Browse files Browse the repository at this point in the history
  • Loading branch information
lorisleiva committed Jan 14, 2025
1 parent 1e63cb0 commit 3250f0c
Show file tree
Hide file tree
Showing 4 changed files with 70 additions and 203 deletions.
20 changes: 0 additions & 20 deletions clients/js/test/_setup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,12 @@ import {
Commitment,
CompilableTransactionMessage,
TransactionMessageWithBlockhashLifetime,
ProgramDerivedAddress,
Rpc,
RpcSubscriptions,
SolanaRpcApi,
SolanaRpcSubscriptionsApi,
TransactionSigner,
airdropFactory,
appendTransactionMessageInstruction,
createSolanaRpc,
createSolanaRpcSubscriptions,
createTransactionMessage,
Expand All @@ -23,7 +21,6 @@ import {
setTransactionMessageLifetimeUsingBlockhash,
signTransactionMessageWithSigners,
} from '@solana/web3.js';
import { findCounterPda, getCreateInstructionAsync } from '../src';

type Client = {
rpc: Rpc<SolanaRpcApi>;
Expand Down Expand Up @@ -81,20 +78,3 @@ export const signAndSendTransaction = async (
export const getBalance = async (client: Client, address: Address) =>
(await client.rpc.getBalance(address, { commitment: 'confirmed' }).send())
.value;

export const createCounterForAuthority = async (
client: Client,
authority: TransactionSigner
): Promise<ProgramDerivedAddress> => {
const [transaction, counterPda, createIx] = await Promise.all([
createDefaultTransaction(client, authority),
findCounterPda({ authority: authority.address }),
getCreateInstructionAsync({ authority }),
]);
await pipe(
transaction,
(tx) => appendTransactionMessageInstruction(createIx, tx),
(tx) => signAndSendTransaction(client, tx)
);
return counterPda;
};
42 changes: 0 additions & 42 deletions clients/js/test/create.test.ts

This file was deleted.

141 changes: 0 additions & 141 deletions clients/js/test/increment.test.ts

This file was deleted.

70 changes: 70 additions & 0 deletions clients/js/test/initialize.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
import {
address,
appendTransactionMessageInstruction,
pipe,
} from '@solana/web3.js';
import test from 'ava';
import {
AccountDiscriminator,
Compression,
DataSource,
Encoding,
fetchMetadata,
findNonCanonicalPda,
Format,
getInitializeInstructionAsync,
Metadata,
} from '../src';
import {
createDefaultSolanaClient,
createDefaultTransaction,
generateKeyPairSignerWithSol,
signAndSendTransaction,
} from './_setup';

test('non canonical, direct, with instruction data', async (t) => {
// Given
const client = createDefaultSolanaClient();
const authority = await generateKeyPairSignerWithSol(client);
const program = address('TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA');
const seed = 'dummy';

// When
const createIx = await getInitializeInstructionAsync({
authority,
program,
seed,
encoding: Encoding.Utf8,
compression: Compression.None,
format: Format.None,
dataSource: DataSource.Direct,
data: null,
});
await pipe(
await createDefaultTransaction(client, authority),
(tx) => appendTransactionMessageInstruction(createIx, tx),
(tx) => signAndSendTransaction(client, tx)
);

// Then
const [pda] = await findNonCanonicalPda({
authority: authority.address,
program,
seed,
});
const metadata = await fetchMetadata(client.rpc, pda);
t.like(metadata, <Metadata>{
discriminator: AccountDiscriminator.Metadata,
// program: Address;
// authority: Option<Address>;
// mutable: boolean;
// canonical: boolean;
// seed: Seed;
// encoding: Encoding;
// compression: Compression;
// format: Format;
// dataSource: DataSource;
// dataLength: number;
// data: ReadonlyUint8Array;
});
});

0 comments on commit 3250f0c

Please sign in to comment.