69 lines
1.9 KiB
TypeScript
69 lines
1.9 KiB
TypeScript
import * as anchor from "@coral-xyz/anchor";
|
|
import { Program, getProvider } from "@coral-xyz/anchor";
|
|
import { Keypair, SystemProgram } from "@solana/web3.js";
|
|
import { Floats } from "../target/types/floats";
|
|
import { assert } from "chai";
|
|
|
|
describe("floats", () => {
|
|
// Configure the client to use the local cluster.
|
|
const provider = anchor.AnchorProvider.env();
|
|
anchor.setProvider(provider);
|
|
|
|
const program = anchor.workspace.Floats as Program<Floats>;
|
|
|
|
it("Creates an account with float data", async () => {
|
|
const accountKeypair = Keypair.generate();
|
|
|
|
await program.methods
|
|
.create(1.0, 2.0)
|
|
.accounts({
|
|
account: accountKeypair.publicKey,
|
|
authority: provider.wallet.publicKey,
|
|
systemProgram: SystemProgram.programId,
|
|
})
|
|
.signers([accountKeypair])
|
|
.rpc();
|
|
|
|
const account = await program.account.floatDataAccount.fetch(
|
|
accountKeypair.publicKey
|
|
);
|
|
|
|
assert.strictEqual(account.dataF32, 1.0);
|
|
assert.strictEqual(account.dataF64, 2.0);
|
|
});
|
|
|
|
it("Updates an account with float data", async () => {
|
|
const accountKeypair = Keypair.generate();
|
|
const authorityPublicKey = provider.wallet.publicKey;
|
|
|
|
await program.methods
|
|
.create(1.0, 2.0)
|
|
.accounts({
|
|
account: accountKeypair.publicKey,
|
|
authority: authorityPublicKey,
|
|
systemProgram: SystemProgram.programId,
|
|
})
|
|
.signers([accountKeypair])
|
|
.rpc();
|
|
|
|
let account = await program.account.floatDataAccount.fetch(
|
|
accountKeypair.publicKey
|
|
);
|
|
|
|
await program.methods
|
|
.update(3.0, 4.0)
|
|
.accounts({
|
|
account: accountKeypair.publicKey,
|
|
authority: authorityPublicKey,
|
|
})
|
|
.rpc();
|
|
|
|
account = await program.account.floatDataAccount.fetch(
|
|
accountKeypair.publicKey
|
|
);
|
|
|
|
assert.strictEqual(account.dataF32, 3.0);
|
|
assert.strictEqual(account.dataF64, 4.0);
|
|
});
|
|
});
|