import { Env, makeEnv } from "../../src/ts/env"; import { MenuInfo, Store } from "../../src/ts/store"; import { Navbar, Props } from "../../src/ts/widgets/navbar"; import * as helpers from "../helpers"; //------------------------------------------------------------------------------ // Setup and helpers //------------------------------------------------------------------------------ let fixture: HTMLElement; let store: Store; let env: Env; let props: Props; let menuInfo: MenuInfo; let templates: string; beforeAll(async () => { templates = await helpers.loadTemplates(); }); beforeEach(() => { fixture = helpers.makeTestFixture(); store = helpers.makeTestStore(); env = makeEnv(store, templates); props = { inHome: false, app: null }; menuInfo = helpers.makeDemoMenuInfo(); }); afterEach(() => { fixture.remove(); }); //------------------------------------------------------------------------------ // Tests //------------------------------------------------------------------------------ test("can be rendered", async () => { const navbar = new Navbar(env, props); await navbar.mount(fixture); expect(fixture.innerHTML).toMatchSnapshot(); }); test("can render one menu item", async () => { props.app = menuInfo.menus[96]!; const navbar = new Navbar(env, props); await navbar.mount(fixture); expect(fixture.innerHTML).toMatchSnapshot(); }); test("mobile mode: navbar is different", async () => { props.app = menuInfo.menus[205]!; env.isMobile = true; const navbar = new Navbar(env, props); await navbar.mount(fixture); expect(fixture.innerHTML).toMatchSnapshot(); });