diff options
Diffstat (limited to 'spec/javascripts/activities_spec.js')
-rw-r--r-- | spec/javascripts/activities_spec.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/spec/javascripts/activities_spec.js b/spec/javascripts/activities_spec.js new file mode 100644 index 00000000000..e6a6fc36ca1 --- /dev/null +++ b/spec/javascripts/activities_spec.js @@ -0,0 +1,62 @@ +/* eslint-disable no-unused-expressions, no-prototype-builtins, no-new, no-shadow, max-len */ + +require('vendor/jquery.endless-scroll.js'); +require('~/pager'); +require('~/activities'); + +(() => { + window.gon || (window.gon = {}); + const fixtureTemplate = 'static/event_filter.html.raw'; + const filters = [ + { + id: 'all', + }, { + id: 'push', + name: 'push events', + }, { + id: 'merged', + name: 'merge events', + }, { + id: 'comments', + }, { + id: 'team', + }]; + + function getEventName(index) { + const filter = filters[index]; + return filter.hasOwnProperty('name') ? filter.name : filter.id; + } + + function getSelector(index) { + const filter = filters[index]; + return `#${filter.id}_event_filter`; + } + + describe('Activities', () => { + beforeEach(() => { + loadFixtures(fixtureTemplate); + new gl.Activities(); + }); + + for (let i = 0; i < filters.length; i += 1) { + ((i) => { + describe(`when selecting ${getEventName(i)}`, () => { + beforeEach(() => { + $(getSelector(i)).click(); + }); + + for (let x = 0; x < filters.length; x += 1) { + ((x) => { + const shouldHighlight = i === x; + const testName = shouldHighlight ? 'should highlight' : 'should not highlight'; + + it(`${testName} ${getEventName(x)}`, () => { + expect($(getSelector(x)).parent().hasClass('active')).toEqual(shouldHighlight); + }); + })(x); + } + }); + })(i); + } + }); +})(); |