|  |  |  | /* eslint-disable func-names  */ | 
					
						
							|  |  |  | /* eslint-disable import/no-extraneous-dependencies */ | 
					
						
							|  |  |  | // tslint:disable: await-promise
 | 
					
						
							|  |  |  | // tslint:disable: no-implicit-dependencies
 | 
					
						
							|  |  |  | // tslint:disable: no-invalid-this
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import path from 'path'; | 
					
						
							|  |  |  | import { afterEach, beforeEach, describe, it } from 'mocha'; | 
					
						
							|  |  |  | import { Common } from './common'; | 
					
						
							|  |  |  | import { Application } from 'spectron'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ConversationPage from './page-objects/conversation.page'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | describe('Message Functions', function() { | 
					
						
							|  |  |  |   this.timeout(60000); | 
					
						
							|  |  |  |   this.slow(20000); | 
					
						
							|  |  |  |   let app: Application; | 
					
						
							|  |  |  |   let app2: Application; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   beforeEach(async () => { | 
					
						
							|  |  |  |     await Common.killallElectron(); | 
					
						
							|  |  |  |     await Common.stopStubSnodeServer(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     [app, app2] = await Common.startAppsAsFriends(); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   afterEach(async () => { | 
					
						
							|  |  |  |     await Common.stopApp(app); | 
					
						
							|  |  |  |     await Common.killallElectron(); | 
					
						
							|  |  |  |     await Common.stopStubSnodeServer(); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   it('messageFunction: can send attachment', async () => { | 
					
						
							|  |  |  |     // create group and add new friend
 | 
					
						
							|  |  |  |     await Common.addFriendToNewClosedGroup([app, app2]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // send attachment from app1 to closed group
 | 
					
						
							|  |  |  |     const fileLocation = path.join(__dirname, 'test_attachment'); | 
					
						
							|  |  |  |     const messageText = 'test_attachment'; | 
					
						
							|  |  |  |     await Common.closeToast(app); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     await Common.sendMessage(app, messageText, fileLocation); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // validate attachment sent
 | 
					
						
							|  |  |  |     await app.client.waitForExist( | 
					
						
							|  |  |  |       ConversationPage.existingSendMessageText(messageText), | 
					
						
							|  |  |  |       3000 | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |     // validate attachment recieved
 | 
					
						
							|  |  |  |     await app2.client.waitForExist( | 
					
						
							|  |  |  |       ConversationPage.existingReceivedMessageText(messageText), | 
					
						
							|  |  |  |       5000 | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   it('messageFunction: can delete message', async () => { | 
					
						
							|  |  |  |     // create group and add new friend
 | 
					
						
							|  |  |  |     await Common.addFriendToNewClosedGroup([app, app2]); | 
					
						
							|  |  |  |     const messageText = 'delete_me'; | 
					
						
							|  |  |  |     await Common.sendMessage(app, messageText); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     await app.client.waitForExist( | 
					
						
							|  |  |  |       ConversationPage.existingSendMessageText(messageText), | 
					
						
							|  |  |  |       6000 | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |     await app2.client.waitForExist( | 
					
						
							|  |  |  |       ConversationPage.existingReceivedMessageText(messageText), | 
					
						
							|  |  |  |       7000 | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // delete message in context menu
 | 
					
						
							|  |  |  |     await app.client | 
					
						
							|  |  |  |       .element(ConversationPage.messageCtxMenu(messageText)) | 
					
						
							|  |  |  |       .click(); | 
					
						
							|  |  |  |     await app.client.element(ConversationPage.deleteMessageCtxButton).click(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // delete message from modal
 | 
					
						
							|  |  |  |     await app.client.waitForExist( | 
					
						
							|  |  |  |       ConversationPage.deleteMessageModalButton, | 
					
						
							|  |  |  |       5000 | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |     await app.client.element(ConversationPage.deleteMessageModalButton).click(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // verify the message is actually deleted
 | 
					
						
							|  |  |  |     await app.client.isExisting( | 
					
						
							|  |  |  |       ConversationPage.existingSendMessageText(messageText) | 
					
						
							|  |  |  |     ).should.eventually.be.false; | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | }); |