aboutsummaryrefslogtreecommitdiff
path: root/js/tests/unit/dom/data.spec.js
diff options
context:
space:
mode:
authorXhmikosR <[email protected]>2019-10-09 01:27:43 +0300
committerGitHub <[email protected]>2019-10-09 01:27:43 +0300
commit577bf8b14d76a864a8d69dbfb03b757fbeb6e241 (patch)
tree354238ff0aaca853a9698c191eeb4c2143c39c16 /js/tests/unit/dom/data.spec.js
parent1770691b339bdbf17de5e8824158b358dc0284a9 (diff)
downloadbootstrap-577bf8b14d76a864a8d69dbfb03b757fbeb6e241.tar.xz
bootstrap-577bf8b14d76a864a8d69dbfb03b757fbeb6e241.zip
Rename "js/tests/units" to "js/tests/unit". (#29503)
Diffstat (limited to 'js/tests/unit/dom/data.spec.js')
-rw-r--r--js/tests/unit/dom/data.spec.js131
1 files changed, 131 insertions, 0 deletions
diff --git a/js/tests/unit/dom/data.spec.js b/js/tests/unit/dom/data.spec.js
new file mode 100644
index 000000000..ab3240b9b
--- /dev/null
+++ b/js/tests/unit/dom/data.spec.js
@@ -0,0 +1,131 @@
+import Data from '../../../src/dom/data'
+
+/** Test helpers */
+import { getFixture, clearFixture } from '../../helpers/fixture'
+
+describe('Data', () => {
+ let fixtureEl
+
+ beforeAll(() => {
+ fixtureEl = getFixture()
+ })
+
+ afterEach(() => {
+ clearFixture()
+ })
+
+ describe('setData', () => {
+ it('should set data in an element by adding a key attribute', () => {
+ fixtureEl.innerHTML = '<div></div>'
+
+ const div = fixtureEl.querySelector('div')
+ const data = {
+ test: 'bsData'
+ }
+
+ Data.setData(div, 'test', data)
+ expect(div.key).toBeDefined()
+ })
+
+ it('should change data if something is already stored', () => {
+ fixtureEl.innerHTML = '<div></div>'
+
+ const div = fixtureEl.querySelector('div')
+ const data = {
+ test: 'bsData'
+ }
+
+ Data.setData(div, 'test', data)
+
+ data.test = 'bsData2'
+ Data.setData(div, 'test', data)
+
+ expect(div.key).toBeDefined()
+ })
+ })
+
+ describe('getData', () => {
+ it('should return stored data', () => {
+ fixtureEl.innerHTML = '<div></div>'
+
+ const div = fixtureEl.querySelector('div')
+ const data = {
+ test: 'bsData'
+ }
+
+ Data.setData(div, 'test', data)
+ expect(Data.getData(div, 'test')).toEqual(data)
+ })
+
+ it('should return null on undefined element', () => {
+ expect(Data.getData(null)).toEqual(null)
+ expect(Data.getData(undefined)).toEqual(null)
+ })
+
+ it('should return null when an element have nothing stored', () => {
+ fixtureEl.innerHTML = '<div></div>'
+
+ const div = fixtureEl.querySelector('div')
+
+ expect(Data.getData(div, 'test')).toEqual(null)
+ })
+
+ it('should return null when an element have nothing stored with the provided key', () => {
+ fixtureEl.innerHTML = '<div></div>'
+
+ const div = fixtureEl.querySelector('div')
+ const data = {
+ test: 'bsData'
+ }
+
+ Data.setData(div, 'test', data)
+
+ expect(Data.getData(div, 'test2')).toEqual(null)
+ })
+ })
+
+ describe('removeData', () => {
+ it('should do nothing when an element have nothing stored', () => {
+ fixtureEl.innerHTML = '<div></div>'
+
+ const div = fixtureEl.querySelector('div')
+
+ Data.removeData(div, 'test')
+ expect().nothing()
+ })
+
+ it('should should do nothing if it\'s not a valid key provided', () => {
+ fixtureEl.innerHTML = '<div></div>'
+
+ const div = fixtureEl.querySelector('div')
+ const data = {
+ test: 'bsData'
+ }
+
+ Data.setData(div, 'test', data)
+
+ expect(div.key).toBeDefined()
+
+ Data.removeData(div, 'test2')
+
+ expect(div.key).toBeDefined()
+ })
+
+ it('should remove data if something is stored', () => {
+ fixtureEl.innerHTML = '<div></div>'
+
+ const div = fixtureEl.querySelector('div')
+ const data = {
+ test: 'bsData'
+ }
+
+ Data.setData(div, 'test', data)
+
+ expect(div.key).toBeDefined()
+
+ Data.removeData(div, 'test')
+
+ expect(div.key).toBeUndefined()
+ })
+ })
+})