mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-09-21 15:56:10 +08:00
fix(labels): Re-order so adding/removing same label does nothing
This commit is contained in:
parent
eb5b849a03
commit
8a40af6830
|
@ -145,12 +145,12 @@ describe "ChangeLabelsTask", ->
|
|||
out = task.changesToModel(testThreads['t3'])
|
||||
expect(out).toEqual(labels: [testLabels['l3']])
|
||||
|
||||
it 'properly adds and removes labels', ->
|
||||
it 'properly adds and removes labels, ignoring labels that are both added and removed', ->
|
||||
task = new ChangeLabelsTask
|
||||
labelsToAdd: [testLabels['l1'], testLabels['l2']]
|
||||
labelsToRemove: [testLabels['l2'], testLabels['l3']]
|
||||
out = task.changesToModel(testThreads['t1'])
|
||||
expect(out).toEqual(labels: [testLabels['l1']])
|
||||
expect(out).toEqual(labels: [testLabels['l1'], testLabels['l2']])
|
||||
|
||||
it 'should return an == array of labels when no changes have occurred', ->
|
||||
thread = new Thread(id: '1', categories: [testLabels['l2'], testLabels['l3'], testLabels['l1']])
|
||||
|
|
|
@ -75,8 +75,8 @@ class ChangeLabelsTask extends ChangeMailTask
|
|||
changesToModel: (model) ->
|
||||
labelsToRemoveIds = _.pluck(@labelsToRemove, 'id')
|
||||
|
||||
labels = [].concat(model.labels, @labelsToAdd)
|
||||
labels = _.reject labels, (label) -> label.id in labelsToRemoveIds
|
||||
labels = _.reject model.labels, (label) -> label.id in labelsToRemoveIds
|
||||
labels = labels.concat(@labelsToAdd)
|
||||
labels = _.uniq labels, false, (label) -> label.id
|
||||
{labels}
|
||||
|
||||
|
|
Loading…
Reference in a new issue