Skip to content

Commit 00eda07

Browse files
Merge pull request #65 from aquality-automation/feature/fix_audits_feature_cannot_be_disabled
Feature/fix audits feature cannot be disabled
2 parents c5be8fe + b72f1c7 commit 00eda07

File tree

9 files changed

+60
-19
lines changed

9 files changed

+60
-19
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Bugfixes:
1111
- It should not be possible to delete Customer that assigned to the projects -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/9)
1212
- Link "View on Aquality Tracking" in report email is broken -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/30)
1313
- Link from the audit email notification is invalid -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/13)
14+
- Audits feature is visible when disabled -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/24)
1415
- All available test are shown in tests list after updating Suite for some test -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/27)
1516

1617
## 0.3.3 (2019-11-16)

e2e/elements/menuBar.element/index.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
import { by, element } from 'protractor';
1+
import { by, element, promise } from 'protractor';
22
import { CreateOptions } from './create.options';
33
import { TestsOptions } from './tests.options';
44
import { UserOptions } from './user.options';
55
import { AuditsOptions } from './audits.options';
66

77
export class MenuBar {
8+
private auditsButton = element(by.css('#Audits > a'));
9+
810
clickLogo() {
911
return element(by.css('.navbar-brand')).click();
1012
}
@@ -28,7 +30,7 @@ export class MenuBar {
2830
}
2931

3032
async audits() {
31-
await element(by.css('#Audits > a')).click();
33+
await this.auditsButton.click();
3234
return new AuditsOptions();
3335
}
3436

@@ -54,4 +56,8 @@ export class MenuBar {
5456
await element(by.id('user-mb')).click();
5557
return new UserOptions();
5658
}
59+
60+
isAuditTabExists(): promise.Promise<boolean> {
61+
return this.auditsButton.isPresent();
62+
}
5763
}

e2e/pages/administration/appSettings.po/constants.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
import { by, element } from 'protractor';
22
import { Input } from '../../../elements/input.element';
33
import { LargeTextContainer } from '../../../elements/largeTextContainer';
4+
import { UiSwitch } from '../../../elements/ui-switch';
45

56
export const baseUrl = '#/administration/global/appSettings';
67

78
export const elements = {
89
uniqueElement: element(by.css('#app-settings-administration.active')),
910
defaultEmailPattern: new Input(by.id('defaultEmailPattern')),
1011
defaultEmailPatternhint: new LargeTextContainer(by.id('defaultEmailPatternHint')),
11-
saveEmailSettings: element(by.id('saveEmailSettings'))
12+
saveEmailSettings: element(by.id('saveEmailSettings')),
13+
saveGeneralSettings: element(by.id('save-general')),
14+
auditsModuleSwitch: new UiSwitch(by.id('audits-module'))
1215
};
1316

1417
export const names = {

e2e/pages/administration/appSettings.po/index.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,16 @@ export class AppSettings extends AdministrationBase {
3030
toggleHint() {
3131
return elements.defaultEmailPatternhint.toggle();
3232
}
33+
34+
saveGeneralSettings() {
35+
return elements.saveGeneralSettings.click();
36+
}
37+
38+
disableAuditModule() {
39+
return elements.auditsModuleSwitch.switchOff();
40+
}
41+
42+
enableAuditModule() {
43+
return elements.auditsModuleSwitch.switchOn();
44+
}
3345
}

e2e/specs/administration/appSettings.spec.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,29 @@ describe('Full Admin Administartion User Flow', () => {
2626
}
2727
});
2828

