|  |  |  | /* eslint-disable prefer-destructuring */ | 
					
						
							|  |  |  | /* eslint-disable more/no-then */ | 
					
						
							|  |  |  | /* eslint-disable func-names  */ | 
					
						
							|  |  |  | /* eslint-disable import/no-extraneous-dependencies */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const { after, before, describe, it } = require('mocha'); | 
					
						
							|  |  |  | const common = require('./common'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const SettingsPage = require('./page-objects/settings.page'); | 
					
						
							|  |  |  | const CommonPage = require('./page-objects/common.page'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Generate random password
 | 
					
						
							|  |  |  | const password = Math.random() | 
					
						
							|  |  |  |   .toString(36) | 
					
						
							|  |  |  |   .substr(2, 8); | 
					
						
							|  |  |  | const passwordInputID = 'password-modal-input'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | describe('Settings', function() { | 
					
						
							|  |  |  |   let app; | 
					
						
							|  |  |  |   this.timeout(60000); | 
					
						
							|  |  |  |   this.slow(15000); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   before(async () => { | 
					
						
							|  |  |  |     await common.killallElectron(); | 
					
						
							|  |  |  |     await common.stopStubSnodeServer(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const appProps = { | 
					
						
							|  |  |  |       mnemonic: common.TEST_MNEMONIC1, | 
					
						
							|  |  |  |       displayName: common.TEST_DISPLAY_NAME1, | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     app = await common.startAndStub(appProps); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   after(async () => { | 
					
						
							|  |  |  |     await common.stopApp(app); | 
					
						
							|  |  |  |     await common.killallElectron(); | 
					
						
							|  |  |  |     await common.stopStubSnodeServer(); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   it('can toggle menubar', async () => { | 
					
						
							|  |  |  |     const menuBarVisible = await app.browserWindow.isMenuBarVisible(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     await app.client.element(SettingsPage.settingsButtonSection).click(); | 
					
						
							|  |  |  |     await app.client | 
					
						
							|  |  |  |       .element(SettingsPage.settingToggleWithText('Hide Menu Bar')) | 
					
						
							|  |  |  |       .click(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Confirm that toggling works
 | 
					
						
							|  |  |  |     const menuBarToggled = await app.browserWindow.isMenuBarVisible(); | 
					
						
							|  |  |  |     menuBarToggled.should.equal(!menuBarVisible); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   it('can set password', async () => { | 
					
						
							|  |  |  |     await app.client | 
					
						
							|  |  |  |       .element(SettingsPage.settingsRowWithText('Privacy')) | 
					
						
							|  |  |  |       .click(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     await app.client | 
					
						
							|  |  |  |       .element(SettingsPage.settingButtonWithText('Set Password')) | 
					
						
							|  |  |  |       .click(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     await common.setValueWrapper( | 
					
						
							|  |  |  |       app, | 
					
						
							|  |  |  |       CommonPage.inputWithId(passwordInputID), | 
					
						
							|  |  |  |       password | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |     await common.setValueWrapper( | 
					
						
							|  |  |  |       app, | 
					
						
							|  |  |  |       CommonPage.inputWithId(`${passwordInputID}-confirm`), | 
					
						
							|  |  |  |       password | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     await app.client.keys('Enter'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Verify password set
 | 
					
						
							|  |  |  |     await app.client.waitForExist( | 
					
						
							|  |  |  |       CommonPage.toastWithText('Set Password'), | 
					
						
							|  |  |  |       2000 | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     await common.closeToast(app); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   it('can remove password', async () => { | 
					
						
							|  |  |  |     // Enter password to unlock settings
 | 
					
						
							|  |  |  |     await common.setValueWrapper( | 
					
						
							|  |  |  |       app, | 
					
						
							|  |  |  |       CommonPage.inputWithId('password-lock-input'), | 
					
						
							|  |  |  |       password | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     await app.client.keys('Enter'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Remove password
 | 
					
						
							|  |  |  |     await app.client | 
					
						
							|  |  |  |       .element(SettingsPage.settingButtonWithText('Remove Password')) | 
					
						
							|  |  |  |       .click(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     await common.setValueWrapper( | 
					
						
							|  |  |  |       app, | 
					
						
							|  |  |  |       CommonPage.inputWithId(passwordInputID), | 
					
						
							|  |  |  |       password | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     await app.client.keys('Enter'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Verify password removed with toast
 | 
					
						
							|  |  |  |     await app.client.waitForExist( | 
					
						
							|  |  |  |       CommonPage.toastWithText('Removed Password'), | 
					
						
							|  |  |  |       2000 | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Verify password actully removed
 | 
					
						
							|  |  |  |     await app.client.isExisting( | 
					
						
							|  |  |  |       CommonPage.divWithClass('session-settings__password-lock') | 
					
						
							|  |  |  |     ).should.eventually.be.false; | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | }); |