{"version":3,"file":"useResizeObserver.test.mjs","sources":["../../../src/tab-bar/__test__/useResizeObserver.test.ts"],"sourcesContent":["import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';\nimport { mount } from '@vue/test-utils';\nimport { defineComponent, h, ref, nextTick } from 'vue';\nimport { useResizeObserver, useVisibilityObserver } from '../../hooks/useResizeObserver';\n\n/**\n * jsdom 未实现 ResizeObserver，这里提供一个可观测的 Mock：\n * - 记录每个观察器 observe / disconnect 的调用情况\n * - 通过 trigger 主动模拟一次尺寸变化回调\n * 以便断言启停控制与回调触发逻辑。\n */\ntype MockResizeCallback = (entries: Array<{ contentRect: { width: number; height: number } }>) => void;\n\nclass MockResizeObserver {\n  static instances: MockResizeObserver[] = [];\n\n  static reset() {\n    MockResizeObserver.instances = [];\n  }\n\n  callback: MockResizeCallback;\n\n  observed: Element[] = [];\n\n  disconnectCount = 0;\n\n  constructor(callback: MockResizeCallback) {\n    this.callback = callback;\n    MockResizeObserver.instances.push(this);\n  }\n\n  observe(el: Element) {\n    this.observed.push(el);\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  unobserve() {}\n\n  disconnect() {\n    this.disconnectCount += 1;\n  }\n\n  /** 手动模拟一次尺寸变化回调 */\n  trigger(width: number, height: number) {\n    this.callback([{ contentRect: { width, height } }]);\n  }\n}\n\n/** 挂载一个宿主组件以驱动 hook 的生命周期，并把 hook 返回值暴露出来 */\nfunction mountWithHook<T extends Record<string, any>>(run: () => T): { wrapper: ReturnType<typeof mount>; api: T } {\n  const api = {} as T;\n  const Comp = defineComponent({\n    setup() {\n      Object.assign(api, run());\n      return () => h('div');\n    },\n  });\n  const wrapper = mount(Comp);\n  return { wrapper, api };\n}\n\n/** 当前最新创建的观察器实例 */\nconst latest = () => MockResizeObserver.instances[MockResizeObserver.instances.length - 1];\n/** 所有被观察过的元素 */\nconst observedEls = () => MockResizeObserver.instances.flatMap((o) => o.observed);\n\ndescribe('useResizeObserver', () => {\n  let OriginalResizeObserver: typeof ResizeObserver;\n\n  beforeEach(() => {\n    OriginalResizeObserver = window.ResizeObserver;\n    MockResizeObserver.reset();\n    (window as any).ResizeObserver = MockResizeObserver;\n  });\n\n  afterEach(() => {\n    (window as any).ResizeObserver = OriginalResizeObserver;\n  });\n\n  describe('启停控制（根因1）', () => {\n    it('immediate 默认 true：挂载后立即观察目标元素', () => {\n      const el = document.createElement('div');\n      mountWithHook(() => ({ ...useResizeObserver(ref<HTMLElement | null>(el), vi.fn()) }));\n\n      expect(observedEls()).toContain(el);\n    });\n\n    it('immediate:false：挂载后不观察', () => {\n      const el = document.createElement('div');\n      mountWithHook(() => ({ ...useResizeObserver(ref<HTMLElement | null>(el), vi.fn(), { immediate: false }) }));\n\n      expect(MockResizeObserver.instances.length).toBe(0);\n    });\n\n    it('未调用 start 时 target 变化不会自动启动观察（根因1核心回归防护）', async () => {\n      const el = document.createElement('div');\n      const { api } = mountWithHook(() => {\n        const elRef = ref<HTMLElement | null>(null);\n        return { elRef, ...useResizeObserver(elRef, vi.fn(), { immediate: false }) };\n      });\n\n      api.elRef.value = el;\n      await nextTick();\n\n      expect(observedEls()).not.toContain(el);\n      expect(MockResizeObserver.instances.length).toBe(0);\n    });\n\n    it('调用 start() 后，target 变化会断开旧元素并观察新元素', async () => {\n      const el1 = document.createElement('div');\n      const el2 = document.createElement('div');\n      const { api } = mountWithHook(() => {\n        const elRef = ref<HTMLElement | null>(el1);\n        return { elRef, ...useResizeObserver(elRef, vi.fn(), { immediate: false }) };\n      });\n\n      api.start();\n      expect(observedEls()).toContain(el1);\n      const prev = latest();\n\n      api.elRef.value = el2;\n      await nextTick();\n\n      expect(prev.disconnectCount).toBeGreaterThan(0);\n      expect(observedEls()).toContain(el2);\n    });\n\n    it('调用 stop() 后断开观察，且后续 target 变化不再自动重建', async () => {\n      const el1 = document.createElement('div');\n      const el2 = document.createElement('div');\n      const { api } = mountWithHook(() => {\n        const elRef = ref<HTMLElement | null>(el1);\n        return { elRef, ...useResizeObserver(elRef, vi.fn()) };\n      });\n\n      const first = latest();\n      expect(first.observed).toContain(el1);\n\n      api.stop();\n      expect(first.disconnectCount).toBeGreaterThan(0);\n\n      const countBefore = MockResizeObserver.instances.length;\n      api.elRef.value = el2;\n      await nextTick();\n\n      expect(MockResizeObserver.instances.length).toBe(countBefore);\n      expect(observedEls()).not.toContain(el2);\n    });\n\n    it('组件卸载时自动断开观察', () => {\n      const el = document.createElement('div');\n      const { wrapper } = mountWithHook(() => ({ ...useResizeObserver(ref<HTMLElement | null>(el), vi.fn()) }));\n\n      const obs = latest();\n      wrapper.unmount();\n\n      expect(obs.disconnectCount).toBeGreaterThan(0);\n    });\n\n    it('环境不支持 ResizeObserver 时 isSupported 为 false 且不创建观察器', () => {\n      (window as any).ResizeObserver = undefined;\n      const el = document.createElement('div');\n      const { api } = mountWithHook(() => ({ ...useResizeObserver(ref<HTMLElement | null>(el), vi.fn()) }));\n\n      expect(api.isSupported).toBe(false);\n      expect(MockResizeObserver.instances.length).toBe(0);\n    });\n  });\n\n  describe('回调触发逻辑（shouldTrigger / issue #2270）', () => {\n    it('onResize 场景下尺寸 0→非0（becameVisible）也触发回调，且 becameVisible 为 true', () => {\n      const cb = vi.fn();\n      mountWithHook(() => ({ ...useResizeObserver(ref<HTMLElement | null>(document.createElement('div')), cb) }));\n\n      latest().trigger(100, 50);\n\n      expect(cb).toHaveBeenCalledTimes(1);\n      expect(cb.mock.calls[0][0]).toMatchObject({ width: 100, height: 50, becameVisible: true });\n    });\n\n    it('普通尺寸变化触发回调，becameVisible 为 false', () => {\n      const cb = vi.fn();\n      mountWithHook(() => ({ ...useResizeObserver(ref<HTMLElement | null>(document.createElement('div')), cb) }));\n\n      const o = latest();\n      o.trigger(100, 50); // 0 → 非0，becameVisible\n      o.trigger(120, 50); // 普通尺寸变化\n\n      expect(cb).toHaveBeenCalledTimes(2);\n      expect(cb.mock.calls[1][0]).toMatchObject({ width: 120, becameVisible: false });\n    });\n\n    it('尺寸未变化时不触发回调', () => {\n      const cb = vi.fn();\n      mountWithHook(() => ({ ...useResizeObserver(ref<HTMLElement | null>(document.createElement('div')), cb) }));\n\n      const o = latest();\n      o.trigger(100, 50);\n      o.trigger(100, 50);\n\n      expect(cb).toHaveBeenCalledTimes(1);\n    });\n\n    it('onResize:false 且 onVisibilityChange:false 时不触发任何回调', () => {\n      const cb = vi.fn();\n      mountWithHook(() => ({\n        ...useResizeObserver(ref<HTMLElement | null>(document.createElement('div')), cb, {\n          onResize: false,\n          onVisibilityChange: false,\n        }),\n      }));\n\n      latest().trigger(100, 50);\n\n      expect(cb).not.toHaveBeenCalled();\n    });\n\n    it('useVisibilityObserver 仅在不可见→可见时触发一次', () => {\n      const cb = vi.fn();\n      mountWithHook(() => ({ ...useVisibilityObserver(ref<HTMLElement | null>(document.createElement('div')), cb) }));\n\n      const o = latest();\n      o.trigger(100, 50); // becameVisible → 触发\n      o.trigger(120, 60); // 已可见的普通变化 → onResize:false，不触发\n\n      expect(cb).toHaveBeenCalledTimes(1);\n    });\n  });\n});\n"],"names":["MockResizeObserver","callback","_classCallCheck","_defineProperty","instances","push","_createClass","key","value","observe","el","observed","unobserve","disconnect","disconnectCount","trigger","width","height","contentRect","reset","mountWithHook","run","api","Comp","defineComponent","setup","Object","assign","h","wrapper","mount","latest","length","observedEls","flatMap","o","describe","OriginalResizeObserver","beforeEach","window","ResizeObserver","afterEach","it","document","createElement","_objectSpread","useResizeObserver","ref","vi","fn","expect","toContain","immediate","toBe","_callee","_mountWithHook","_regeneratorRuntime","wrap","_context","prev","next","elRef","nextTick","not","stop","_callee2","el1","el2","_mountWithHook2","_context2","start","toBeGreaterThan","_callee3","_mountWithHook3","first","countBefore","_context3","_mountWithHook4","obs","unmount","_mountWithHook5","isSupported","cb","toHaveBeenCalledTimes","mock","calls","toMatchObject","becameVisible","onResize","onVisibilityChange","toHaveBeenCalled","useVisibilityObserver"],"mappings":"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"}