npm install --save-dev dropbox-mock
Global test setup:
global.Dropbox = new (require('dropbox-mock'))();
global.Dropbox.allowAppKey('FAKE-KEY-FOR-TEST');
When creating the Dropbox Client in test, you need to use the same app key that you allowed in the global test setup above.
new Dropbox.Client({key: 'FAKE-KEY-FOR-TEST'});
After exercising code that should have created records, you can inspect the fake Dropbox datastore:
global.Dropbox['MyTable']; // => yields the stored object
new Dropbox.Client
Client.authenticate()
Client.isAuthenticated()
Client.getDatastoreManager()
DatatstoreManager.openDefaultDatastore(callback)
Datastore.getTable(name)
Datastore.recordsChanged.addListener(callback)
(must be manually triggered by your test)Table.query()
(no params)Table.insert(record)
Record.get(fieldName)
Record.deleteRecord()
Record.getId()
Record.update()
Pull requests are welcome.
global.Dropbox = new (require('dropbox-mock'))();
global.Dropbox.allowAppKey('FAKE-KEY-FOR-TEST');
global.Dropbox['MyTable'] = [ { name: "Record 1", value: 1 } ];
// call subject method that queries MyTable
global.Dropbox = new (require('dropbox-mock'))();
global.Dropbox.allowAppKey('FAKE-KEY-FOR-TEST');
// call subject method that should insert records
expect(global.Dropbox['MyTable']).to.equal(expectedRecords);
global.Dropbox = new (require('dropbox-mock'))();
global.Dropbox.allowAppKey('FAKE-KEY-FOR-TEST');
// call subject method that should register a listener
global.Dropbox.triggerRecordsChanged();
// verify subject performed an action in response to a recordsChanged event