@enjin-io/snap
Version:
MetaMask snap for interacting with Enjin dApps
33 lines (28 loc) • 1.29 kB
text/typescript
import chai, { expect } from 'chai';
import sinonChai from 'sinon-chai';
import { getBalances } from '../../../../src/rpc/substrate/getBalances';
import { ApiPromise } from '@polkadot/api/';
import { AccountInfo } from '@polkadot/types/interfaces/system';
import sinon from 'sinon';
import { testAddress, testAppKey } from '../keyPairTestConstants';
import { EmptyMetamaskState } from '../../../../src/interfaces';
import { getWalletMock } from '../../wallet.mock';
chai.use(sinonChai);
describe('Test rpc handler function: getBalance', function () {
const walletStub = getWalletMock();
afterEach(function () {
walletStub.reset();
});
it('should return balance on saved keyring in state', async function () {
// wallet stub
walletStub.request.onFirstCall().returns(EmptyMetamaskState());
walletStub.request.onSecondCall().returns({ privateKey: testAppKey });
// api stub
const apiStub = { query: { system: { account: sinon.stub() } } };
apiStub.query.system.account.returns({ data: { free: '0' } } as unknown as AccountInfo);
const api = apiStub as unknown as ApiPromise;
const result = await getBalances(api);
expect(result).to.be.eq('0');
expect(apiStub.query.system.account).to.have.been.calledOnceWith(testAddress);
});
});