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

Handle Promise rejections in RecentSearchesService spec (!11206)

parent 1daa133c
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