summaryrefslogtreecommitdiffstats
path: root/js/tests/helpers/fixture.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/tests/helpers/fixture.js')
-rw-r--r--js/tests/helpers/fixture.js47
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)
+ }
+}