From 66ef9f1328f155d50775d55445522c11cd17fa01 Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Mon, 13 Feb 2017 23:22:32 +0100 Subject: Add users muting. --- test/unit/specs/modules/users.spec.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'test/unit') diff --git a/test/unit/specs/modules/users.spec.js b/test/unit/specs/modules/users.spec.js index 07c71e32..812ba632 100644 --- a/test/unit/specs/modules/users.spec.js +++ b/test/unit/specs/modules/users.spec.js @@ -17,4 +17,18 @@ describe('The users module', () => { expect(state.users).to.eql([user]) expect(state.users[0].name).to.eql('Dude') }) + + it('sets a mute bit on users', () => { + const state = cloneDeep(defaultState) + const user = { id: 1, name: 'Guy' } + + mutations.addNewUsers(state, [user]) + mutations.setMuted(state, {user, muted: true}) + + expect(user.muted).to.eql(true) + + mutations.setMuted(state, {user, muted: false}) + + expect(user.muted).to.eql(false) + }) }) -- cgit v1.2.3-70-g09d2 From e892fffda797c4d5e6aef54a488f15f55526a29d Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Thu, 16 Feb 2017 12:51:24 +0100 Subject: Correctly calculate the newStatusesCount. Fixes a bug when viewing an updating twkn while logged in. --- src/modules/statuses.js | 6 ++++-- test/unit/specs/modules/statuses.spec.js | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) (limited to 'test/unit') diff --git a/src/modules/statuses.js b/src/modules/statuses.js index b1aa404a..871172b5 100644 --- a/src/modules/statuses.js +++ b/src/modules/statuses.js @@ -153,16 +153,18 @@ const addNewStatuses = (state, { statuses, showImmediately = false, timeline, us } } + // Decide if we should treat the status as new for this timeline. + let resultForCurrentTimeline // Some statuses should only be added to the global status repository. if (timeline && addToTimeline) { - mergeOrAdd(timelineObject.statuses, status) + resultForCurrentTimeline = mergeOrAdd(timelineObject.statuses, status) } if (timeline && showImmediately) { // Add it directly to the visibleStatuses, don't change // newStatusCount mergeOrAdd(timelineObject.visibleStatuses, status) - } else if (timeline && addToTimeline && result.new) { + } else if (timeline && addToTimeline && resultForCurrentTimeline.new) { // Just change newStatuscount timelineObject.newStatusCount += 1 } diff --git a/test/unit/specs/modules/statuses.spec.js b/test/unit/specs/modules/statuses.spec.js index c130cbf3..b1581e03 100644 --- a/test/unit/specs/modules/statuses.spec.js +++ b/test/unit/specs/modules/statuses.spec.js @@ -79,6 +79,24 @@ describe('The Statuses module', () => { expect(state.timelines.public.newStatusCount).to.equal(1) }) + it('counts the status as new if it has not been seen on this timeline', () => { + const state = cloneDeep(defaultState) + const status = makeMockStatus({id: 1}) + + mutations.addNewStatuses(state, { statuses: [status], timeline: 'public' }) + mutations.addNewStatuses(state, { statuses: [status], timeline: 'friends' }) + + expect(state.allStatuses).to.eql([status]) + expect(state.timelines.public.statuses).to.eql([status]) + expect(state.timelines.public.visibleStatuses).to.eql([]) + expect(state.timelines.public.newStatusCount).to.equal(1) + + expect(state.allStatuses).to.eql([status]) + expect(state.timelines.friends.statuses).to.eql([status]) + expect(state.timelines.friends.visibleStatuses).to.eql([]) + expect(state.timelines.friends.newStatusCount).to.equal(1) + }) + it('add the statuses to allStatuses if no timeline is given', () => { const state = cloneDeep(defaultState) const status = makeMockStatus({id: 1}) -- cgit v1.2.3-70-g09d2