From 28b36d379b90ec3dfbd696b7bd176e8e5415344d Mon Sep 17 00:00:00 2001 From: Leander Beernaert Date: Wed, 21 Dec 2022 14:29:42 +0100 Subject: [PATCH] GODT-1817: Update IMAP commands to push errors to error stack --- tests/features/imap/message/delete.feature | 5 +++++ tests/features/imap/message/drafts.feature | 1 + tests/imap_test.go | 22 +++++++++++++++------- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/tests/features/imap/message/delete.feature b/tests/features/imap/message/delete.feature index bb76526f..39fefe1d 100644 --- a/tests/features/imap/message/delete.feature +++ b/tests/features/imap/message/delete.feature @@ -14,6 +14,7 @@ Feature: IMAP remove messages from mailbox Scenario: Mark message as deleted and EXPUNGE When IMAP client "1" selects "Folders/mbox" And IMAP client "1" marks message 2 as deleted + And it succeeds Then IMAP client "1" sees that message 2 has the flag "\Deleted" When IMAP client "1" expunges And it succeeds @@ -29,8 +30,11 @@ Feature: IMAP remove messages from mailbox Scenario: Mark messages as undeleted and EXPUNGE When IMAP client "1" selects "Folders/mbox" And IMAP client "1" marks all messages as deleted + And it succeeds But IMAP client "1" marks message 2 as not deleted + And it succeeds And IMAP client "1" marks message 3 as not deleted + And it succeeds When IMAP client "1" expunges And it succeeds 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 When IMAP client "1" selects "All Mail" And IMAP client "1" marks message 2 as deleted + And it succeeds And IMAP client "1" expunges Then it fails \ No newline at end of file diff --git a/tests/features/imap/message/drafts.feature b/tests/features/imap/message/drafts.feature index fd1b2168..9b467fca 100644 --- a/tests/features/imap/message/drafts.feature +++ b/tests/features/imap/message/drafts.feature @@ -11,6 +11,7 @@ Feature: IMAP Draft messages This is a dra """ + And it succeeds Then IMAP client "1" eventually sees the following messages in "Drafts": | body | | This is a dra | diff --git a/tests/imap_test.go b/tests/imap_test.go index f7707d1c..5e7eb442 100644 --- a/tests/imap_test.go +++ b/tests/imap_test.go @@ -312,7 +312,7 @@ func (s *scenario) imapClientMarksMessageAsDeleted(clientID string, seq int) err _, client := s.t.getIMAPClient(clientID) if _, err := clientStore(client, seq, seq, false, imap.FormatFlagsOp(imap.AddFlags, true), imap.DeletedFlag); err != nil { - return err + s.t.pushError(err) } 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 { - return err + s.t.pushError(err) } 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) if err != nil { - return err + s.t.pushError(err) } 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) if err != nil { - return err + s.t.pushError(err) } 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 { _, 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 { @@ -398,7 +402,7 @@ func (s *scenario) imapClientAppendsTheFollowingMessagesToMailbox(clientID strin for _, message := range messages { 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 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 {