tests: 2d array test (#966)
This commit is contained in:
parent
20726d06bd
commit
f66eee7c6d
|
@ -36,3 +36,8 @@ pub struct DataWithFilter {
|
|||
pub authority: Pubkey,
|
||||
pub filterable: Pubkey,
|
||||
}
|
||||
|
||||
#[account]
|
||||
pub struct DataMultidimensionalArray {
|
||||
pub data: [[u8; 10]; 10],
|
||||
}
|
||||
|
|
|
@ -252,3 +252,9 @@ pub struct TestInitIfNeeded<'info> {
|
|||
pub payer: Signer<'info>,
|
||||
pub system_program: Program<'info, System>,
|
||||
}
|
||||
|
||||
#[derive(Accounts)]
|
||||
pub struct TestMultidimensionalArray<'info> {
|
||||
#[account(zero)]
|
||||
pub data: Account<'info, DataMultidimensionalArray>,
|
||||
}
|
||||
|
|
|
@ -189,4 +189,12 @@ pub mod misc {
|
|||
ctx.accounts.data.data = data;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn test_multidimensional_array(
|
||||
ctx: Context<TestMultidimensionalArray>,
|
||||
data: [[u8; 10]; 10],
|
||||
) -> ProgramResult {
|
||||
ctx.accounts.data.data = data;
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
|
|
@ -835,4 +835,23 @@ describe("misc", () => {
|
|||
const account = await program.account.dataU16.fetch(ifNeededAcc.publicKey);
|
||||
assert.ok(account.data, 3);
|
||||
});
|
||||
|
||||
it("Can use multidimensional array", async () => {
|
||||
const array2d = new Array(10).fill(new Array(10).fill(99));
|
||||
const data = anchor.web3.Keypair.generate();
|
||||
const tx = await program.rpc.testMultidimensionalArray(array2d, {
|
||||
accounts: {
|
||||
data: data.publicKey,
|
||||
rent: anchor.web3.SYSVAR_RENT_PUBKEY,
|
||||
},
|
||||
signers: [data],
|
||||
instructions: [
|
||||
await program.account.dataMultidimensionalArray.createInstruction(data),
|
||||
],
|
||||
});
|
||||
const dataAccount = await program.account.dataMultidimensionalArray.fetch(
|
||||
data.publicKey
|
||||
);
|
||||
assert.deepStrictEqual(dataAccount.data, array2d);
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue