mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-01-06 08:08:10 +08:00
72 lines
2.1 KiB
JavaScript
72 lines
2.1 KiB
JavaScript
import { FolderSyncProgressStore } from 'mailspring-exports';
|
|
|
|
const store = FolderSyncProgressStore;
|
|
|
|
xdescribe('FolderSyncProgressStore', function nylasSyncStatusStore() {
|
|
beforeEach(() => {
|
|
store._statesByAccount = {};
|
|
});
|
|
|
|
describe('isSyncCompleteForAccount', () => {
|
|
describe('when model (collection) provided', () => {
|
|
it('returns true if syncing for the given model and account is complete', () => {
|
|
store._statesByAccount = {
|
|
a1: {
|
|
labels: { complete: true },
|
|
},
|
|
};
|
|
expect(store.isSyncCompleteForAccount('a1', 'labels')).toBe(true);
|
|
});
|
|
|
|
it('returns false otherwise', () => {
|
|
const states = [{ a1: { labels: { complete: false } } }, { a1: {} }, {}];
|
|
states.forEach(state => {
|
|
store._statesByAccount = state;
|
|
expect(store.isSyncCompleteForAccount('a1', 'labels')).toBe(false);
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('when model not provided', () => {
|
|
it('returns true if sync is complete for all models for the given account', () => {
|
|
store._statesByAccount = {
|
|
a1: {
|
|
labels: { complete: true },
|
|
threads: { complete: true },
|
|
},
|
|
};
|
|
expect(store.isSyncCompleteForAccount('a1')).toBe(true);
|
|
});
|
|
|
|
it('returns false otherwise', () => {
|
|
store._statesByAccount = {
|
|
a1: {
|
|
labels: { complete: true },
|
|
threads: { complete: false },
|
|
},
|
|
};
|
|
expect(store.isSyncCompleteForAccount('a1')).toBe(false);
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('isSyncComplete', () => {
|
|
it('returns true if sync is complete for all accounts', () => {
|
|
spyOn(store, 'isSyncCompleteForAccount').andReturn(true);
|
|
store._statesByAccount = {
|
|
a1: {},
|
|
a2: {},
|
|
};
|
|
expect(store.isSyncComplete('a1')).toBe(true);
|
|
});
|
|
|
|
it('returns false otherwise', () => {
|
|
spyOn(store, 'isSyncCompleteForAccount').andCallFake(acctId => acctId === 'a1');
|
|
store._statesByAccount = {
|
|
a1: {},
|
|
a2: {},
|
|
};
|
|
expect(store.isSyncComplete('a1')).toBe(false);
|
|
});
|
|
});
|
|
});
|