Open
Description
Just added these test cases for when mutating a reactive parent. I ran into the second issue realising the ref which I created had been overwritten. Don't know if this warning should be added to the docs which "watchers to refs that have been overwritten at the parent level will not fire".
test('should work with mutating parent', (assert) => {
let state = reactive({
settings: {
blocking: {
isEnabled: false,
isCosmetic: false,
whitelist: []
}
}
})
let triggered = 0
const stop = watch(() => {
return state.settings.blocking
}, () => {
triggered += 1
})
state.settings = {
blocking: {
isEnabled: true,
isCosmetic: true,
whitelist: []
}
}
assert.is(triggered, 1)
stop()
})
test('should not trigger when mutating parent because watching a ref that has been destroyed by the parent mutation.', (assert) => {
let state = reactive({
settings: {
blocking: {
isEnabled: false,
isCosmetic: false,
whitelist: []
}
}
})
let triggered = 0
const refBlocking = ref(state.settings.blocking)
const stop = watch(refBlocking, () => {
triggered += 1
})
state.settings = {
blocking: {
isEnabled: true,
isCosmetic: true,
whitelist: []
}
}
assert.is(triggered, 0)
stop()
})
Metadata
Metadata
Assignees
Labels
No labels
Activity