Skip to content

avh4/dropbox-mock.js

Repository files navigation

Build Status Stability: 2 - unstable

Usage

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

Currently supported APIs

  • 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.

Examples

Table.query()

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

Table.insert(record)

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);

Datastore.recordsChanged.addListener(callback)

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

About

Test double for Dropbox API

Resources

License

Stars

Watchers

Forks

Packages

No packages published