Mailspring/app/spec/stores/folder-sync-progress-store-spec.es6

73 lines
2.1 KiB
Text
Raw Normal View History

import { FolderSyncProgressStore } from 'mailspring-exports';
2017-09-27 02:33:08 +08:00
const store = FolderSyncProgressStore;
xdescribe('FolderSyncProgressStore', function nylasSyncStatusStore() {
2016-05-06 13:30:34 +08:00
beforeEach(() => {
2017-09-27 02:33:08 +08:00
store._statesByAccount = {};
});
2016-05-06 13:30:34 +08:00
describe('isSyncCompleteForAccount', () => {
describe('when model (collection) provided', () => {
it('returns true if syncing for the given model and account is complete', () => {
store._statesByAccount = {
a1: {
2017-09-27 02:33:08 +08:00
labels: { complete: true },
},
2017-09-27 02:33:08 +08:00
};
expect(store.isSyncCompleteForAccount('a1', 'labels')).toBe(true);
});
2016-05-06 13:30:34 +08:00
it('returns false otherwise', () => {
2017-09-27 02:33:08 +08:00
const states = [{ a1: { labels: { complete: false } } }, { a1: {} }, {}];
states.forEach(state => {
store._statesByAccount = state;
expect(store.isSyncCompleteForAccount('a1', 'labels')).toBe(false);
});
});
});
2016-05-06 13:30:34 +08:00
describe('when model not provided', () => {
it('returns true if sync is complete for all models for the given account', () => {
store._statesByAccount = {
a1: {
2017-09-27 02:33:08 +08:00
labels: { complete: true },
threads: { complete: true },
},
2017-09-27 02:33:08 +08:00
};
expect(store.isSyncCompleteForAccount('a1')).toBe(true);
});
2016-05-06 13:30:34 +08:00
it('returns false otherwise', () => {
store._statesByAccount = {
a1: {
2017-09-27 02:33:08 +08:00
labels: { complete: true },
threads: { complete: false },
},
2017-09-27 02:33:08 +08:00
};
expect(store.isSyncCompleteForAccount('a1')).toBe(false);
});
});
});
2016-05-06 13:30:34 +08:00
describe('isSyncComplete', () => {
it('returns true if sync is complete for all accounts', () => {
2017-09-27 02:33:08 +08:00
spyOn(store, 'isSyncCompleteForAccount').andReturn(true);
store._statesByAccount = {
a1: {},
a2: {},
2017-09-27 02:33:08 +08:00
};
expect(store.isSyncComplete('a1')).toBe(true);
});
2016-05-06 13:30:34 +08:00
it('returns false otherwise', () => {
2017-09-27 02:33:08 +08:00
spyOn(store, 'isSyncCompleteForAccount').andCallFake(acctId => acctId === 'a1');
store._statesByAccount = {
a1: {},
a2: {},
2017-09-27 02:33:08 +08:00
};
expect(store.isSyncComplete('a1')).toBe(false);
});
});
});