From 0b719e065c278d1d20f993bd2999dd108ac23682 Mon Sep 17 00:00:00 2001 From: Johann-S Date: Sat, 9 Jun 2018 18:23:13 +0200 Subject: [PATCH] fix(data): increase coverage for data --- js/src/dom/data.js | 3 +- js/tests/karma.conf.js | 18 ++++++-- js/tests/unit/.eslintrc.json | 1 + js/tests/unit/dom/data.js | 83 ++++++++++++++++++++++++++++++++++++ 4 files changed, 99 insertions(+), 6 deletions(-) create mode 100644 js/tests/unit/dom/data.js diff --git a/js/src/dom/data.js b/js/src/dom/data.js index 4cee65d2b8..838e13a1dd 100644 --- a/js/src/dom/data.js +++ b/js/src/dom/data.js @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0-beta): dom/data.js + * Bootstrap (v4.1.1): dom/data.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ @@ -12,7 +12,6 @@ const Data = (() => { * ------------------------------------------------------------------------ */ - const mapData = (() => { const storeData = {} let id = 1 diff --git a/js/tests/karma.conf.js b/js/tests/karma.conf.js index 326287bffa..f6570cdcb4 100644 --- a/js/tests/karma.conf.js +++ b/js/tests/karma.conf.js @@ -93,9 +93,16 @@ if (bundle) { reporters.push('BrowserStack') files = files.concat([ 'node_modules/jquery/dist/jquery.slim.min.js', - 'js/dist/util.js', - 'js/dist/tooltip.js', - 'js/dist/!(util|index|tooltip).js' // include all of our js/dist files except util.js, index.js and tooltip.js + 'js/coverage/dist/dom/eventHandler.js', + 'js/coverage/dist/dom/selectorEngine.js', + 'js/coverage/dist/dom/data.js', + 'js/coverage/dist/dom/manipulator.js', + 'js/coverage/dist/util.js', + 'js/coverage/dist/dom/*.js', + 'js/coverage/dist/tooltip.js', + 'js/coverage/dist/!(util|index|tooltip).js', // include all of our js/dist files except util.js, index.js and tooltip.js + 'js/tests/unit/*.js', + 'js/tests/unit/dom/*.js' ]) } else { frameworks.push('detectBrowsers') @@ -112,8 +119,11 @@ if (bundle) { 'js/coverage/dist/dom/data.js', 'js/coverage/dist/dom/manipulator.js', 'js/coverage/dist/util.js', + 'js/coverage/dist/dom/*.js', 'js/coverage/dist/tooltip.js', - 'js/coverage/dist/!(util|index|tooltip).js' // include all of our js/dist files except util.js, index.js and tooltip.js + 'js/coverage/dist/!(util|index|tooltip).js', // include all of our js/dist files except util.js, index.js and tooltip.js + 'js/tests/unit/*.js', + 'js/tests/unit/dom/*.js' ]) reporters.push('coverage-istanbul') conf.customLaunchers = customLaunchers diff --git a/js/tests/unit/.eslintrc.json b/js/tests/unit/.eslintrc.json index 726fc25c91..4010b98305 100644 --- a/js/tests/unit/.eslintrc.json +++ b/js/tests/unit/.eslintrc.json @@ -8,6 +8,7 @@ "bootstrap": false, "sinon": false, "Util": false, + "Data": false, "Alert": false, "Button": false, "Carousel": false, diff --git a/js/tests/unit/dom/data.js b/js/tests/unit/dom/data.js new file mode 100644 index 0000000000..63d25b292d --- /dev/null +++ b/js/tests/unit/dom/data.js @@ -0,0 +1,83 @@ +$(function () { + 'use strict' + + QUnit.module('data') + + QUnit.test('should be defined', function (assert) { + assert.expect(1) + assert.ok(Data, 'Data is defined') + }) + + QUnit.test('should set data in a element', function (assert) { + assert.expect(1) + + var $div = $('
').appendTo('#qunit-fixture') + var data = { + test: 'bsData' + } + Data.setData($div[0], 'test', data) + + assert.ok($div[0].key, 'element have a data key') + }) + + QUnit.test('should get data from an element', function (assert) { + assert.expect(1) + + var $div = $('
').appendTo('#qunit-fixture') + var data = { + test: 'bsData' + } + Data.setData($div[0], 'test', data) + + assert.strictEqual(Data.getData($div[0], 'test'), data) + }) + + QUnit.test('should return null if nothing is stored', function (assert) { + assert.expect(1) + assert.ok(Data.getData(document.body, 'test') === null) + }) + + QUnit.test('should return null if nothing is stored with an existing key', function (assert) { + assert.expect(1) + + var $div = $('
').appendTo('#qunit-fixture') + $div[0].key = { + key: 'test2', + data: 'woot woot' + } + + assert.ok(Data.getData($div[0], 'test') === null) + }) + + QUnit.test('should delete data', function (assert) { + assert.expect(2) + + var $div = $('
').appendTo('#qunit-fixture') + var data = { + test: 'bsData' + } + Data.setData($div[0], 'test', data) + assert.ok(Data.getData($div[0], 'test') !== null) + + Data.removeData($div[0], 'test') + assert.ok(Data.getData($div[0], 'test') === null) + }) + + QUnit.test('should delete nothing if there are nothing', function (assert) { + assert.expect(0) + + Data.removeData(document.body, 'test') + }) + + QUnit.test('should delete nothing if not the good key', function (assert) { + assert.expect(0) + + var $div = $('
').appendTo('#qunit-fixture') + $div[0].key = { + key: 'test2', + data: 'woot woot' + } + + Data.removeData($div[0], 'test') + }) +})