Skip to content

Commit

Permalink
test(reactivity): add test case for effectScope (#4239)
Browse files Browse the repository at this point in the history
  • Loading branch information
webfansplz authored Aug 10, 2021
1 parent c46af8f commit e04680b
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 1 deletion.
19 changes: 19 additions & 0 deletions packages/reactivity/__tests__/effectScope.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,25 @@ describe('reactivity/effect/scope', () => {
expect(dummy).toBe(7)
})

it('should warn onDispose() is called when there is no active effect scope', () => {
const spy = jest.fn()
const scope = new EffectScope()
scope.run(() => {
onScopeDispose(spy)
})

expect(spy).toHaveBeenCalledTimes(0)

onScopeDispose(spy)

expect(
'[Vue warn] onDispose() is called when there is no active effect scope to be associated with.'
).toHaveBeenWarned()

scope.stop()
expect(spy).toHaveBeenCalledTimes(1)
})

it('should derefence child scope from parent scope after stopping child scope (no memleaks)', async () => {
const parent = new EffectScope()
const child = parent.run(() => new EffectScope())!
Expand Down
2 changes: 1 addition & 1 deletion packages/reactivity/src/effectScope.ts
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ export function onScopeDispose(fn: () => void) {
activeEffectScope.cleanups.push(fn)
} else if (__DEV__) {
warn(
`onDispose() is called when there is no active effect scope ` +
`onDispose() is called when there is no active effect scope` +
` to be associated with.`
)
}
Expand Down

0 comments on commit e04680b

Please sign in to comment.