Skip to content

Commit

Permalink
fix: warn when unregistering non existing module (#1786)
Browse files Browse the repository at this point in the history
* fix: warn when unregistering non existing module

* refactor: store child as a variable and reuse it
  • Loading branch information
kiaking authored Jun 29, 2020
1 parent bab3155 commit 7cec79d
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 1 deletion.
16 changes: 15 additions & 1 deletion src/module/module-collection.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,21 @@ export default class ModuleCollection {
unregister (path) {
const parent = this.get(path.slice(0, -1))
const key = path[path.length - 1]
if (!parent.getChild(key).runtime) return
const child = parent.getChild(key)

if (!child) {
if (__DEV__) {
console.warn(
`[vuex] trying to unregister module '${key}', which is ` +
`not registered`
)
}
return
}

if (!child.runtime) {
return
}

parent.removeChild(key)
}
Expand Down
8 changes: 8 additions & 0 deletions test/unit/module/module-collection.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -92,4 +92,12 @@ describe('ModuleCollection', () => {
collection.unregister(['a'])
expect(collection.get(['a']).state.value).toBe(true)
})

it('warns when unregistering non existing module', () => {
const spy = jest.spyOn(console, 'warn').mockImplementation()

const collection = new ModuleCollection({})
collection.unregister(['a'])
expect(spy).toHaveBeenCalled()
})
})

0 comments on commit 7cec79d

Please sign in to comment.