Merge branch 'winh-recent-searches-service-spec' into 'master'
Handle Promise rejections in RecentSearchesService spec See merge request !11206
This commit is contained in:
commit
0e372f9607
1 changed files with 30 additions and 22 deletions
|
@ -1,6 +1,5 @@
|
|||
/* eslint-disable promise/catch-or-return */
|
||||
|
||||
import RecentSearchesService from '~/filtered_search/services/recent_searches_service';
|
||||
import RecentSearchesServiceError from '~/filtered_search/services/recent_searches_service_error';
|
||||
import AccessorUtilities from '~/lib/utils/accessor';
|
||||
|
||||
describe('RecentSearchesService', () => {
|
||||
|
@ -22,11 +21,9 @@ describe('RecentSearchesService', () => {
|
|||
fetchItemsPromise
|
||||
.then((items) => {
|
||||
expect(items).toEqual([]);
|
||||
done();
|
||||
})
|
||||
.catch((err) => {
|
||||
done.fail('Shouldn\'t reject with empty localStorage key', err);
|
||||
});
|
||||
.then(done)
|
||||
.catch(done.fail);
|
||||
});
|
||||
|
||||
it('should reject when unable to parse', (done) => {
|
||||
|
@ -34,19 +31,24 @@ describe('RecentSearchesService', () => {
|
|||
const fetchItemsPromise = service.fetch();
|
||||
|
||||
fetchItemsPromise
|
||||
.then(done.fail)
|
||||
.catch((error) => {
|
||||
expect(error).toEqual(jasmine.any(SyntaxError));
|
||||
done();
|
||||
});
|
||||
})
|
||||
.then(done)
|
||||
.catch(done.fail);
|
||||
});
|
||||
|
||||
it('should reject when service is unavailable', (done) => {
|
||||
RecentSearchesService.isAvailable.and.returnValue(false);
|
||||
|
||||
service.fetch().catch((error) => {
|
||||
service.fetch()
|
||||
.then(done.fail)
|
||||
.catch((error) => {
|
||||
expect(error).toEqual(jasmine.any(Error));
|
||||
done();
|
||||
});
|
||||
})
|
||||
.then(done)
|
||||
.catch(done.fail);
|
||||
});
|
||||
|
||||
it('should return items from localStorage', (done) => {
|
||||
|
@ -56,8 +58,9 @@ describe('RecentSearchesService', () => {
|
|||
fetchItemsPromise
|
||||
.then((items) => {
|
||||
expect(items).toEqual(['foo', 'bar']);
|
||||
done();
|
||||
});
|
||||
})
|
||||
.then(done)
|
||||
.catch(done.fail);
|
||||
});
|
||||
|
||||
describe('if .isAvailable returns `false`', () => {
|
||||
|
@ -65,12 +68,17 @@ describe('RecentSearchesService', () => {
|
|||
RecentSearchesService.isAvailable.and.returnValue(false);
|
||||
|
||||
spyOn(window.localStorage, 'getItem');
|
||||
|
||||
RecentSearchesService.prototype.fetch();
|
||||
});
|
||||
|
||||
it('should not call .getItem', () => {
|
||||
it('should not call .getItem', (done) => {
|
||||
RecentSearchesService.prototype.fetch()
|
||||
.then(done.fail)
|
||||
.catch((err) => {
|
||||
expect(err).toEqual(new RecentSearchesServiceError());
|
||||
expect(window.localStorage.getItem).not.toHaveBeenCalled();
|
||||
})
|
||||
.then(done)
|
||||
.catch(done.fail);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@ -105,11 +113,11 @@ describe('RecentSearchesService', () => {
|
|||
RecentSearchesService.isAvailable.and.returnValue(true);
|
||||
|
||||
spyOn(JSON, 'stringify').and.returnValue(searchesString);
|
||||
|
||||
RecentSearchesService.prototype.save.call(recentSearchesService);
|
||||
});
|
||||
|
||||
it('should call .setItem', () => {
|
||||
RecentSearchesService.prototype.save.call(recentSearchesService);
|
||||
|
||||
expect(window.localStorage.setItem).toHaveBeenCalledWith(localStorageKey, searchesString);
|
||||
});
|
||||
});
|
||||
|
@ -117,11 +125,11 @@ describe('RecentSearchesService', () => {
|
|||
describe('if .isAvailable returns `false`', () => {
|
||||
beforeEach(() => {
|
||||
RecentSearchesService.isAvailable.and.returnValue(false);
|
||||
|
||||
RecentSearchesService.prototype.save();
|
||||
});
|
||||
|
||||
it('should not call .setItem', () => {
|
||||
RecentSearchesService.prototype.save();
|
||||
|
||||
expect(window.localStorage.setItem).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue