UNPKG

create-ima-app

Version:

Create a IMA.js App easily.

52 lines (41 loc) 1.32 kB
/** * @jest-environment node */ import { initImaApp, clearImaApp } from '@ima/plugin-testing-integration'; import cards from '../../../public/cards.json'; describe('Home page', () => { const response = { body: cards, }; let app; let http; beforeEach(async () => { app = await initImaApp({ initBindApp: (ns, oc) => { http = oc.get('$Http'); // Mock http.get method so the application // wont make any external requests // and return mocked response http.get = jest.fn().mockReturnValue(Promise.resolve(response)); }, }); await app.oc.get('$Router').route('/'); }); afterEach(() => { clearImaApp(app); }); it('can render component', () => { expect(document.querySelectorAll('.cards')).toHaveLength(1); expect(document.querySelectorAll('.card')).toHaveLength(cards.length); const paragraphElements = document.querySelectorAll('.card p'); const titleElements = document.querySelectorAll('.card h3'); for (let i = 0; i < cards.length; i++) { const paragraphText = paragraphElements[i].innerHTML.replace( /href=".*"/, 'href="{link}"' ); expect(titleElements[i].textContent).toContain(cards[i].title); expect(paragraphText).toContain(cards[i].content); } }); });