|  |  |  | /* eslint-disable func-names  */ | 
					
						
							|  |  |  | /* eslint-disable import/no-extraneous-dependencies */ | 
					
						
							|  |  |  | const { afterEach, beforeEach, describe, it } = require('mocha'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const common = require('./common'); | 
					
						
							|  |  |  | const ConversationPage = require('./page-objects/conversation.page'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | describe('Open groups', function() { | 
					
						
							|  |  |  |   let app; | 
					
						
							|  |  |  |   this.timeout(40000); | 
					
						
							|  |  |  |   this.slow(15000); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   beforeEach(async () => { | 
					
						
							|  |  |  |     await common.killallElectron(); | 
					
						
							|  |  |  |     const login = { | 
					
						
							|  |  |  |       mnemonic: common.TEST_MNEMONIC1, | 
					
						
							|  |  |  |       displayName: common.TEST_DISPLAY_NAME1, | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |     app = await common.startAndStub(login); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   afterEach(async () => { | 
					
						
							|  |  |  |     await common.killallElectron(); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   it('openGroup: works with valid open group url', async () => { | 
					
						
							|  |  |  |     await common.joinOpenGroup( | 
					
						
							|  |  |  |       app, | 
					
						
							|  |  |  |       common.VALID_GROUP_URL, | 
					
						
							|  |  |  |       common.VALID_GROUP_NAME | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   it('openGroup: cannot join two times the same open group', async () => { | 
					
						
							|  |  |  |     await common.joinOpenGroup( | 
					
						
							|  |  |  |       app, | 
					
						
							|  |  |  |       common.VALID_GROUP_URL2, | 
					
						
							|  |  |  |       common.VALID_GROUP_NAME2 | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // adding a second time the same open group
 | 
					
						
							|  |  |  |     await app.client | 
					
						
							|  |  |  |       .element(ConversationPage.conversationButtonSection) | 
					
						
							|  |  |  |       .click(); | 
					
						
							|  |  |  |     await app.client.element(ConversationPage.joinOpenGroupButton).click(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     await common.setValueWrapper( | 
					
						
							|  |  |  |       app, | 
					
						
							|  |  |  |       ConversationPage.openGroupInputUrl, | 
					
						
							|  |  |  |       common.VALID_GROUP_URL2 | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |     await app.client.element(ConversationPage.joinOpenGroupButton).click(); | 
					
						
							|  |  |  |     // validate session loader is not shown
 | 
					
						
							|  |  |  |     await app.client.isExisting(ConversationPage.sessionLoader).should | 
					
						
							|  |  |  |       .eventually.be.false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     await app.client.waitForExist( | 
					
						
							|  |  |  |       ConversationPage.sessionToastJoinOpenGroupAlreadyExist, | 
					
						
							|  |  |  |       1 * 1000 | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // validate overlay is still opened
 | 
					
						
							|  |  |  |     await app.client.isExisting(ConversationPage.leftPaneOverlay).should | 
					
						
							|  |  |  |       .eventually.be.true; | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   it('openGroup: can send message to open group', async () => { | 
					
						
							|  |  |  |     // join dev-chat group
 | 
					
						
							|  |  |  |     await app.client | 
					
						
							|  |  |  |       .element(ConversationPage.conversationButtonSection) | 
					
						
							|  |  |  |       .click(); | 
					
						
							|  |  |  |     await app.client.element(ConversationPage.joinOpenGroupButton).click(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     await common.setValueWrapper( | 
					
						
							|  |  |  |       app, | 
					
						
							|  |  |  |       ConversationPage.openGroupInputUrl, | 
					
						
							|  |  |  |       common.VALID_GROUP_URL2 | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |     await app.client.element(ConversationPage.joinOpenGroupButton).click(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // wait for toast to appear
 | 
					
						
							|  |  |  |     await app.client.waitForExist( | 
					
						
							|  |  |  |       ConversationPage.sessionToastJoinOpenGroupSuccess, | 
					
						
							|  |  |  |       30 * 1000 | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |     await common.timeout(5 * 1000); // wait for toast to clear
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     await app.client.waitForExist( | 
					
						
							|  |  |  |       ConversationPage.rowOpenGroupConversationName(common.VALID_GROUP_NAME2), | 
					
						
							|  |  |  |       10 * 1000 | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |     // generate a message containing the current timestamp so we can find it in the list of messages
 | 
					
						
							|  |  |  |     const textMessage = common.generateSendMessageText(); | 
					
						
							|  |  |  |     await app.client | 
					
						
							|  |  |  |       .element(ConversationPage.conversationButtonSection) | 
					
						
							|  |  |  |       .click(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     await app.client.isExisting( | 
					
						
							|  |  |  |       ConversationPage.rowOpenGroupConversationName(common.VALID_GROUP_NAME2) | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     await app.client | 
					
						
							|  |  |  |       .element( | 
					
						
							|  |  |  |         ConversationPage.rowOpenGroupConversationName(common.VALID_GROUP_NAME2) | 
					
						
							|  |  |  |       ) | 
					
						
							|  |  |  |       .click(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     await common.setValueWrapper( | 
					
						
							|  |  |  |       app, | 
					
						
							|  |  |  |       ConversationPage.sendMessageTextarea, | 
					
						
							|  |  |  |       textMessage | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |     await app.client | 
					
						
							|  |  |  |       .element(ConversationPage.sendMessageTextarea) | 
					
						
							|  |  |  |       .getValue() | 
					
						
							|  |  |  |       .should.eventually.equal(textMessage); | 
					
						
							|  |  |  |     // allow some time to fetch some messages
 | 
					
						
							|  |  |  |     await common.timeout(3000); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // send the message
 | 
					
						
							|  |  |  |     await app.client.keys('Enter'); | 
					
						
							|  |  |  |     await common.timeout(5000); | 
					
						
							|  |  |  |     // validate that the message has been added to the message list view
 | 
					
						
							|  |  |  |     await app.client.waitForExist( | 
					
						
							|  |  |  |       ConversationPage.existingSendMessageText(textMessage), | 
					
						
							|  |  |  |       3 * 1000 | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |     // we should validate that the message has been added effectively sent
 | 
					
						
							|  |  |  |     // (checking the check icon on the metadata part of the message?)
 | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | }); |