debian-mirror-gitlab/spec/javascripts/filtered_search/stores/recent_searches_store_spec.js
2018-12-13 13:39:08 +05:30

53 lines
1.5 KiB
JavaScript

import RecentSearchesStore from '~/filtered_search/stores/recent_searches_store';
describe('RecentSearchesStore', () => {
let store;
beforeEach(() => {
store = new RecentSearchesStore();
});
describe('addRecentSearch', () => {
it('should add to the front of the list', () => {
store.addRecentSearch('foo');
store.addRecentSearch('bar');
expect(store.state.recentSearches).toEqual(['bar', 'foo']);
});
it('should deduplicate', () => {
store.addRecentSearch('foo');
store.addRecentSearch('bar');
store.addRecentSearch('foo');
expect(store.state.recentSearches).toEqual(['foo', 'bar']);
});
it('only keeps track of 5 items', () => {
store.addRecentSearch('1');
store.addRecentSearch('2');
store.addRecentSearch('3');
store.addRecentSearch('4');
store.addRecentSearch('5');
store.addRecentSearch('6');
store.addRecentSearch('7');
expect(store.state.recentSearches).toEqual(['7', '6', '5', '4', '3']);
});
});
describe('setRecentSearches', () => {
it('should override list', () => {
store.setRecentSearches(['foo', 'bar']);
store.setRecentSearches(['baz', 'qux']);
expect(store.state.recentSearches).toEqual(['baz', 'qux']);
});
it('only keeps track of 5 items', () => {
store.setRecentSearches(['1', '2', '3', '4', '5', '6', '7']);
expect(store.state.recentSearches).toEqual(['1', '2', '3', '4', '5']);
});
});
});