Skip to content
Snippets Groups Projects
Commit 46de2e68 authored by Winnie Hellmann's avatar Winnie Hellmann
Browse files

Handle Promise rejections in RecentSearchesService spec (!11206)

Former-commit-id: 999f71f3
parent 6c3231b2
No related branches found
No related tags found
No related merge requests found
/* 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', () => {
Loading
Loading
@@ -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) => {
Loading
Loading
@@ -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) => {
expect(error).toEqual(jasmine.any(Error));
done();
});
service.fetch()
.then(done.fail)
.catch((error) => {
expect(error).toEqual(jasmine.any(Error));
})
.then(done)
.catch(done.fail);
});
 
it('should return items from localStorage', (done) => {
Loading
Loading
@@ -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`', () => {
Loading
Loading
@@ -65,12 +68,17 @@ describe('RecentSearchesService', () => {
RecentSearchesService.isAvailable.and.returnValue(false);
 
spyOn(window.localStorage, 'getItem');
RecentSearchesService.prototype.fetch();
});
 
it('should not call .getItem', () => {
expect(window.localStorage.getItem).not.toHaveBeenCalled();
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);
});
});
});
Loading
Loading
@@ -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);
});
});
Loading
Loading
@@ -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
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment