aboutsummaryrefslogtreecommitdiff
path: root/test/unit/specs/components/timeline.spec.js
blob: 48796cd3985b2671276475b58312ef77e632e07c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import { getExcludedStatusIdsByPinning } from 'src/components/timeline/timeline.js'
import { difference } from 'lodash'

describe('Timeline', () => {
  describe('getExcludedStatusIdsByPinning', () => {
    const mockStatuses = (ids) => ids.map(id => ({ id }))

    it('should not return any unpinned status ids', () => {
      const statuses = mockStatuses([1, 2, 3, 4])
      const pinnedStatusIds = [1, 3, 5]
      expect(difference(getExcludedStatusIdsByPinning(statuses, pinnedStatusIds), pinnedStatusIds)).to.eql([])
    })

    it('should not return any status ids not listed in the given statuses', () => {
      const statusIds = [1, 2, 3, 4]
      const statuses = mockStatuses(statusIds)
      const pinnedStatusIds = [1, 3, 5]
      expect(difference(getExcludedStatusIdsByPinning(statuses, pinnedStatusIds), statusIds)).to.eql([])
    })

    it('should return ids of pinned statuses not posted before any unpinned status', () => {
      const pinnedStatusIdSet1 = ['PINNED1', 'PINNED2']
      const pinnedStatusIdSet2 = ['PINNED3', 'PINNED4']
      const pinnedStatusIds = [...pinnedStatusIdSet1, ...pinnedStatusIdSet2]
      const statusIds = [...pinnedStatusIdSet1, 'UNPINNED1', ...pinnedStatusIdSet2]
      const statuses = mockStatuses(statusIds)
      expect(getExcludedStatusIdsByPinning(statuses, pinnedStatusIds)).to.eql(pinnedStatusIdSet1)
    })
  })
})