@reown/appkit-scaffold-ui
Version:
#### 🔗 [Website](https://reown.com/appkit)
90 lines • 4.18 kB
JavaScript
import { fixture } from '@open-wc/testing';
import { describe, expect, test, vi } from 'vitest';
import { html } from 'lit';
import { ChainController, CoreHelperUtil, RouterController } from '@reown/appkit-controllers';
import { HelpersUtil } from '../utils/HelpersUtil';
const WALLET = {
id: 'metamask',
name: 'MetaMask'
};
describe('W3mConnectingWcView - Render', () => {
test('should render walletConnect widget if no wallet is given', async () => {
const element = await fixture(html `<w3m-connecting-wc-view></w3m-connecting-wc-view>`);
expect(HelpersUtil.querySelect(element, 'w3m-connecting-wc-qrcode')).not.toBeNull();
});
test('should render web and browser platforms', async () => {
vi.spyOn(CoreHelperUtil, 'isMobile').mockReturnValue(false);
vi.spyOn(RouterController, 'state', 'get').mockReturnValue({
...RouterController.state,
data: {
wallet: {
...WALLET,
rdns: 'metamask.io',
webapp_link: 'https://metamask.io'
}
}
});
const element = await fixture(html `<w3m-connecting-wc-view></w3m-connecting-wc-view>`);
const w3mConnectingHeader = HelpersUtil.querySelect(element, 'w3m-connecting-header');
expect(w3mConnectingHeader).not.toBeNull();
const wuiTabs = HelpersUtil.querySelect(w3mConnectingHeader, 'wui-tabs');
expect(wuiTabs).not.toBeNull();
const tabsProperty = wuiTabs.tabs;
expect(tabsProperty).toStrictEqual([
{ label: 'Webapp', icon: 'browser', platform: 'web' },
{ label: 'Browser', icon: 'extension', platform: 'unsupported' }
]);
});
test('should render mobile and browser platforms', async () => {
vi.spyOn(CoreHelperUtil, 'isMobile').mockReturnValue(true);
vi.spyOn(RouterController, 'state', 'get').mockReturnValue({
...RouterController.state,
data: {
wallet: {
...WALLET,
webapp_link: 'https://metamask.io',
mobile_link: 'https://metamask.io'
}
}
});
const element = await fixture(html `<w3m-connecting-wc-view></w3m-connecting-wc-view>`);
const w3mConnectingHeader = HelpersUtil.querySelect(element, 'w3m-connecting-header');
expect(w3mConnectingHeader).not.toBeNull();
const wuiTabs = HelpersUtil.querySelect(w3mConnectingHeader, 'wui-tabs');
expect(wuiTabs).not.toBeNull();
const tabsProperty = wuiTabs.tabs;
expect(tabsProperty).toStrictEqual([
{ label: 'Mobile', icon: 'mobile', platform: 'mobile' },
{ label: 'Webapp', icon: 'browser', platform: 'web' }
]);
});
test('should not render browser platforms when noAdapters is true', async () => {
vi.spyOn(CoreHelperUtil, 'isMobile').mockReturnValue(false);
vi.spyOn(ChainController, 'state', 'get').mockReturnValue({
...ChainController.state,
noAdapters: true
});
vi.spyOn(RouterController, 'state', 'get').mockReturnValue({
...RouterController.state,
data: {
wallet: {
...WALLET,
rdns: 'metamask.io',
webapp_link: 'https://metamask.io',
mobile_link: 'https://metamask.io'
}
}
});
const element = await fixture(html `<w3m-connecting-wc-view></w3m-connecting-wc-view>`);
const w3mConnectingHeader = HelpersUtil.querySelect(element, 'w3m-connecting-header');
expect(w3mConnectingHeader).not.toBeNull();
const wuiTabs = HelpersUtil.querySelect(w3mConnectingHeader, 'wui-tabs');
expect(wuiTabs).not.toBeNull();
const tabsProperty = wuiTabs.tabs;
expect(tabsProperty).toStrictEqual([
{ label: 'Mobile', icon: 'mobile', platform: 'qrcode' },
{ label: 'Webapp', icon: 'browser', platform: 'web' }
]);
});
});
//# sourceMappingURL=w3m-connecting-wc-view.test.js.map