From 988327032d6b76fdb70075feb7254bcb053ec117 Mon Sep 17 00:00:00 2001
From: Johann-S <johann.servoire@gmail.com>
Date: Wed, 25 Oct 2017 09:32:21 +0200
Subject: [PATCH] Add unit tests for util.js

---
 js/tests/index.html   |  1 +
 js/tests/unit/util.js | 57 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 58 insertions(+)
 create mode 100644 js/tests/unit/util.js

diff --git a/js/tests/index.html b/js/tests/index.html
index 2383fce6e6..0385b8a2ba 100644
--- a/js/tests/index.html
+++ b/js/tests/index.html
@@ -119,6 +119,7 @@
     <script src="unit/tab.js"></script>
     <script src="unit/tooltip.js"></script>
     <script src="unit/popover.js"></script>
+    <script src="unit/util.js"></script>
   </head>
   <body>
     <div id="qunit-container">
diff --git a/js/tests/unit/util.js b/js/tests/unit/util.js
new file mode 100644
index 0000000000..372c6e3f71
--- /dev/null
+++ b/js/tests/unit/util.js
@@ -0,0 +1,57 @@
+$(function () {
+  'use strict'
+
+  QUnit.module('util')
+
+  QUnit.test('Util.getSelectorFromElement should return the correct element', function (assert) {
+    assert.expect(2)
+    var $el = $('<div data-target="body"></div>').appendTo($('#qunit-fixture'))
+    assert.strictEqual(Util.getSelectorFromElement($el[0]), 'body')
+
+    // not found element
+    var $el2 = $('<div data-target="#fakeDiv"></div>').appendTo($('#qunit-fixture'))
+    assert.strictEqual(Util.getSelectorFromElement($el2[0]), null)
+  })
+
+  QUnit.test('Util.typeCheckConfig should thrown an error when a bad config is passed', function (assert) {
+    assert.expect(1)
+    var namePlugin = 'collapse'
+    var defaultType = {
+      toggle : 'boolean',
+      parent : '(string|element)'
+    }
+    var config = {
+      toggle: true,
+      parent: 777
+    }
+
+    try {
+      Util.typeCheckConfig(namePlugin, config, defaultType)
+    } catch (e) {
+      assert.strictEqual(e.message, 'COLLAPSE: Option "parent" provided type "number" but expected type "(string|element)".')
+    }
+  })
+
+  QUnit.test('Util.isElement should check if we passed an element or not', function (assert) {
+    assert.expect(3)
+    var $div = $('<div id="test"></div>').appendTo($('#qunit-fixture'))
+
+    assert.strictEqual(Util.isElement($div), 1)
+    assert.strictEqual(Util.isElement($div[0]), 1)
+    assert.strictEqual(typeof Util.isElement({}) === 'undefined', true)
+  })
+
+  QUnit.test('Util.getUID should generate a new id uniq', function (assert) {
+    assert.expect(2)
+    var id = Util.getUID('test')
+    var id2 = Util.getUID('test')
+
+    assert.ok(id !== id2, id + ' !== ' + id2)
+
+    id = Util.getUID('test')
+    $('<div id="' + id + '"></div>').appendTo($('#qunit-fixture'))
+
+    id2 = Util.getUID('test')
+    assert.ok(id !== id2, id + ' !== ' + id2)
+  })
+})
-- 
GitLab