GODT-1817: Update IMAP commands to push errors to error stack

This commit is contained in:
Leander Beernaert
2022-12-21 14:29:42 +01:00
parent 038b5d1437
commit 28b36d379b
3 changed files with 21 additions and 7 deletions

View File

@ -14,6 +14,7 @@ Feature: IMAP remove messages from mailbox
Scenario: Mark message as deleted and EXPUNGE Scenario: Mark message as deleted and EXPUNGE
When IMAP client "1" selects "Folders/mbox" When IMAP client "1" selects "Folders/mbox"
And IMAP client "1" marks message 2 as deleted And IMAP client "1" marks message 2 as deleted
And it succeeds
Then IMAP client "1" sees that message 2 has the flag "\Deleted" Then IMAP client "1" sees that message 2 has the flag "\Deleted"
When IMAP client "1" expunges When IMAP client "1" expunges
And it succeeds And it succeeds
@ -29,8 +30,11 @@ Feature: IMAP remove messages from mailbox
Scenario: Mark messages as undeleted and EXPUNGE Scenario: Mark messages as undeleted and EXPUNGE
When IMAP client "1" selects "Folders/mbox" When IMAP client "1" selects "Folders/mbox"
And IMAP client "1" marks all messages as deleted And IMAP client "1" marks all messages as deleted
And it succeeds
But IMAP client "1" marks message 2 as not deleted But IMAP client "1" marks message 2 as not deleted
And it succeeds
And IMAP client "1" marks message 3 as not deleted And IMAP client "1" marks message 3 as not deleted
And it succeeds
When IMAP client "1" expunges When IMAP client "1" expunges
And it succeeds And it succeeds
Then IMAP client "1" sees 2 messages in "Folders/mbox" Then IMAP client "1" sees 2 messages in "Folders/mbox"
@ -38,5 +42,6 @@ Feature: IMAP remove messages from mailbox
Scenario: Not possible to delete from All Mail and expunge does nothing Scenario: Not possible to delete from All Mail and expunge does nothing
When IMAP client "1" selects "All Mail" When IMAP client "1" selects "All Mail"
And IMAP client "1" marks message 2 as deleted And IMAP client "1" marks message 2 as deleted
And it succeeds
And IMAP client "1" expunges And IMAP client "1" expunges
Then it fails Then it fails

View File

@ -11,6 +11,7 @@ Feature: IMAP Draft messages
This is a dra This is a dra
""" """
And it succeeds
Then IMAP client "1" eventually sees the following messages in "Drafts": Then IMAP client "1" eventually sees the following messages in "Drafts":
| body | | body |
| This is a dra | | This is a dra |

View File

@ -312,7 +312,7 @@ func (s *scenario) imapClientMarksMessageAsDeleted(clientID string, seq int) err
_, client := s.t.getIMAPClient(clientID) _, client := s.t.getIMAPClient(clientID)
if _, err := clientStore(client, seq, seq, false, imap.FormatFlagsOp(imap.AddFlags, true), imap.DeletedFlag); err != nil { if _, err := clientStore(client, seq, seq, false, imap.FormatFlagsOp(imap.AddFlags, true), imap.DeletedFlag); err != nil {
return err s.t.pushError(err)
} }
return nil return nil
@ -327,7 +327,7 @@ func (s *scenario) imapClientMarksTheMessageWithSubjectAsDeleted(clientID, subje
} }
if _, err := clientStore(client, int(uid), int(uid), true, imap.FormatFlagsOp(imap.AddFlags, true), imap.DeletedFlag); err != nil { if _, err := clientStore(client, int(uid), int(uid), true, imap.FormatFlagsOp(imap.AddFlags, true), imap.DeletedFlag); err != nil {
return err s.t.pushError(err)
} }
return nil return nil
@ -338,7 +338,7 @@ func (s *scenario) imapClientMarksMessageAsNotDeleted(clientID string, seq int)
_, err := clientStore(client, seq, seq, false, imap.FormatFlagsOp(imap.RemoveFlags, true), imap.DeletedFlag) _, err := clientStore(client, seq, seq, false, imap.FormatFlagsOp(imap.RemoveFlags, true), imap.DeletedFlag)
if err != nil { if err != nil {
return err s.t.pushError(err)
} }
return nil return nil
@ -349,7 +349,7 @@ func (s *scenario) imapClientMarksAllMessagesAsDeleted(clientID string) error {
_, err := clientStore(client, 1, int(client.Mailbox().Messages), false, imap.FormatFlagsOp(imap.AddFlags, true), imap.DeletedFlag) _, err := clientStore(client, 1, int(client.Mailbox().Messages), false, imap.FormatFlagsOp(imap.AddFlags, true), imap.DeletedFlag)
if err != nil { if err != nil {
return err s.t.pushError(err)
} }
return nil return nil
@ -385,7 +385,11 @@ func (s *scenario) imapClientExpunges(clientID string) error {
func (s *scenario) imapClientAppendsTheFollowingMessageToMailbox(clientID string, mailbox string, docString *godog.DocString) error { func (s *scenario) imapClientAppendsTheFollowingMessageToMailbox(clientID string, mailbox string, docString *godog.DocString) error {
_, client := s.t.getIMAPClient(clientID) _, client := s.t.getIMAPClient(clientID)
return clientAppend(client, mailbox, docString.Content) if err := clientAppend(client, mailbox, docString.Content); err != nil {
s.t.pushError(err)
}
return nil
} }
func (s *scenario) imapClientAppendsTheFollowingMessagesToMailbox(clientID string, mailbox string, table *godog.Table) error { func (s *scenario) imapClientAppendsTheFollowingMessagesToMailbox(clientID string, mailbox string, table *godog.Table) error {
@ -398,7 +402,7 @@ func (s *scenario) imapClientAppendsTheFollowingMessagesToMailbox(clientID strin
for _, message := range messages { for _, message := range messages {
if err := clientAppend(client, mailbox, string(message.Build())); err != nil { if err := clientAppend(client, mailbox, string(message.Build())); err != nil {
return err s.t.pushError(err)
} }
} }
@ -413,7 +417,11 @@ func (s *scenario) imapClientAppendsToMailbox(clientID string, file, mailbox str
return err return err
} }
return clientAppend(client, mailbox, string(b)) if err := clientAppend(client, mailbox, string(b)); err != nil {
s.t.pushError(err)
}
return nil
} }
func (s *scenario) imapClientsMoveMessageSeqOfUserFromToByOrderedOperations(sourceIMAPClient, targetIMAPClient, messageSeq, bddUserID, targetMailboxName, op1, op2, op3 string) error { func (s *scenario) imapClientsMoveMessageSeqOfUserFromToByOrderedOperations(sourceIMAPClient, targetIMAPClient, messageSeq, bddUserID, targetMailboxName, op1, op2, op3 string) error {