| import './index'; |
| |
| import { $, $$ } from 'common-sk/modules/dom'; |
| import fetchMock from 'fetch-mock'; |
| |
| import { singleDemoEntry, twoDemoEntries } from './test_data'; |
| import { |
| eventPromise, |
| setUpElementUnderTest, |
| } from '../../../infra-sk/modules/test_util'; |
| |
| describe('demo-list-sk', () => { |
| const newInstance = setUpElementUnderTest('demo-list-sk'); |
| fetchMock.config.overwriteRoutes = false; |
| |
| const loadDemolist = async (reply) => { |
| const event = eventPromise('load-complete'); |
| fetchMock.getOnce('/demo/metadata.json', reply); |
| const demolist = newInstance(); |
| await event; |
| return demolist; |
| }; |
| |
| afterEach(() => { |
| // Check all mock fetches called at least once and reset. |
| expect(fetchMock.done()).to.be.true; |
| fetchMock.reset(); |
| }); |
| |
| it('shows a single entry', async () => { |
| const demolist = await loadDemolist(singleDemoEntry); |
| expect($('th', demolist).length).to.equal(1); |
| expect($('td', demolist).length).to.equal(1); |
| }); |
| |
| it('shows a multiple entries', async () => { |
| const demolist = await loadDemolist(twoDemoEntries); |
| expect($('th', demolist).length).to.equal(1); |
| expect($('td', demolist).length).to.equal(2); |
| }); |
| it('shows repo revision', async () => { |
| const demolist = await loadDemolist(singleDemoEntry); |
| expect($$('th a', demolist).innerHTML).to.contain('123'); |
| expect($$('th a', demolist).href).to.contain('example.com'); |
| }); |
| }); |