From 747f0f4c7b01a3900c163bb9b11715fa2380faea Mon Sep 17 00:00:00 2001 From: Johann-S Date: Wed, 27 Mar 2019 09:47:57 +0100 Subject: [PATCH] test jquery interface for our alert plugin --- js/src/alert/alert.spec.js | 48 +++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/js/src/alert/alert.spec.js b/js/src/alert/alert.spec.js index cb7b57b7f3..5cf314d222 100644 --- a/js/src/alert/alert.spec.js +++ b/js/src/alert/alert.spec.js @@ -2,7 +2,7 @@ import Alert from './alert' import { makeArray, getTransitionDurationFromElement } from '../util/index' /** Test helpers */ -import { getFixture, clearFixture } from '../../tests/helpers/fixture' +import { getFixture, clearFixture, jQueryMock } from '../../tests/helpers/fixture' describe('Alert', () => { let fixtureEl @@ -124,4 +124,50 @@ describe('Alert', () => { expect(Alert._getInstance(alertEl)).toBeNull() }) }) + + describe('_jQueryInterface', () => { + it('should handle config passed and toggle existing alert', () => { + fixtureEl.innerHTML = '
' + + const alertEl = fixtureEl.querySelector('.alert') + const alert = new Alert(alertEl) + + spyOn(alert, 'close') + + jQueryMock.fn.alert = Alert._jQueryInterface + jQueryMock.elements = [alertEl] + + jQueryMock.fn.alert.call(jQueryMock, 'close') + + expect(alert.close).toHaveBeenCalled() + }) + + it('should create new alert instance and call close', () => { + fixtureEl.innerHTML = '
' + + const alertEl = fixtureEl.querySelector('.alert') + + jQueryMock.fn.alert = Alert._jQueryInterface + jQueryMock.elements = [alertEl] + + jQueryMock.fn.alert.call(jQueryMock, 'close') + + expect(Alert._getInstance(alertEl)).toBeDefined() + expect(fixtureEl.querySelector('.alert')).toBeNull() + }) + + it('should just create an alert instance without calling close', () => { + fixtureEl.innerHTML = '
' + + const alertEl = fixtureEl.querySelector('.alert') + + jQueryMock.fn.alert = Alert._jQueryInterface + jQueryMock.elements = [alertEl] + + jQueryMock.fn.alert.call(jQueryMock) + + expect(Alert._getInstance(alertEl)).toBeDefined() + expect(fixtureEl.querySelector('.alert')).not.toBeNull() + }) + }) })