test: set sent label properly

This commit is contained in:
James Houlahan
2020-07-03 08:22:28 +02:00
parent 10e384f4df
commit b25baa2524
3 changed files with 17 additions and 8 deletions

View File

@ -523,14 +523,7 @@ func updateMessage(msgLog *logrus.Entry, message *pmapi.Message, updates *pmapi.
message.LabelIDs = updates.LabelIDs message.LabelIDs = updates.LabelIDs
} else { } else {
for _, added := range updates.LabelIDsAdded { for _, added := range updates.LabelIDsAdded {
hasLabel := false if !message.HasLabelID(added) {
for _, l := range message.LabelIDs {
if added == l {
hasLabel = true
break
}
}
if !hasLabel {
msgLog.WithField("added", added).Trace("Adding label to message") msgLog.WithField("added", added).Trace("Adding label to message")
message.LabelIDs = append(message.LabelIDs, added) message.LabelIDs = append(message.LabelIDs, added)
} }

View File

@ -241,6 +241,16 @@ func (m *Message) IsDraft() bool {
return (m.Flags & (FlagReceived | FlagSent)) == 0 return (m.Flags & (FlagReceived | FlagSent)) == 0
} }
// HasLabelID returns whether the message has the `labelID`.
func (m *Message) HasLabelID(labelID string) bool {
for _, l := range m.LabelIDs {
if l == labelID {
return true
}
}
return false
}
func (m *Message) IsBodyEncrypted() bool { func (m *Message) IsBodyEncrypted() bool {
trimmedBody := strings.TrimSpace(m.Body) trimmedBody := strings.TrimSpace(m.Body)
return strings.HasPrefix(trimmedBody, MessageHeader) && return strings.HasPrefix(trimmedBody, MessageHeader) &&

View File

@ -81,11 +81,17 @@ func thereAreMessagesInMailboxesForAddressOfUser(mailboxNames, bddAddressID, bdd
if err != nil { if err != nil {
return internalError(err, "getting labels %s for %s", mailboxNames, account.Username()) return internalError(err, "getting labels %s for %s", mailboxNames, account.Username())
} }
message := &pmapi.Message{ message := &pmapi.Message{
MIMEType: "text/plain", MIMEType: "text/plain",
LabelIDs: labelIDs, LabelIDs: labelIDs,
AddressID: account.AddressID(), AddressID: account.AddressID(),
} }
if message.HasLabelID(pmapi.SentLabel) {
message.Flags |= pmapi.FlagSent
}
for n, cell := range messages.Rows[i].Cells { for n, cell := range messages.Rows[i].Cells {
switch head[n].Value { switch head[n].Value {
case "from": case "from":