@@ -677,8 +677,8 @@ describe('Update data email to Email Table:', () => {
677677describe ( 'Delete emails from Email Table:' , ( ) => {
678678 it ( 'Should delete email from DB by key' , async ( ) => {
679679 const keysToDelete = [ emailSpam . email . key ] ;
680- const result = await DBManager . deleteEmailByKeys ( keysToDelete ) ;
681- expect ( result ) . toBe ( 1 ) ;
680+ await DBManager . deleteEmailByKeys ( keysToDelete ) ;
681+
682682 const [ email ] = await DBManager . getEmailByKey ( emailSpam . email . key ) ;
683683 expect ( email ) . toBeUndefined ( ) ;
684684 } ) ;
@@ -695,6 +695,91 @@ describe('Delete emails from Email Table:', () => {
695695 expect ( result ) . toBe ( 1 ) ;
696696 } ) ;
697697
698+ it ( 'Should delete email from DB by key, its emailLabel, emailContact, its files and feeds' , async ( ) => {
699+ const emailToDelete = {
700+ email : {
701+ threadId : 'threadZ' ,
702+ key : '30' ,
703+ subject : 'A email to delete' ,
704+ content : '<p>A email to delete</p>' ,
705+ preview : 'A email to delete' ,
706+ date : '2019-11-14 08:23:19.120' ,
707+ status : 0 ,
708+ unread : true ,
709+ secure : true ,
710+ unsentDate : '2019-12-14 08:23:30.000' ,
711+ messageId : 'messageIdZ' ,
712+ fromAddress :
'User Z <[email protected] >' 713+ } ,
714+ recipients : {
715+ from :
[ 'User Z <[email protected] >' ] , 716+ to : Array ( 400 )
717+ . fill ( )
718+ . map ( ( e , i ) => `fake${ i } @faker.com` ) ,
719+ 720+ 721+ } ,
722+ labels : [ 1 ] ,
723+ files : [
724+ {
725+ token : 'tokenZ' ,
726+ name : 'Criptext_Image_2018_06_14.png' ,
727+ readOnly : false ,
728+ size : 183241 ,
729+ status : 1 ,
730+ date : '2018-06-14T23:45:57.466Z' ,
731+ mimeType : 'image/png'
732+ }
733+ ]
734+ } ;
735+
736+ const theEmail = await DBManager . createEmail ( emailToDelete ) ; //this create emailLabel, emailContact, and files
737+
738+ const feeditem = {
739+ date : '2018-06-14 08:23:19.120' ,
740+ type : 7 ,
741+ emailId : theEmail . id ,
742+ contactId : 1
743+ } ;
744+
745+ const feedItemCreated = await DBManager . createFeedItem ( feeditem ) ;
746+ expect ( feedItemCreated ) . toHaveProperty ( 'contactId' ) ;
747+ expect ( feedItemCreated ) . toHaveProperty ( 'emailId' ) ;
748+
749+ const keyToDelete = [ emailToDelete . email . key ] ;
750+ const emailContactExist = await DBManager . getContactsByEmailId ( theEmail . id ) ;
751+ expect ( emailContactExist . to ) . not . toHaveLength ( 0 ) ;
752+ expect ( emailContactExist . cc ) . not . toHaveLength ( 0 ) ;
753+ expect ( emailContactExist . bcc ) . not . toHaveLength ( 0 ) ;
754+ expect ( emailContactExist . from ) . not . toHaveLength ( 0 ) ;
755+ const emailLabelsExist = await DBManager . getEmailLabelsByEmailId (
756+ theEmail . id
757+ ) ;
758+ expect ( emailLabelsExist ) . not . toHaveLength ( 0 ) ;
759+ const filesExist = await DBManager . getFilesByEmailId ( theEmail . id ) ;
760+ expect ( filesExist ) . not . toHaveLength ( 0 ) ;
761+ await DBManager . deleteEmailByKeys ( keyToDelete ) ;
762+
763+ const [ email ] = await DBManager . getEmailByKey ( emailToDelete . email . key ) ;
764+ expect ( email ) . toBeUndefined ( ) ;
765+
766+ const feedItemsDeleted = await DBManager . getAllFeedItems ( ) ;
767+ expect ( feedItemsDeleted ) . toHaveLength ( 0 ) ;
768+ const emailContactDeleted = await DBManager . getContactsByEmailId (
769+ theEmail . id
770+ ) ;
771+ expect ( emailContactDeleted . to ) . toHaveLength ( 0 ) ;
772+ expect ( emailContactDeleted . cc ) . toHaveLength ( 0 ) ;
773+ expect ( emailContactDeleted . bcc ) . toHaveLength ( 0 ) ;
774+ expect ( emailContactDeleted . from ) . toHaveLength ( 0 ) ;
775+ const emailLabelDeleted = await DBManager . getEmailLabelsByEmailId (
776+ theEmail . id
777+ ) ;
778+ expect ( emailLabelDeleted ) . toHaveLength ( 0 ) ;
779+ const filesExistDeleted = await DBManager . getFilesByEmailId ( theEmail . id ) ;
780+ expect ( filesExistDeleted ) . toHaveLength ( 0 ) ;
781+ } ) ;
782+
698783 it ( 'Should not delete emails from DB by ids' , async ( ) => {
699784 const idsToDelete = [ emailIdToDelete ] ;
700785 const result = await DBManager . deleteEmailsByIds ( idsToDelete ) ;
0 commit comments