chore: add live merge test cases

This commit is contained in:
Tyera Eulberg 2021-08-12 10:29:21 -06:00 committed by Tyera Eulberg
parent 224adb7645
commit 5233338c94
1 changed files with 45 additions and 0 deletions

View File

@ -504,6 +504,34 @@ describe('StakeProgram', () => {
const balance = await connection.getBalance(newAccountPubkey);
expect(balance).to.eq(minimumAmount + 2);
// Merge stake
let merge = StakeProgram.merge({
stakePubkey: newAccountPubkey,
sourceStakePubKey: newStake.publicKey,
authorizedPubkey: authorized.publicKey,
});
await sendAndConfirmTransaction(connection, merge, [authorized], {
preflightCommitment: 'confirmed',
});
const mergedBalance = await connection.getBalance(newAccountPubkey);
expect(mergedBalance).to.eq(2 * minimumAmount + 22);
// Resplit
split = StakeProgram.split({
stakePubkey: newAccountPubkey,
authorizedPubkey: authorized.publicKey,
splitStakePubkey: newStake.publicKey,
lamports: minimumAmount + 20,
});
await sendAndConfirmTransaction(
connection,
split,
[authorized, newStake],
{
preflightCommitment: 'confirmed',
},
);
// Authorize to new account
const newAuthorized = Keypair.generate();
await connection.requestAirdrop(
@ -547,6 +575,23 @@ describe('StakeProgram', () => {
),
).to.be.rejected;
// Test accounts with different authorities can't be merged
let mergeNotAuthorized = StakeProgram.merge({
stakePubkey: newStake.publicKey,
sourceStakePubKey: newAccountPubkey,
authorizedPubkey: authorized.publicKey,
});
await expect(
sendAndConfirmTransaction(
connection,
mergeNotAuthorized,
[authorized],
{
preflightCommitment: 'confirmed',
},
),
).to.be.rejected;
// Authorize a derived address
authorize = StakeProgram.authorize({
stakePubkey: newAccountPubkey,