mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-14 14:13:43 +01:00
[ide-react] Preserve scope value update watchers on watcher add (#16729)
GitOrigin-RevId: 1168577364fef6e13a58d7d96afdf4ba685fc342
This commit is contained in:
@@ -122,6 +122,35 @@ describe('ReactScopeValueStore', function () {
|
||||
expect(watcher).to.have.been.calledWith('wombat')
|
||||
})
|
||||
|
||||
it('handles multiple watchers for the same path added at the same time before the value is set', async function () {
|
||||
const store = new ReactScopeValueStore()
|
||||
|
||||
const watcherOne = sinon.stub()
|
||||
const watcherTwo = sinon.stub()
|
||||
store.watch('test', watcherOne)
|
||||
store.watch('test', watcherTwo)
|
||||
await waitForWatchers(() => {
|
||||
store.set('test', 'wombat')
|
||||
})
|
||||
|
||||
expect(watcherOne).to.have.been.calledWith('wombat')
|
||||
expect(watcherTwo).to.have.been.calledWith('wombat')
|
||||
})
|
||||
|
||||
it('handles multiple watchers for the same path added at the same time after the value is set', async function () {
|
||||
const store = new ReactScopeValueStore()
|
||||
store.set('test', 'wombat')
|
||||
|
||||
const watcherOne = sinon.stub()
|
||||
const watcherTwo = sinon.stub()
|
||||
store.watch('test', watcherOne)
|
||||
store.watch('test', watcherTwo)
|
||||
store.flushUpdates()
|
||||
|
||||
expect(watcherOne).to.have.been.calledWith('wombat')
|
||||
expect(watcherTwo).to.have.been.calledWith('wombat')
|
||||
})
|
||||
|
||||
it('throws an error when watching an unknown value', function () {
|
||||
const store = new ReactScopeValueStore()
|
||||
expect(() => store.watch('test', () => {})).to.throw
|
||||
|
||||
Reference in New Issue
Block a user