Easily stub out Meteor collections with in-memory local collections. The idea here is to allow the use of things like Factories for unit tests and styleguides without having to restrict ourselves to making components "pure". So a component (ie. a template) can still call Widgets.findOne(widgetId)
, it's just that we will have stubbed out Widgets
to point to a local collection that we can completely control in our test.
meteor add hwillson:stub-collections
// client or server
import StubCollections from 'meteor/hwillson:stub-collections';
StubCollections.add([collection1, collection2, ...])
- register the default list of collections to stub.StubCollections.stub()
- stub all collections that have been previously enabled for stubbing viaadd()
.StubCollections.stub([collection1, collection2, ...])
- stub a specific list of collections, overriding the list registered viaadd()
.StubCollections.restore()
- undo stubbing (call at the end of tests, on routing away, etc.)
See this packages tests.
This project was originally created by MDG, and shipped with the Meteor Guide's todos reference application (thanks MDG!). If you have any questions/comments, open an issue here.
- Update
sinon
to avoid timeouts (#30 - thanks @sebakerckhof!). - Upgrade dependencies (#31 - thanks @sebakerckhof!).
- Proper fix for issue [#22](reported in #22)
- Re-publish to deal with issue [#22](reported in #22)
- Fix for issue #11 (again) where CollectionHooks Collections
direct
accessors were not properly stubbed (thanks @zeroasterisk!). - Allow single collections with
add
(PR #18 - thanks @Floriferous!). - Removed
underscore
- Replaced
practicalmeteor:mocha
withmeteortesting:mocha
- Switched to npm based
sinon
andchai
packages - Slight refactoring based on linting
- Test cleanup
- Fixes issue #11 where some inherited Collection properties were not properly stubbed (thanks @Davidyuk!).
- Omit the stubbing of a collection's schema if using aldeed:collection2 package (thanks @drewmoore!).