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'])
|
out = task.changesToModel(testThreads['t3'])
|
||||||
expect(out).toEqual(labels: [testLabels['l3']])
|
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
|
task = new ChangeLabelsTask
|
||||||
labelsToAdd: [testLabels['l1'], testLabels['l2']]
|
labelsToAdd: [testLabels['l1'], testLabels['l2']]
|
||||||
labelsToRemove: [testLabels['l2'], testLabels['l3']]
|
labelsToRemove: [testLabels['l2'], testLabels['l3']]
|
||||||
out = task.changesToModel(testThreads['t1'])
|
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', ->
|
it 'should return an == array of labels when no changes have occurred', ->
|
||||||
thread = new Thread(id: '1', categories: [testLabels['l2'], testLabels['l3'], testLabels['l1']])
|
thread = new Thread(id: '1', categories: [testLabels['l2'], testLabels['l3'], testLabels['l1']])
|
||||||
|
|
|
@ -75,8 +75,8 @@ class ChangeLabelsTask extends ChangeMailTask
|
||||||
changesToModel: (model) ->
|
changesToModel: (model) ->
|
||||||
labelsToRemoveIds = _.pluck(@labelsToRemove, 'id')
|
labelsToRemoveIds = _.pluck(@labelsToRemove, 'id')
|
||||||
|
|
||||||
labels = [].concat(model.labels, @labelsToAdd)
|
labels = _.reject model.labels, (label) -> label.id in labelsToRemoveIds
|
||||||
labels = _.reject labels, (label) -> label.id in labelsToRemoveIds
|
labels = labels.concat(@labelsToAdd)
|
||||||
labels = _.uniq labels, false, (label) -> label.id
|
labels = _.uniq labels, false, (label) -> label.id
|
||||||
{labels}
|
{labels}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue