@enjin-io/snap
Version:
MetaMask snap for interacting with Enjin dApps
69 lines (58 loc) • 2.46 kB
text/typescript
import chai, { expect } from 'chai';
import sinonChai from 'sinon-chai';
import type { SnapConfig } from '@enjin-io/metamask-enjin-types';
import { getConfiguration, getDefaultConfiguration } from '../../../src/configuration';
import {
defaultConfiguration,
enjinMatrixConfiguration,
canaryRelayConfiguration
} from '../../../src/configuration/predefined';
import { EmptyMetamaskState } from '../../../src/interfaces';
import type { WalletMock } from '../wallet.mock';
import { getWalletMock } from '../wallet.mock';
chai.use(sinonChai);
describe('Test configuration functions', function () {
describe('getDefaultConfiguration', function () {
it('should return kusama configuration on "kusama"', function () {
const configuration = getDefaultConfiguration('kusama');
expect(configuration).to.be.deep.eq(enjinMatrixConfiguration);
});
it('should return westend configuration on "westend"', function () {
const configuration = getDefaultConfiguration('westend');
expect(configuration).to.be.deep.eq(canaryRelayConfiguration);
});
it('should return default configuration on empty string', function () {
const configuration = getDefaultConfiguration('');
expect(configuration).to.be.deep.eq(defaultConfiguration);
});
it('should return default configuration on non network name string', function () {
const configuration = getDefaultConfiguration('test');
expect(configuration).to.be.deep.eq(defaultConfiguration);
});
});
describe('getConfiguration', function () {
let walletStub: WalletMock;
before(function () {
walletStub = getWalletMock();
});
afterEach(function () {
walletStub.reset();
});
it('should return configuration saved in state"', async function () {
const customConfiguration: SnapConfig = {
addressPrefix: 5,
networkName: 'enjin-relaychain',
wsRpcUrl: 'url',
genesisHash: '0xhash',
};
walletStub.request.returns({ config: JSON.stringify(customConfiguration) });
const configuration = await getConfiguration();
expect(configuration).to.be.deep.eq(customConfiguration);
});
it('should return default configuration on empty state"', async function () {
walletStub.request.returns(EmptyMetamaskState());
const configuration = await getConfiguration();
expect(configuration).to.be.deep.eq(defaultConfiguration);
});
});
});