Skip to content

Commit 273ddb9

Browse files
authored
Fix race condition caused by calling clear immediately after announce (#141)
* add failing test * reset pending on clear * dont need delay to reproduce * Create silent-beds-suffer.md
1 parent 4fbab15 commit 273ddb9

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

.changeset/silent-beds-suffer.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@primer/live-region-element": patch
3+
---
4+
5+
Fix race condition caused by calling `clear` immediately after `announce`

packages/live-region-element/src/__tests__/live-region-element.test.ts

+9
Original file line numberDiff line numberDiff line change
@@ -195,4 +195,13 @@ describe('live-region-element', () => {
195195
).toBe(Ordering.Less)
196196
})
197197
})
198+
199+
test('announce() after clear()', async () => {
200+
liveRegion.announce('test1')
201+
expect(liveRegion.getMessage('polite')).toBe('test1')
202+
203+
liveRegion.clear()
204+
liveRegion.announce('test2')
205+
expect(liveRegion.getMessage('polite')).toBe('test2')
206+
})
198207
})

packages/live-region-element/src/live-region-element.ts

+1
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ class LiveRegionElement extends HTMLElement {
229229
clearTimeout(this.#timeoutId)
230230
this.#timeoutId = null
231231
}
232+
this.#pending = false
232233
this.#queue.clear()
233234
}
234235
}

0 commit comments

Comments
 (0)