UNPKG

@enjin-io/snap

Version:

MetaMask snap for interacting with Enjin dApps

33 lines (28 loc) 1.29 kB
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); }); });