From 516b35f2fdd9ba19ee2b6a4c3d2adb03fbd590dd Mon Sep 17 00:00:00 2001 From: Luna D Date: Thu, 15 Dec 2022 23:42:55 +0100 Subject: [PATCH] added spec coverage for disableEl/enableEl --- assets/js/utils/__tests__/dom.spec.ts | 70 +++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/assets/js/utils/__tests__/dom.spec.ts b/assets/js/utils/__tests__/dom.spec.ts index d0c65098..a12d6e1f 100644 --- a/assets/js/utils/__tests__/dom.spec.ts +++ b/assets/js/utils/__tests__/dom.spec.ts @@ -12,6 +12,8 @@ import { toggleEl, whenReady, findFirstTextNode, + disableEl, + enableEl, } from '../dom'; import { getRandomArrayItem, getRandomIntBetween } from '../../../test/randomness'; import { fireEvent } from '@testing-library/dom'; @@ -149,6 +151,74 @@ describe('DOM Utilities', () => { }); }); + describe('disableEl', () => { + it('should set the disabled attribute to true', () => { + const mockElement = document.createElement('button'); + disableEl(mockElement); + expect(mockElement).toBeDisabled(); + }); + + it('should set the disabled attribute to true on all provided elements', () => { + const mockElements = [ + document.createElement('input'), + document.createElement('button'), + ]; + disableEl(mockElements); + expect(mockElements[0]).toBeDisabled(); + expect(mockElements[1]).toBeDisabled(); + }); + + it('should set the disabled attribute to true on elements provided in multiple arrays', () => { + const mockElements1 = [ + document.createElement('input'), + document.createElement('button'), + ]; + const mockElements2 = [ + document.createElement('textarea'), + document.createElement('button'), + ]; + disableEl(mockElements1, mockElements2); + expect(mockElements1[0]).toBeDisabled(); + expect(mockElements1[1]).toBeDisabled(); + expect(mockElements2[0]).toBeDisabled(); + expect(mockElements2[1]).toBeDisabled(); + }); + }); + + describe('enableEl', () => { + it('should set the disabled attribute to false', () => { + const mockElement = document.createElement('button'); + enableEl(mockElement); + expect(mockElement).toBeEnabled(); + }); + + it('should set the disabled attribute to false on all provided elements', () => { + const mockElements = [ + document.createElement('input'), + document.createElement('button'), + ]; + enableEl(mockElements); + expect(mockElements[0]).toBeEnabled(); + expect(mockElements[1]).toBeEnabled(); + }); + + it('should set the disabled attribute to false on elements provided in multiple arrays', () => { + const mockElements1 = [ + document.createElement('input'), + document.createElement('button'), + ]; + const mockElements2 = [ + document.createElement('textarea'), + document.createElement('button'), + ]; + enableEl(mockElements1, mockElements2); + expect(mockElements1[0]).toBeEnabled(); + expect(mockElements1[1]).toBeEnabled(); + expect(mockElements2[0]).toBeEnabled(); + expect(mockElements2[1]).toBeEnabled(); + }); + }); + describe('toggleEl', () => { it(`should toggle the ${hiddenClass} class on the provided element`, () => { const mockVisibleElement = document.createElement('div');