This commit is contained in:
34
tests/unit/GuideModelStateReset.spec.ts
Normal file
34
tests/unit/GuideModelStateReset.spec.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
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)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user