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.
session-desktop/ts/test/session/integration/settings_itest.ts

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 = {
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('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;
});
});