UNPKG

bootstrap-vue

Version:

Quickly integrate Bootstrap 4 components with Vue.js

63 lines (49 loc) 1.89 kB
import { loadFixture, testVM, nextTick, setData } from '../../../tests/utils' describe('alert', async () => { jest.useFakeTimers() beforeEach(loadFixture(__dirname, 'alert')) testVM() it('check class names', async () => { const { app } = window expect(app.$refs.default_alert).toHaveClass('alert alert-info') expect(app.$refs.success_alert).toHaveClass('alert alert-success') }) it('show prop', async () => { const { app } = window // Default is hidden expect(app.$el.textContent).not.toContain('Dismissible Alert!') // Make visible by changing visible state await setData(app, 'showDismissibleAlert', true) expect(app.$el.textContent).toContain('Dismissible Alert!') }) it('dismiss button', async () => { const { app } = window const alert = app.$refs.success_alert expect(alert).toHaveClass('alert-dismissible') const closeBtn = alert.$el.querySelector('.close') expect(closeBtn).not.toBeNull() closeBtn.click() await nextTick() expect(app.$el.textContent).not.toContain('Success Alert') }) it('emits dismiss-count-down event', async () => { const { app } = window const alert = app.$refs.counter_alert const spy = jest.fn() // Default is hidden expect(app.$el.textContent).not.toContain('This alert will dismiss after') // Make visible by changing visible state const dismissTime = 5 alert.$on('dismiss-count-down', spy) await setData(app, 'dismissCountDown', dismissTime) // await nextTick(); expect(spy).not.toBeCalled() jest.runTimersToTime(1000) // Emits a dismiss-count-down` event expect(spy).toHaveBeenCalledWith(dismissTime - 1) // await nextTick(); jest.runAllTimers() expect(app.$el.textContent).toContain('This alert will dismiss after') expect(spy.mock.calls.length).toBe(dismissTime + 1) }) })