fixture.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. const fixtureId = 'fixture'
  2. export const getFixture = () => {
  3. let fixtureEl = document.getElementById(fixtureId)
  4. if (!fixtureEl) {
  5. fixtureEl = document.createElement('div')
  6. fixtureEl.setAttribute('id', fixtureId)
  7. fixtureEl.style.position = 'absolute'
  8. fixtureEl.style.top = '-10000px'
  9. fixtureEl.style.left = '-10000px'
  10. fixtureEl.style.width = '10000px'
  11. fixtureEl.style.height = '10000px'
  12. document.body.appendChild(fixtureEl)
  13. }
  14. return fixtureEl
  15. }
  16. export const clearFixture = () => {
  17. const fixtureEl = getFixture()
  18. fixtureEl.innerHTML = ''
  19. }
  20. export const createEvent = (eventName, params = {}) => {
  21. const e = document.createEvent('Event')
  22. e.initEvent(eventName, Boolean(params.bubbles), Boolean(params.cancelable))
  23. return e
  24. }
  25. export const jQueryMock = {
  26. elements: undefined,
  27. fn: {},
  28. each(fn) {
  29. this.elements.forEach(el => {
  30. fn.call(el)
  31. })
  32. }
  33. }
  34. export const clearBodyAndDocument = () => {
  35. const attributes = ['data-bs-padding-right', 'style']
  36. attributes.forEach(attr => {
  37. document.documentElement.removeAttribute(attr)
  38. document.body.removeAttribute(attr)
  39. })
  40. }