| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- const {
- bindWelcomeButton,
- navigateToMiniProgramHome
- } = require('../../public/assets/html/welcome-page-navigation')
- describe('welcome page navigation', () => {
- test('relaunches the mini program home page', () => {
- const reLaunch = jest.fn()
- const started = navigateToMiniProgramHome({ reLaunch })
- expect(started).toBe(true)
- expect(reLaunch).toHaveBeenCalledWith(expect.objectContaining({
- url: '/pages/home'
- }))
- })
- test('reports a failure when the page is opened outside the mini program', () => {
- const onFailure = jest.fn()
- const started = navigateToMiniProgramHome(null, onFailure)
- expect(started).toBe(false)
- expect(onFailure).toHaveBeenCalledTimes(1)
- })
- test('prevents repeated taps while navigation is in progress', () => {
- const listeners = {}
- const button = {
- addEventListener: (event, listener) => { listeners[event] = listener },
- setAttribute: jest.fn(),
- removeAttribute: jest.fn()
- }
- const reLaunch = jest.fn()
- bindWelcomeButton(button, () => ({ reLaunch }))
- listeners.click({ preventDefault: jest.fn() })
- listeners.click({ preventDefault: jest.fn() })
- expect(reLaunch).toHaveBeenCalledTimes(1)
- expect(button.setAttribute).toHaveBeenCalledWith('aria-busy', 'true')
- })
- })
|