{"version":3,"file":"calcTextareaHeight.test.mjs","sources":["../../../../../src/_common/test/unit/utils/calcTextareaHeight.test.ts"],"sourcesContent":["// @vitest-environment jsdom\n\nimport { afterEach, describe, expect, it, vi } from 'vitest';\n\nimport calcTextareaHeight from '../../../js/utils/calcTextareaHeight';\n\nafterEach(() => {\n  vi.restoreAllMocks();\n  document.body.innerHTML = '';\n});\n\ndescribe('calcTextareaHeight', () => {\n  it('removes hidden textarea after height calculation', () => {\n    const textarea = document.createElement('textarea');\n    textarea.value = 'textarea content';\n    document.body.appendChild(textarea);\n\n    const result = calcTextareaHeight(textarea);\n\n    expect(result.height).toBeDefined();\n    expect(document.body.querySelectorAll('textarea')).toHaveLength(1);\n  });\n\n  it('removes hidden textarea after reentrant height calculations', () => {\n    const firstTextarea = document.createElement('textarea');\n    firstTextarea.value = 'first textarea content';\n    document.body.appendChild(firstTextarea);\n\n    const secondTextarea = document.createElement('textarea');\n    secondTextarea.value = 'second textarea content';\n    document.body.appendChild(secondTextarea);\n\n    let isReentered = false;\n    vi.spyOn(HTMLTextAreaElement.prototype, 'scrollHeight', 'get').mockImplementation(function mockScrollHeight(\n      this: HTMLTextAreaElement\n    ) {\n      if (!isReentered && !this.isConnected) return 0;\n      if (!isReentered && this !== firstTextarea && this !== secondTextarea) {\n        isReentered = true;\n        calcTextareaHeight(secondTextarea);\n      }\n      return 20;\n    });\n\n    const result = calcTextareaHeight(firstTextarea);\n\n    expect(result.height).toBeDefined();\n    expect(document.body.querySelectorAll('textarea')).toHaveLength(2);\n  });\n});\n"],"names":["afterEach","vi","restoreAllMocks","document","body","innerHTML","describe","it","textarea","createElement","value","appendChild","result","calcTextareaHeight","expect","height","toBeDefined","querySelectorAll","toHaveLength","firstTextarea","secondTextarea","isReentered","spyOn","HTMLTextAreaElement","prototype","mockImplementation","mockScrollHeight","isConnected"],"mappings":";;;;;;;;;;;;;;;;;;;;AAMAA,SAAA,CAAU,YAAM;EACdC,EAAA,CAAGC,eAAgB,EAAA,CAAA;AACnBC,EAAAA,QAAA,CAASC,KAAKC,SAAY,GAAA,EAAA,CAAA;AAC5B,CAAC,CAAA,CAAA;AAEDC,QAAA,CAAS,sBAAsB,YAAM;EACnCC,EAAA,CAAG,oDAAoD,YAAM;AACrD,IAAA,IAAAC,QAAA,GAAWL,QAAS,CAAAM,aAAA,CAAc,UAAU,CAAA,CAAA;IAClDD,QAAA,CAASE,KAAQ,GAAA,kBAAA,CAAA;AACRP,IAAAA,QAAA,CAAAC,IAAA,CAAKO,YAAYH,QAAQ,CAAA,CAAA;AAE5B,IAAA,IAAAI,MAAA,GAASC,mBAAmBL,QAAQ,CAAA,CAAA;IAEnCM,YAAA,CAAAF,MAAA,CAAOG,MAAM,CAAA,CAAEC,WAAY,EAAA,CAAA;AAClCF,IAAAA,YAAA,CAAOX,SAASC,IAAK,CAAAa,gBAAA,CAAiB,UAAU,CAAC,CAAA,CAAEC,aAAa,CAAC,CAAA,CAAA;AACnE,GAAC,CAAA,CAAA;EAEDX,EAAA,CAAG,+DAA+D,YAAM;AAChE,IAAA,IAAAY,aAAA,GAAgBhB,QAAS,CAAAM,aAAA,CAAc,UAAU,CAAA,CAAA;IACvDU,aAAA,CAAcT,KAAQ,GAAA,wBAAA,CAAA;AACbP,IAAAA,QAAA,CAAAC,IAAA,CAAKO,YAAYQ,aAAa,CAAA,CAAA;AAEjC,IAAA,IAAAC,cAAA,GAAiBjB,QAAS,CAAAM,aAAA,CAAc,UAAU,CAAA,CAAA;IACxDW,cAAA,CAAeV,KAAQ,GAAA,yBAAA,CAAA;AACdP,IAAAA,QAAA,CAAAC,IAAA,CAAKO,YAAYS,cAAc,CAAA,CAAA;IAExC,IAAIC,WAAc,GAAA,KAAA,CAAA;AACfpB,IAAAA,EAAA,CAAAqB,KAAA,CAAMC,oBAAoBC,SAAW,EAAA,cAAA,EAAgB,KAAK,CAAE,CAAAC,kBAAA,CAAmB,SAASC,gBAEzFA,GAAA;MACI,IAAA,CAACL,WAAe,IAAA,CAAC,IAAK,CAAAM,WAAA,EAAoB,OAAA,CAAA,CAAA;MAC9C,IAAI,CAACN,WAAA,IAAe,IAAS,KAAAF,aAAA,IAAiB,SAASC,cAAgB,EAAA;AACvDC,QAAAA,WAAA,GAAA,IAAA,CAAA;QACdR,kBAAA,CAAmBO,cAAc,CAAA,CAAA;AACnC,OAAA;AACO,MAAA,OAAA,EAAA,CAAA;AACT,KAAC,CAAA,CAAA;AAEK,IAAA,IAAAR,MAAA,GAASC,mBAAmBM,aAAa,CAAA,CAAA;IAExCL,YAAA,CAAAF,MAAA,CAAOG,MAAM,CAAA,CAAEC,WAAY,EAAA,CAAA;AAClCF,IAAAA,YAAA,CAAOX,SAASC,IAAK,CAAAa,gBAAA,CAAiB,UAAU,CAAC,CAAA,CAAEC,aAAa,CAAC,CAAA,CAAA;AACnE,GAAC,CAAA,CAAA;AACH,CAAC,CAAA"}