add unit test for elimination logic

This commit is contained in:
taehoon 2019-07-25 08:03:41 -04:00
parent 53c9517a4a
commit 65ef039316
2 changed files with 34 additions and 11 deletions

View file

@ -1,7 +1,20 @@
import Status from '../status/status.vue'
import timelineFetcher from '../../services/timeline_fetcher/timeline_fetcher.service.js'
import Conversation from '../conversation/conversation.vue'
import { throttle } from 'lodash'
import { throttle, keyBy } from 'lodash'
export const getExcludedStatusIdsByPinning = (statuses, pinnedStatusIds) => {
const ids = []
if (pinnedStatusIds && pinnedStatusIds.length > 0) {
for (let status of statuses) {
if (!pinnedStatusIds.includes(status.id)) {
break
}
ids.push(status.id)
}
}
return ids
}
const Timeline = {
props: [
@ -43,16 +56,9 @@ const Timeline = {
},
// id map of statuses which need to be hidden in the main list due to pinning logic
excludedStatusIdsObject () {
const result = {}
if (this.pinnedStatusIds && this.pinnedStatusIds.length > 0) {
for (let status of this.timeline.visibleStatuses) {
if (!this.pinnedStatusIds.includes(status.id)) {
break
}
result[status.id] = true
}
}
return result
const ids = getExcludedStatusIdsByPinning(this.timeline.visibleStatuses, this.pinnedStatusIds)
// Convert id array to object
return keyBy(ids, id => id)
}
},
components: {