solana/web3.js/test/system-program.test.js

94 lines
2.1 KiB
JavaScript
Raw Normal View History

2018-09-26 09:29:24 -07:00
// @flow
import {
Account,
BudgetProgram,
Connection,
SystemProgram,
Transaction,
} from '../src';
import {mockRpcEnabled} from './__mocks__/node-fetch';
import {url} from './url';
import {newAccountWithTokens} from './new-account-with-tokens';
2018-09-26 09:29:24 -07:00
test('createAccount', () => {
const from = new Account();
const newAccount = new Account();
let transaction;
transaction = SystemProgram.createAccount(
from.publicKey,
newAccount.publicKey,
123,
BudgetProgram.space,
BudgetProgram.programId,
);
expect(transaction.keys).toHaveLength(2);
expect(transaction.programId).toEqual(SystemProgram.programId);
// TODO: Validate transaction contents more
});
test('move', () => {
const from = new Account();
const to = new Account();
let transaction;
transaction = SystemProgram.move(
from.publicKey,
to.publicKey,
123,
);
expect(transaction.keys).toHaveLength(2);
expect(transaction.programId).toEqual(SystemProgram.programId);
// TODO: Validate transaction contents more
});
test('assign', () => {
const from = new Account();
const to = new Account();
let transaction;
transaction = SystemProgram.assign(
from.publicKey,
to.publicKey,
);
expect(transaction.keys).toHaveLength(1);
expect(transaction.programId).toEqual(SystemProgram.programId);
// TODO: Validate transaction contents more
});
test('unstable - load', async () => {
if (mockRpcEnabled) {
console.log('non-live test skipped');
return;
}
const connection = new Connection(url);
const from = await newAccountWithTokens(connection);
const noopProgramId = (new Account()).publicKey;
const loadTransaction = SystemProgram.load(
from.publicKey,
noopProgramId,
'noop',
);
let signature = await connection.sendTransaction(from, loadTransaction);
expect(connection.confirmTransaction(signature)).resolves.toBe(true);
const noopTransaction = new Transaction({
fee: 0,
keys: [from.publicKey],
programId: noopProgramId,
});
signature = await connection.sendTransaction(from, noopTransaction);
expect(connection.confirmTransaction(signature)).resolves.toBe(true);
});
2018-09-26 09:29:24 -07:00