fix: fund various test accounts above rent minimum to stabilize tests
This commit is contained in:
committed by
Michael Vines
parent
17065c3692
commit
f37d27660d
@ -491,11 +491,32 @@ test('request airdrop', async () => {
|
|||||||
const account = new Account();
|
const account = new Account();
|
||||||
const connection = new Connection(url, 'recent');
|
const connection = new Connection(url, 'recent');
|
||||||
|
|
||||||
|
mockRpc.push([
|
||||||
|
url,
|
||||||
|
{
|
||||||
|
method: 'getMinimumBalanceForRentExemption',
|
||||||
|
params: [0, {commitment: 'recent'}],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
error: null,
|
||||||
|
result: 50,
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
|
||||||
|
const minimumAmount = await connection.getMinimumBalanceForRentExemption(
|
||||||
|
0,
|
||||||
|
'recent',
|
||||||
|
);
|
||||||
|
|
||||||
mockRpc.push([
|
mockRpc.push([
|
||||||
url,
|
url,
|
||||||
{
|
{
|
||||||
method: 'requestAirdrop',
|
method: 'requestAirdrop',
|
||||||
params: [account.publicKey.toBase58(), 40, {commitment: 'recent'}],
|
params: [
|
||||||
|
account.publicKey.toBase58(),
|
||||||
|
minimumAmount + 40,
|
||||||
|
{commitment: 'recent'},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
error: null,
|
error: null,
|
||||||
@ -527,16 +548,16 @@ test('request airdrop', async () => {
|
|||||||
context: {
|
context: {
|
||||||
slot: 11,
|
slot: 11,
|
||||||
},
|
},
|
||||||
value: 42,
|
value: minimumAmount + 42,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
|
|
||||||
await connection.requestAirdrop(account.publicKey, 40);
|
await connection.requestAirdrop(account.publicKey, minimumAmount + 40);
|
||||||
await connection.requestAirdrop(account.publicKey, 2);
|
await connection.requestAirdrop(account.publicKey, 2);
|
||||||
|
|
||||||
const balance = await connection.getBalance(account.publicKey);
|
const balance = await connection.getBalance(account.publicKey);
|
||||||
expect(balance).toBe(42);
|
expect(balance).toBe(minimumAmount + 42);
|
||||||
|
|
||||||
mockRpc.push([
|
mockRpc.push([
|
||||||
url,
|
url,
|
||||||
@ -585,7 +606,7 @@ test('request airdrop', async () => {
|
|||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
],
|
],
|
||||||
lamports: 42,
|
lamports: minimumAmount + 42,
|
||||||
data: [],
|
data: [],
|
||||||
executable: false,
|
executable: false,
|
||||||
},
|
},
|
||||||
@ -594,7 +615,7 @@ test('request airdrop', async () => {
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
const accountInfo = await connection.getAccountInfo(account.publicKey);
|
const accountInfo = await connection.getAccountInfo(account.publicKey);
|
||||||
expect(accountInfo.lamports).toBe(42);
|
expect(accountInfo.lamports).toBe(minimumAmount + 42);
|
||||||
expect(accountInfo.data).toHaveLength(0);
|
expect(accountInfo.data).toHaveLength(0);
|
||||||
expect(accountInfo.owner).toEqual(SystemProgram.programId);
|
expect(accountInfo.owner).toEqual(SystemProgram.programId);
|
||||||
});
|
});
|
||||||
@ -604,11 +625,32 @@ test('request airdrop - max commitment', async () => {
|
|||||||
const account = new Account();
|
const account = new Account();
|
||||||
const connection = new Connection(url, 'max');
|
const connection = new Connection(url, 'max');
|
||||||
|
|
||||||
|
mockRpc.push([
|
||||||
|
url,
|
||||||
|
{
|
||||||
|
method: 'getMinimumBalanceForRentExemption',
|
||||||
|
params: [0, {commitment: 'recent'}],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
error: null,
|
||||||
|
result: 50,
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
|
||||||
|
const minimumAmount = await connection.getMinimumBalanceForRentExemption(
|
||||||
|
0,
|
||||||
|
'recent',
|
||||||
|
);
|
||||||
|
|
||||||
mockRpc.push([
|
mockRpc.push([
|
||||||
url,
|
url,
|
||||||
{
|
{
|
||||||
method: 'requestAirdrop',
|
method: 'requestAirdrop',
|
||||||
params: [account.publicKey.toBase58(), 40, {commitment: 'max'}],
|
params: [
|
||||||
|
account.publicKey.toBase58(),
|
||||||
|
minimumAmount + 40,
|
||||||
|
{commitment: 'max'},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
error: null,
|
error: null,
|
||||||
@ -628,14 +670,14 @@ test('request airdrop - max commitment', async () => {
|
|||||||
context: {
|
context: {
|
||||||
slot: 11,
|
slot: 11,
|
||||||
},
|
},
|
||||||
value: 40,
|
value: minimumAmount + 40,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
|
|
||||||
await connection.requestAirdrop(account.publicKey, 40);
|
await connection.requestAirdrop(account.publicKey, minimumAmount + 40);
|
||||||
const balance = await connection.getBalance(account.publicKey);
|
const balance = await connection.getBalance(account.publicKey);
|
||||||
expect(balance).toBe(40);
|
expect(balance).toBe(minimumAmount + 40);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('transaction', async () => {
|
test('transaction', async () => {
|
||||||
@ -643,13 +685,30 @@ test('transaction', async () => {
|
|||||||
const accountTo = new Account();
|
const accountTo = new Account();
|
||||||
const connection = new Connection(url, 'recent');
|
const connection = new Connection(url, 'recent');
|
||||||
|
|
||||||
|
mockRpc.push([
|
||||||
|
url,
|
||||||
|
{
|
||||||
|
method: 'getMinimumBalanceForRentExemption',
|
||||||
|
params: [0, {commitment: 'recent'}],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
error: null,
|
||||||
|
result: 50,
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
|
||||||
|
const minimumAmount = await connection.getMinimumBalanceForRentExemption(
|
||||||
|
0,
|
||||||
|
'recent',
|
||||||
|
);
|
||||||
|
|
||||||
mockRpc.push([
|
mockRpc.push([
|
||||||
url,
|
url,
|
||||||
{
|
{
|
||||||
method: 'requestAirdrop',
|
method: 'requestAirdrop',
|
||||||
params: [
|
params: [
|
||||||
accountFrom.publicKey.toBase58(),
|
accountFrom.publicKey.toBase58(),
|
||||||
100010,
|
minimumAmount + 100010,
|
||||||
{commitment: 'recent'},
|
{commitment: 'recent'},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@ -671,18 +730,27 @@ test('transaction', async () => {
|
|||||||
context: {
|
context: {
|
||||||
slot: 11,
|
slot: 11,
|
||||||
},
|
},
|
||||||
value: 100010,
|
value: minimumAmount + 100010,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
await connection.requestAirdrop(accountFrom.publicKey, 100010);
|
await connection.requestAirdrop(
|
||||||
expect(await connection.getBalance(accountFrom.publicKey)).toBe(100010);
|
accountFrom.publicKey,
|
||||||
|
minimumAmount + 100010,
|
||||||
|
);
|
||||||
|
expect(await connection.getBalance(accountFrom.publicKey)).toBe(
|
||||||
|
minimumAmount + 100010,
|
||||||
|
);
|
||||||
|
|
||||||
mockRpc.push([
|
mockRpc.push([
|
||||||
url,
|
url,
|
||||||
{
|
{
|
||||||
method: 'requestAirdrop',
|
method: 'requestAirdrop',
|
||||||
params: [accountTo.publicKey.toBase58(), 21, {commitment: 'recent'}],
|
params: [
|
||||||
|
accountTo.publicKey.toBase58(),
|
||||||
|
minimumAmount + 21,
|
||||||
|
{commitment: 'recent'},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
error: null,
|
error: null,
|
||||||
@ -702,12 +770,14 @@ test('transaction', async () => {
|
|||||||
context: {
|
context: {
|
||||||
slot: 11,
|
slot: 11,
|
||||||
},
|
},
|
||||||
value: 21,
|
value: minimumAmount + 21,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
await connection.requestAirdrop(accountTo.publicKey, 21);
|
await connection.requestAirdrop(accountTo.publicKey, minimumAmount + 21);
|
||||||
expect(await connection.getBalance(accountTo.publicKey)).toBe(21);
|
expect(await connection.getBalance(accountTo.publicKey)).toBe(
|
||||||
|
minimumAmount + 21,
|
||||||
|
);
|
||||||
|
|
||||||
mockGetRecentBlockhash('recent');
|
mockGetRecentBlockhash('recent');
|
||||||
mockRpc.push([
|
mockRpc.push([
|
||||||
@ -790,7 +860,7 @@ test('transaction', async () => {
|
|||||||
context: {
|
context: {
|
||||||
slot: 11,
|
slot: 11,
|
||||||
},
|
},
|
||||||
value: 2,
|
value: minimumAmount + 2,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
@ -798,7 +868,7 @@ test('transaction', async () => {
|
|||||||
// accountFrom may have less than 100000 due to transaction fees
|
// accountFrom may have less than 100000 due to transaction fees
|
||||||
const balance = await connection.getBalance(accountFrom.publicKey);
|
const balance = await connection.getBalance(accountFrom.publicKey);
|
||||||
expect(balance).toBeGreaterThan(0);
|
expect(balance).toBeGreaterThan(0);
|
||||||
expect(balance).toBeLessThanOrEqual(100000);
|
expect(balance).toBeLessThanOrEqual(minimumAmount + 100000);
|
||||||
|
|
||||||
mockRpc.push([
|
mockRpc.push([
|
||||||
url,
|
url,
|
||||||
@ -812,11 +882,13 @@ test('transaction', async () => {
|
|||||||
context: {
|
context: {
|
||||||
slot: 11,
|
slot: 11,
|
||||||
},
|
},
|
||||||
value: 31,
|
value: minimumAmount + 31,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
expect(await connection.getBalance(accountTo.publicKey)).toBe(31);
|
expect(await connection.getBalance(accountTo.publicKey)).toBe(
|
||||||
|
minimumAmount + 31,
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('multi-instruction transaction', async () => {
|
test('multi-instruction transaction', async () => {
|
||||||
@ -834,8 +906,15 @@ test('multi-instruction transaction', async () => {
|
|||||||
LAMPORTS_PER_SOL,
|
LAMPORTS_PER_SOL,
|
||||||
);
|
);
|
||||||
|
|
||||||
await connection.requestAirdrop(accountTo.publicKey, 21);
|
const minimumAmount = await connection.getMinimumBalanceForRentExemption(
|
||||||
expect(await connection.getBalance(accountTo.publicKey)).toBe(21);
|
0,
|
||||||
|
'recent',
|
||||||
|
);
|
||||||
|
|
||||||
|
await connection.requestAirdrop(accountTo.publicKey, minimumAmount + 21);
|
||||||
|
expect(await connection.getBalance(accountTo.publicKey)).toBe(
|
||||||
|
minimumAmount + 21,
|
||||||
|
);
|
||||||
|
|
||||||
// 1. Move(accountFrom, accountTo)
|
// 1. Move(accountFrom, accountTo)
|
||||||
// 2. Move(accountTo, accountFrom)
|
// 2. Move(accountTo, accountFrom)
|
||||||
@ -871,7 +950,9 @@ test('multi-instruction transaction', async () => {
|
|||||||
await connection.getBalance(accountFrom.publicKey),
|
await connection.getBalance(accountFrom.publicKey),
|
||||||
).toBeLessThanOrEqual(LAMPORTS_PER_SOL);
|
).toBeLessThanOrEqual(LAMPORTS_PER_SOL);
|
||||||
|
|
||||||
expect(await connection.getBalance(accountTo.publicKey)).toBe(21);
|
expect(await connection.getBalance(accountTo.publicKey)).toBe(
|
||||||
|
minimumAmount + 21,
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('account change notification', async () => {
|
test('account change notification', async () => {
|
||||||
|
@ -16,6 +16,23 @@ test('transaction-payer', async () => {
|
|||||||
const accountTo = new Account();
|
const accountTo = new Account();
|
||||||
const connection = new Connection(url, 'recent');
|
const connection = new Connection(url, 'recent');
|
||||||
|
|
||||||
|
mockRpc.push([
|
||||||
|
url,
|
||||||
|
{
|
||||||
|
method: 'getMinimumBalanceForRentExemption',
|
||||||
|
params: [0, {commitment: 'recent'}],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
error: null,
|
||||||
|
result: 50,
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
|
||||||
|
const minimumAmount = await connection.getMinimumBalanceForRentExemption(
|
||||||
|
0,
|
||||||
|
'recent',
|
||||||
|
);
|
||||||
|
|
||||||
mockRpc.push([
|
mockRpc.push([
|
||||||
url,
|
url,
|
||||||
{
|
{
|
||||||
@ -38,7 +55,11 @@ test('transaction-payer', async () => {
|
|||||||
url,
|
url,
|
||||||
{
|
{
|
||||||
method: 'requestAirdrop',
|
method: 'requestAirdrop',
|
||||||
params: [accountFrom.publicKey.toBase58(), 12, {commitment: 'recent'}],
|
params: [
|
||||||
|
accountFrom.publicKey.toBase58(),
|
||||||
|
minimumAmount + 12,
|
||||||
|
{commitment: 'recent'},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
error: null,
|
error: null,
|
||||||
@ -46,13 +67,17 @@ test('transaction-payer', async () => {
|
|||||||
'0WE5w4B7v59x6qjyC4FbG2FEKYKQfvsJwqSxNVmtMjT8TQ31hsZieDHcSgqzxiAoTL56n2w5TncjqEKjLhtF4Vk',
|
'0WE5w4B7v59x6qjyC4FbG2FEKYKQfvsJwqSxNVmtMjT8TQ31hsZieDHcSgqzxiAoTL56n2w5TncjqEKjLhtF4Vk',
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
await connection.requestAirdrop(accountFrom.publicKey, 12);
|
await connection.requestAirdrop(accountFrom.publicKey, minimumAmount + 12);
|
||||||
|
|
||||||
mockRpc.push([
|
mockRpc.push([
|
||||||
url,
|
url,
|
||||||
{
|
{
|
||||||
method: 'requestAirdrop',
|
method: 'requestAirdrop',
|
||||||
params: [accountTo.publicKey.toBase58(), 21, {commitment: 'recent'}],
|
params: [
|
||||||
|
accountTo.publicKey.toBase58(),
|
||||||
|
minimumAmount + 21,
|
||||||
|
{commitment: 'recent'},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
error: null,
|
error: null,
|
||||||
@ -60,7 +85,7 @@ test('transaction-payer', async () => {
|
|||||||
'8WE5w4B7v59x6qjyC4FbG2FEKYKQfvsJwqSxNVmtMjT8TQ31hsZieDHcSgqzxiAoTL56n2w5TncjqEKjLhtF4Vk',
|
'8WE5w4B7v59x6qjyC4FbG2FEKYKQfvsJwqSxNVmtMjT8TQ31hsZieDHcSgqzxiAoTL56n2w5TncjqEKjLhtF4Vk',
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
await connection.requestAirdrop(accountTo.publicKey, 21);
|
await connection.requestAirdrop(accountTo.publicKey, minimumAmount + 21);
|
||||||
|
|
||||||
mockGetRecentBlockhash('recent');
|
mockGetRecentBlockhash('recent');
|
||||||
mockRpc.push([
|
mockRpc.push([
|
||||||
@ -148,12 +173,12 @@ test('transaction-payer', async () => {
|
|||||||
context: {
|
context: {
|
||||||
slot: 11,
|
slot: 11,
|
||||||
},
|
},
|
||||||
value: 99,
|
value: LAMPORTS_PER_SOL - 1,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// accountPayer could be less than 100 as it paid for the transaction
|
// accountPayer should be less than LAMPORTS_PER_SOL as it paid for the transaction
|
||||||
// (exact amount less depends on the current cluster fees)
|
// (exact amount less depends on the current cluster fees)
|
||||||
const balance = await connection.getBalance(accountPayer.publicKey);
|
const balance = await connection.getBalance(accountPayer.publicKey);
|
||||||
expect(balance).toBeGreaterThan(0);
|
expect(balance).toBeGreaterThan(0);
|
||||||
@ -172,9 +197,11 @@ test('transaction-payer', async () => {
|
|||||||
context: {
|
context: {
|
||||||
slot: 11,
|
slot: 11,
|
||||||
},
|
},
|
||||||
value: 2,
|
value: minimumAmount + 2,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
expect(await connection.getBalance(accountFrom.publicKey)).toBe(2);
|
expect(await connection.getBalance(accountFrom.publicKey)).toBe(
|
||||||
|
minimumAmount + 2,
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user