@reown/appkit-scaffold-ui
Version:
The full stack toolkit to build onchain app UX.
51 lines • 2.21 kB
JavaScript
import { elementUpdated, fixture } from '@open-wc/testing';
import { beforeEach, describe, expect, it, vi } from 'vitest';
import { html } from 'lit';
import { RouterController } from '@reown/appkit-controllers';
import '../../src/modal/w3m-router';
describe('W3mRouter', () => {
beforeEach(() => {
vi.clearAllMocks();
global.ResizeObserver = vi.fn().mockImplementation(() => ({
observe: vi.fn(),
unobserve: vi.fn(),
disconnect: vi.fn()
}));
});
it('should render connect view by default', async () => {
vi.spyOn(RouterController, 'state', 'get').mockReturnValue({
...RouterController.state,
view: 'Connect',
history: ['Connect']
});
const el = await fixture(html `<w3m-router></w3m-router>`);
await elementUpdated(el);
const container = el.shadowRoot?.querySelector('w3m-router-container');
expect(container).toBeTruthy();
expect(container?.getAttribute('history')).toBe('Connect');
});
it('should render different views based on router state', async () => {
vi.spyOn(RouterController, 'state', 'get').mockReturnValue({
...RouterController.state,
view: 'Account',
history: ['Connect', 'Account']
});
const el = await fixture(html `<w3m-router></w3m-router>`);
await elementUpdated(el);
const container = el.shadowRoot?.querySelector('w3m-router-container');
expect(container?.getAttribute('history')).toBe('Connect,Account');
});
it('should render router container with history attribute', async () => {
vi.spyOn(RouterController, 'state', 'get').mockReturnValue({
...RouterController.state,
view: 'Account',
history: ['Connect', 'Account']
});
const el = await fixture(html `<w3m-router></w3m-router>`);
await elementUpdated(el);
const container = el.shadowRoot?.querySelector('w3m-router-container');
expect(container).toBeTruthy();
expect(container?.getAttribute('history')).toBe('Connect,Account');
});
});
//# sourceMappingURL=w3m-router.test.js.map