Mailspring/spec/stores/nylas-sync-status-store-spec.es6
Juan Tejada 812b64edec fix(snooze): Correctly query and create snooze categories per account
Summary:
- Was not properly updating the references to snoozed categories when
  accounts were added or removed
- Update whenCategoriesReady to make sure we listen until category syncing has concluded (Move inside CategoryStore)
- #1676, #1658

Test Plan: - TODO

Reviewers: evan, drew, bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2723
2016-03-14 15:36:39 -07:00

77 lines
2.1 KiB
JavaScript

import {NylasSyncStatusStore} from 'nylas-exports'
const store = NylasSyncStatusStore
fdescribe('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' ? true : false)
store._statesByAccount = {
a1: {},
a2: {},
}
expect(store.isSyncComplete('a1')).toBe(false)
});
});
});