UNPKG

bootstrap-vue

Version:

Quickly integrate Bootstrap 4 components with Vue.js

63 lines (49 loc) 2.11 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: { $refs, $el } } = window; expect($refs.default_alert).toHaveClass('alert alert-info'); expect($refs.success_alert).toHaveClass('alert alert-success'); }); it('show prop', async () => { const { app: { $refs, $el } } = window; // Default is hidden expect($el.textContent).not.toContain('Dismissible Alert!'); // Make visible by changing visible state await setData(app, 'showDismissibleAlert', true); expect($el.textContent).toContain('Dismissible Alert!'); }); it('dismiss button', async () => { const { app: { $refs, $el } } = window; const alert = $refs.success_alert; expect(alert).toHaveClass('alert-dismissible'); const closeBtn = alert.$el.querySelector('.close'); expect(closeBtn).not.toBeNull(); closeBtn.click(); await nextTick(); expect($el.textContent).not.toContain('Success Alert'); }); it('emits dismiss-count-down event', async () => { const { app: { $refs, $el } } = window; const alert = $refs.counter_alert; const spy = jest.fn() // Default is hidden expect($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($el.textContent).toContain('This alert will dismiss after'); expect(spy.mock.calls.length).toBe(dismissTime + 1); }); });