UNPKG

backbone.dropboxdatastore

Version:

Backbone Dropbox Datastore API adapter

57 lines (43 loc) 1.98 kB
describe('Backbone.DropboxDatastore.getDatastore', function() { var result; beforeEach(function() { spyOn(Backbone.DropboxDatastore, '_createDatastorePromise'); }); describe('if there is stored promise for passed datastoreId', function() { beforeEach(function() { Backbone.DropboxDatastore._datastorePromises = { datastoreIdMock:'storedDatastorePromiseMock' }; result = Backbone.DropboxDatastore.getDatastore('datastoreIdMock'); }); it('returns stored promise', function() { expect(result).toBe('storedDatastorePromiseMock'); }); it('do not call _createDatastorePromise on DropboxDatastore', function() { expect(Backbone.DropboxDatastore._createDatastorePromise).not.toHaveBeenCalled(); }); }); describe('if datastore is not opened', function() { beforeEach(function() { Backbone.DropboxDatastore._datastorePromises = {}; Backbone.DropboxDatastore._createDatastorePromise.andReturn('datastorePromiseMock'); result = Backbone.DropboxDatastore.getDatastore('datastoreIdMock'); }); it('call _createDatastorePromise on DropboxDatastore', function() { expect(Backbone.DropboxDatastore._createDatastorePromise).toHaveBeenCalledWith('datastoreIdMock'); }); it('store result of _createDatastorePromise on DropboxDatastore to _datastorePromises', function() { expect(Backbone.DropboxDatastore._datastorePromises.datastoreIdMock).toBe('datastorePromiseMock'); }); it('returns result of _createDatastorePromise on DropboxDatastore', function() { expect(result).toBe('datastorePromiseMock'); }); }); }); describe('Backbone.DropboxDatastore._createDatastorePromise', function() { var datastoreManagerSpy; beforeEach(function() { datastoreManagerSpy = jasmine.createSpyObj('datastoreManager', ['_getOrCreateDatastoreByDsid']); spyOn(Backbone.DropboxDatastore, 'getDatastoreManager').andReturn(datastoreManagerSpy); }); });