29+
30+
describe('Audit Module', () => {
31+
it('I can disable Audit Module', async () => {
32+
await userAdministration.sidebar.appSettings();
33+
await appSettings.disableAuditModule();
34+
await appSettings.saveGeneralSettings();
35+
await appSettings.menuBar.clickLogo();
36+
return expect(projectList.menuBar.isAuditTabExists()).toBe(false, 'Audit Module is not disabled!');
37+
});
38+
39+
it('I can enable Audit Module', async () => {
40+
await (await projectList.menuBar.user()).administration();
41+
await userAdministration.sidebar.appSettings();
42+
await appSettings.enableAuditModule();
43+
await appSettings.saveGeneralSettings();
44+
await appSettings.menuBar.clickLogo();
45+
return expect(projectList.menuBar.isAuditTabExists()).toBe(true, 'Audit Module is not enabled!');
46+
});
47+
});
48+
2949
describe('Default Email Pattern', () => {
3050
it('I can see closed Email Pattern Hint', async () => {
51+
await (await projectList.menuBar.user()).administration();
3152
await userAdministration.sidebar.appSettings();
3253
return expect(appSettings.getHintText()).toEqual(Constants.emailHelpTextHint);
3354
});

src/app/app.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,15 +203,15 @@ export class AppComponent {
203203

204204
async getInfo() {
205205
this.isLogged = await this.userService.handleIsLogged(false);
206-
this.globaldata.auditModule = await this.settingsService.getGeneralSettings().toPromise();
206+
this.globaldata.auditModule = (await this.settingsService.getGeneralSettings().toPromise()).audits;
207207
if (this.isLogged && this.route.firstChild && this.route.firstChild.firstChild) {
208208
await this.getProjectInfo();
209209
}
210210
}
211211

212212
async getProjectInfo() {
213213
this.route.firstChild.firstChild.params.subscribe(params => {
214-
this.projectId = params['projectId'] ? parseInt(params['projectId'], 10) : undefined;
214+
this.projectId = params.projectId ? parseInt(params.projectId, 10) : undefined;
215215
});
216216

217217
if (this.projectId) {

src/app/pages/administration/global/app-settings/app-settings.component.html

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
<div *ngIf="generalSettings" class="panel panel-default">
2-
<div class="panel-heading">General Settings <button class="btn btn-success btn-sm pull-right panel-button"
3-
(click)="saveGeneral()">Save</button></div>
2+
<div class="panel-heading">General Settings
3+
<button id="save-general"class="btn btn-success btn-sm pull-right panel-button" (click)="saveGeneral()">Save</button>
4+
</div>
45
<div class="panel-body">
56
<div class="col-sm-4">
67
<div class="col-sm-2 margin-y-sm">
7-
<ui-switch class="pull-right" size="small" [(ngModel)]="generalSettings.audits"></ui-switch>
8+
<ui-switch id="audits-module" class="pull-right" size="small" [(ngModel)]="generalSettings.audits"></ui-switch>
89
</div>
910
<div class="col-sm-10 no-padding margin-top-6px">
10-
<label class="pull-left" [ngClass]="{
11-
'greyout':!generalSettings.audits
12-
}">Audits Module</label>
11+
<label class="pull-left" [ngClass]="{'greyout':!generalSettings.audits}">Audits Module</label>
1312
</div>
1413
</div>
1514
<div class="col-sm-4">

src/app/pages/administration/global/app-settings/app-settings.component.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import { GeneralAppSettings, LDAPSettings, EmailSettings } from '../../../../sha
33
import { ApplicationSettingsService } from '../../../../services/applicationSettings.service';
44
import { SimpleRequester } from '../../../../services/simple-requester';
55
import { EmailSettingsService } from '../../../../services/emailSettings.service';
6-
import { environment } from '../../../../../environments/environment';
76
import { Constants } from './app-settings.constants';
7+
import { GlobalDataService } from '../../../../services/globaldata.service';
88

99
@Component({
1010
templateUrl: 'app-settings.component.html',
@@ -20,13 +20,13 @@ export class AppSettingsComponent implements OnInit {
2020
public generalSettings: GeneralAppSettings;
2121
public ldapSettings: LDAPSettings;
2222
public emailSettings: EmailSettings;
23-
public apiHost: string;
2423
public emailHelpText = Constants.emailPatternHelpText;
2524
public emailHelpTextHint = Constants.emailHelpTextHint;
2625

2726
constructor(
2827
private appSettingService: ApplicationSettingsService,
29-
private emailSettingsService: EmailSettingsService
28+
private emailSettingsService: EmailSettingsService,
29+
private globaldata: GlobalDataService
3030
) { }
3131

3232
async ngOnInit() {
@@ -40,14 +40,13 @@ export class AppSettingsComponent implements OnInit {
4040
this.setBaseURL();
4141
}
4242

43-
saveGeneral() {
44-
this.appSettingService.updateGeneralSettings({
43+
async saveGeneral() {
44+
await this.appSettingService.updateGeneralSettings({
4545
id: this.generalSettings.id,
4646
ldap_auth: +this.generalSettings.ldap_auth,
4747
base_auth: +this.generalSettings.base_auth,
4848
audits: +this.generalSettings.audits
49-
}).subscribe();
50-
environment.host = this.apiHost;
49+
});
5150
}
5251

5352
setLdap($event) {

src/app/services/applicationSettings.service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export class ApplicationSettingsService extends SimpleRequester {
1414
}
1515

1616
updateGeneralSettings(generalSettings: GeneralAppSettings) {
17-
return this.doPost('/settings', generalSettings).map(res => res);
17+
return this.doPost('/settings', generalSettings).map(res => res).toPromise();
1818
}
1919

2020
updateLDAPSettings(ldapSettings: LDAPSettings) {

0 commit comments

Comments
 (0)