You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			122 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			TypeScript
		
	
			
		
		
	
	
			122 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			TypeScript
		
	
/* eslint-disable import/no-extraneous-dependencies */
 | 
						|
// tslint:disable: await-promise
 | 
						|
// tslint:disable: no-implicit-dependencies
 | 
						|
// tslint:disable: no-invalid-this
 | 
						|
 | 
						|
import { after, before, describe, it } from 'mocha';
 | 
						|
import { Common } from './common';
 | 
						|
import { Application } from 'spectron';
 | 
						|
 | 
						|
import SettingsPage from './page-objects/settings.page';
 | 
						|
import CommonPage from './page-objects/common.page';
 | 
						|
 | 
						|
// Generate random password
 | 
						|
// tslint:disable-next-line: insecure-random
 | 
						|
const password = Math.random()
 | 
						|
  .toString(36)
 | 
						|
  .substr(2, 8);
 | 
						|
const passwordInputID = 'password-modal-input';
 | 
						|
 | 
						|
describe('Settings', function() {
 | 
						|
  this.timeout(60000);
 | 
						|
  this.slow(20000);
 | 
						|
  let app: Application;
 | 
						|
 | 
						|
  before(async () => {
 | 
						|
    await Common.killallElectron();
 | 
						|
    await Common.stopStubSnodeServer();
 | 
						|
 | 
						|
    const appProps = {
 | 
						|
      recoveryPhrase: Common.TEST_RECOVERY_PHRASE_1,
 | 
						|
      displayName: Common.TEST_DISPLAY_NAME1,
 | 
						|
    };
 | 
						|
 | 
						|
    app = await Common.startAndStub(appProps);
 | 
						|
  });
 | 
						|
 | 
						|
  after(async () => {
 | 
						|
    await Common.stopApp(app);
 | 
						|
    await Common.killallElectron();
 | 
						|
    await Common.stopStubSnodeServer();
 | 
						|
  });
 | 
						|
 | 
						|
  it('settings: 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('settings: 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('settings: 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;
 | 
						|
  });
 | 
						|
});
 |