import { beforeEach, describe, expect, it } from 'vitest' import { useGuideModelState } from '@/composables/useGuideModelState' describe('guide model floor baseline reset queue', () => { beforeEach(() => { const state = useGuideModelState() state.invalidatePendingRequests() const pending = state.consumePendingViewBaselineReset() if (pending) state.completeViewBaselineReset(pending) }) it('keeps only the latest pre-ready reset and consumes it once', () => { const state = useGuideModelState() const first = state.beginViewBaselineReset({ floorId: 'L1', rendererReason: 'poi-detail-close' }) expect(state.queueViewBaselineReset(first)).toBe(true) const second = state.beginViewBaselineReset({ floorId: 'L2', rendererReason: 'floor-reset' }) expect(state.queueViewBaselineReset(second)).toBe(true) expect(state.consumePendingViewBaselineReset()).toEqual(second) expect(state.consumePendingViewBaselineReset()).toBeNull() }) it('does not let an obsolete reset queue or commit after a newer request', () => { const state = useGuideModelState() const obsolete = state.beginViewBaselineReset({ floorId: 'L1', rendererReason: 'poi-detail-close' }) const latest = state.beginViewBaselineReset({ floorId: 'L2', rendererReason: 'floor-reset' }) expect(state.isCurrentRequest(obsolete.requestId)).toBe(false) expect(state.queueViewBaselineReset(obsolete)).toBe(false) expect(state.completeViewBaselineReset(obsolete)).toBe(false) expect(state.queueViewBaselineReset(latest)).toBe(true) expect(state.consumePendingViewBaselineReset()).toEqual(latest) }) })