diff options
Diffstat (limited to 'js/tests/helpers/fixture.js')
-rw-r--r-- | js/tests/helpers/fixture.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/js/tests/helpers/fixture.js b/js/tests/helpers/fixture.js new file mode 100644 index 0000000..5ad14e1 --- /dev/null +++ b/js/tests/helpers/fixture.js @@ -0,0 +1,47 @@ +const fixtureId = 'fixture' + +export const getFixture = () => { + let fixtureElement = document.getElementById(fixtureId) + + if (!fixtureElement) { + fixtureElement = document.createElement('div') + fixtureElement.setAttribute('id', fixtureId) + fixtureElement.style.position = 'absolute' + fixtureElement.style.top = '-10000px' + fixtureElement.style.left = '-10000px' + fixtureElement.style.width = '10000px' + fixtureElement.style.height = '10000px' + document.body.append(fixtureElement) + } + + return fixtureElement +} + +export const clearFixture = () => { + const fixtureElement = getFixture() + + fixtureElement.innerHTML = '' +} + +export const createEvent = (eventName, parameters = {}) => { + return new Event(eventName, parameters) +} + +export const jQueryMock = { + elements: undefined, + fn: {}, + each(fn) { + for (const element of this.elements) { + fn.call(element) + } + } +} + +export const clearBodyAndDocument = () => { + const attributes = ['data-bs-padding-right', 'style'] + + for (const attribute of attributes) { + document.documentElement.removeAttribute(attribute) + document.body.removeAttribute(attribute) + } +} |