Skip to content

Commit 3798353

Browse files
Merge pull request #92 from aquality-automation/develop
Develop
2 parents e830ce8 + 1acc3e7 commit 3798353

File tree

63 files changed

+652
-264
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+652
-264
lines changed

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# CHANGELOG
22

3+
## 0.3.7 (2020-03-02)
4+
5+
Features:
6+
- Improve Test Run and Test List page performance -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/71)
7+
- Exclude Debug results from last results column -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/70)
8+
- Milestone: Add selected Suites to milestone -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/63)
9+
- Milestone: Add not executed suites -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/64)
10+
- Milestone: Add Due Date to Milestone. -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/61)
11+
- Milestone: Add possibility to Close Milestone. -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/62)
12+
- Test Runs List: Add possibility to Add milestone from Test Runs List. -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/59)
13+
314
## 0.3.6 (2020-02-24)
415

516
Features:

e2e/api/editor.api.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ export class EditorAPI {
5353
}
5454

5555
public async createResult(testResult: TestResult): Promise<TestResult> {
56+
testResult.project_id = this.project.id;
5657
return sendPost(Endpoints.testresult, undefined, testResult, this.token, this.project.id);
5758
}
5859

@@ -66,6 +67,7 @@ export class EditorAPI {
6667
}
6768

6869
public async getSuites(testSuite: TestSuite): Promise<TestSuite[]> {
70+
testSuite.project_id = this.project.id;
6971
return sendGet(Endpoints.suite, testSuite, this.token, this.project.id);
7072
}
7173

@@ -81,7 +83,23 @@ export class EditorAPI {
8183
return sendGet(Endpoints.testrun, testrun, this.token, this.project.id);
8284
}
8385

86+
public async getMilestones(milestone: Milestone): Promise<Milestone[]> {
87+
milestone.project_id = this.project.id;
88+
return sendGet(Endpoints.milestone, milestone, this.token, this.project.id);
89+
}
90+
8491
public async removeTestRun(testRunId: number) {
85-
return sendDelete(Endpoints.testrun, { id: testRunId, project_id: this.project.id}, null, this.token, this.project.id);
92+
return sendDelete(Endpoints.testrun, { id: testRunId, project_id: this.project.id }, null, this.token, this.project.id);
93+
}
94+
95+
public async addSuiteToMilestone(milestoneName: string, suiteName: string) {
96+
const milestone: Milestone = (await this.getMilestones({ name: milestoneName }))[0];
97+
const suite: TestSuite = (await this.getSuites({ name: suiteName }))[0];
98+
if (milestone.suites) {
99+
milestone.suites.push(suite);
100+
} else {
101+
milestone.suites = [suite];
102+
}
103+
return this.createMilestone(milestone);
86104
}
87105
}
Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1 @@
1-
Test,Test Suite,Result,Resolution,Comment,Finished
2-
"Login: should be able to login as admin","Login","Not Executed",,,"Invalid Date"
3-
"Login: should not be able to login with wrong username","Login","Not Executed",,,"Invalid Date"
4-
"Login: should not be able to login with wrong password","Login","Not Executed",,,"Invalid Date"
1+
Test,Test Suite,Test Run,Result,Resolution,Comment,Finished
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
Test Name,Fail Reason,Last Results,Result,Resolution,Assignee,Comment
2-
"Test Feature with all results: step failed","step was failed !”#$%&’()*+,-./:;<=>?@[\]^_`{|}~","","Failed","Not Assigned",,
3-
"Test Feature with all results: All passed","","","Passed",,,
4-
"Test Feature with all results: Step skipped","step was skippedstep was skipped","","Pending","Not Assigned",,
2+
"Test Feature with all results: step failed","step was failed !”#$%&’()*+,-./:;<=>?@[\]^_`{|}~","3","Failed","Not Assigned",,
3+
"Test Feature with all results: All passed","","5","Passed",,,
4+
"Test Feature with all results: Step skipped","step was skippedstep was skipped","3","Pending","Not Assigned",,
Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
Test Name,Fail Reason,Last Results,Result,Resolution,Assignee,Comment
2-
"Example.Tests.Class1.AttachmentsAreOptional","","","Passed",,,
3-
"Example.Tests.Class1.Test1","","","Passed",,,
4-
"Example.Tests.Class1.Test2","","","Passed",,,
5-
"Example.Tests.Class1.Test3","Test exceeded Timeout value of 1000ms","","Failed","Not Assigned",,
6-
"Example.Tests.Class1.Test4","Assertion: Expected: True But was: False ","","Failed","Not Assigned",,
7-
"Example.Tests.Class2.IgnoredTest","My ignore reason","","Not Executed","Not Assigned",,
8-
"Example.Tests.Class2.SyncTest","","","Passed",,,
9-
"Example.Tests.Class2.Test1","","","Passed",,,
10-
"Example.Tests.Class2.Test2","Assertion: My warn message","","Failed","Not Assigned",,
11-
"Example.Tests.Class2.Test3","Assertion: test failed.","","Failed","Not Assigned",,
12-
"Example.Tests.Class2.Test3FailedWithoutMessage","Failed without any message. Please see logs on result page.","","Failed","Not Assigned",,
13-
"Example.Tests.Class2.Test4","","","Passed",,,
14-
"Example.Tests.Class2.TestWithTestCaseSource(0)","","","Passed",,,
15-
"Example.Tests.Class2.TestWithTestCaseSource(1)","","","Passed",,,
16-
"Example.Tests.Class2.TestWithTestCaseSource(2)","","","Passed",,,
17-
"Example.Tests.Class3.Test1","OneTimeSetUp: System.Exception : Setup exception.","","Failed","Not Assigned",,
18-
"Example.Tests.Class3.Test2","OneTimeSetUp: System.Exception : Setup exception.","","Failed","Not Assigned",,
19-
"Example.Tests.Class3.Test3","OneTimeSetUp: System.Exception : Setup exception.","","Failed","Not Assigned",,
20-
"Example.Tests.FailedClass.Test1","OneTimeSetUp: System.Exception : Here is OneTimeSetup exception.","","Failed","Not Assigned",,
21-
"Example.Tests.FailedClass.Test2","OneTimeSetUp: System.Exception : Here is OneTimeSetup exception.","","Failed","Not Assigned",,
22-
"Example.Tests.IgnoredClass.Test1","OneTimeSetUp: Ignore reason for suite","","Not Executed","Not Assigned",,
23-
"Example.Tests.IgnoredClass.Test2","OneTimeSetUp: Ignore reason for suite","","Not Executed","Not Assigned",,
24-
"Example.Tests.InnerFolder.Class1.Test1","OneTimeSetUp: System.Exception : Assembly SetUpFixture exception.","","Failed","Not Assigned",,
25-
"Example.Tests.InnerFolder.Class1.Test2","OneTimeSetUp: System.Exception : Assembly SetUpFixture exception.","","Failed","Not Assigned",,
2+
"Example.Tests.Class1.AttachmentsAreOptional","","5","Passed",,,
3+
"Example.Tests.Class1.Test1","","5","Passed",,,
4+
"Example.Tests.Class1.Test2","","5","Passed",,,
5+
"Example.Tests.Class1.Test3","Test exceeded Timeout value of 1000ms","3","Failed","Not Assigned",,
6+
"Example.Tests.Class1.Test4","Assertion: Expected: True But was: False ","3","Failed","Not Assigned",,
7+
"Example.Tests.Class2.IgnoredTest","My ignore reason","3","Not Executed","Not Assigned",,
8+
"Example.Tests.Class2.SyncTest","","5","Passed",,,
9+
"Example.Tests.Class2.Test1","","5","Passed",,,
10+
"Example.Tests.Class2.Test2","Assertion: My warn message","3","Failed","Not Assigned",,
11+
"Example.Tests.Class2.Test3","Assertion: test failed.","3","Failed","Not Assigned",,
12+
"Example.Tests.Class2.Test3FailedWithoutMessage","Failed without any message. Please see logs on result page.","3","Failed","Not Assigned",,
13+
"Example.Tests.Class2.Test4","","5","Passed",,,
14+
"Example.Tests.Class2.TestWithTestCaseSource(0)","","5","Passed",,,
15+
"Example.Tests.Class2.TestWithTestCaseSource(1)","","5","Passed",,,
16+
"Example.Tests.Class2.TestWithTestCaseSource(2)","","5","Passed",,,
17+
"Example.Tests.Class3.Test1","OneTimeSetUp: System.Exception : Setup exception.","3","Failed","Not Assigned",,
18+
"Example.Tests.Class3.Test2","OneTimeSetUp: System.Exception : Setup exception.","3","Failed","Not Assigned",,
19+
"Example.Tests.Class3.Test3","OneTimeSetUp: System.Exception : Setup exception.","3","Failed","Not Assigned",,
20+
"Example.Tests.FailedClass.Test1","OneTimeSetUp: System.Exception : Here is OneTimeSetup exception.","3","Failed","Not Assigned",,
21+
"Example.Tests.FailedClass.Test2","OneTimeSetUp: System.Exception : Here is OneTimeSetup exception.","3","Failed","Not Assigned",,
22+
"Example.Tests.IgnoredClass.Test1","OneTimeSetUp: Ignore reason for suite","3","Not Executed","Not Assigned",,
23+
"Example.Tests.IgnoredClass.Test2","OneTimeSetUp: Ignore reason for suite","3","Not Executed","Not Assigned",,
24+
"Example.Tests.InnerFolder.Class1.Test1","OneTimeSetUp: System.Exception : Assembly SetUpFixture exception.","3","Failed","Not Assigned",,
25+
"Example.Tests.InnerFolder.Class1.Test2","OneTimeSetUp: System.Exception : Assembly SetUpFixture exception.","3","Failed","Not Assigned",,
Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
Test Name,Fail Reason,Last Results,Result,Resolution,Assignee,Comment
2-
"Class1: AttachmentsAreOptional","","","Passed",,,
3-
"Class1: Test1","","","Passed",,,
4-
"Class1: Test1","OneTimeSetUp: System.Exception : Assembly SetUpFixture exception.","","Failed","Not Assigned",,
5-
"Class1: Test2","","","Passed",,,
6-
"Class1: Test2","OneTimeSetUp: System.Exception : Assembly SetUpFixture exception.","","Failed","Not Assigned",,
7-
"Class1: Test3","Test exceeded Timeout value of 1000ms","","Failed","Not Assigned",,
8-
"Class1: Test4","Assertion: Expected: True But was: False ","","Failed","Not Assigned",,
9-
"Class2: IgnoredTest","My ignore reason","","Not Executed","Not Assigned",,
10-
"Class2: SyncTest","","","Passed",,,
11-
"Class2: Test1","","","Passed",,,
12-
"Class2: Test2","Assertion: My warn message","","Failed","Not Assigned",,
13-
"Class2: Test3","Assertion: test failed.","","Failed","Not Assigned",,
14-
"Class2: Test3FailedWithoutMessage","Failed without any message. Please see logs on result page.","","Failed","Not Assigned",,
15-
"Class2: Test4","","","Passed",,,
16-
"Class2: TestWithTestCaseSource(0)","","","Passed",,,
17-
"Class2: TestWithTestCaseSource(1)","","","Passed",,,
18-
"Class2: TestWithTestCaseSource(2)","","","Passed",,,
19-
"Class3: Test1","OneTimeSetUp: System.Exception : Setup exception.","","Failed","Not Assigned",,
20-
"Class3: Test2","OneTimeSetUp: System.Exception : Setup exception.","","Failed","Not Assigned",,
21-
"Class3: Test3","OneTimeSetUp: System.Exception : Setup exception.","","Failed","Not Assigned",,
22-
"FailedClass: Test1","OneTimeSetUp: System.Exception : Here is OneTimeSetup exception.","","Failed","Not Assigned",,
23-
"FailedClass: Test2","OneTimeSetUp: System.Exception : Here is OneTimeSetup exception.","","Failed","Not Assigned",,
24-
"IgnoredClass: Test1","OneTimeSetUp: Ignore reason for suite","","Not Executed","Not Assigned",,
25-
"IgnoredClass: Test2","OneTimeSetUp: Ignore reason for suite","","Not Executed","Not Assigned",,
2+
"Class1: AttachmentsAreOptional","","5","Passed",,,
3+
"Class1: Test1","","5,3","Passed",,,
4+
"Class1: Test1","OneTimeSetUp: System.Exception : Assembly SetUpFixture exception.","5,3","Failed","Not Assigned",,
5+
"Class1: Test2","","5,3","Passed",,,
6+
"Class1: Test2","OneTimeSetUp: System.Exception : Assembly SetUpFixture exception.","5,3","Failed","Not Assigned",,
7+
"Class1: Test3","Test exceeded Timeout value of 1000ms","3","Failed","Not Assigned",,
8+
"Class1: Test4","Assertion: Expected: True But was: False ","3","Failed","Not Assigned",,
9+
"Class2: IgnoredTest","My ignore reason","3","Not Executed","Not Assigned",,
10+
"Class2: SyncTest","","5","Passed",,,
11+
"Class2: Test1","","5","Passed",,,
12+
"Class2: Test2","Assertion: My warn message","3","Failed","Not Assigned",,
13+
"Class2: Test3","Assertion: test failed.","3","Failed","Not Assigned",,
14+
"Class2: Test3FailedWithoutMessage","Failed without any message. Please see logs on result page.","3","Failed","Not Assigned",,
15+
"Class2: Test4","","5","Passed",,,
16+
"Class2: TestWithTestCaseSource(0)","","5","Passed",,,
17+
"Class2: TestWithTestCaseSource(1)","","5","Passed",,,
18+
"Class2: TestWithTestCaseSource(2)","","5","Passed",,,
19+
"Class3: Test1","OneTimeSetUp: System.Exception : Setup exception.","3","Failed","Not Assigned",,
20+
"Class3: Test2","OneTimeSetUp: System.Exception : Setup exception.","3","Failed","Not Assigned",,
21+
"Class3: Test3","OneTimeSetUp: System.Exception : Setup exception.","3","Failed","Not Assigned",,
22+
"FailedClass: Test1","OneTimeSetUp: System.Exception : Here is OneTimeSetup exception.","3","Failed","Not Assigned",,
23+
"FailedClass: Test2","OneTimeSetUp: System.Exception : Here is OneTimeSetup exception.","3","Failed","Not Assigned",,
24+
"IgnoredClass: Test1","OneTimeSetUp: Ignore reason for suite","3","Not Executed","Not Assigned",,
25+
"IgnoredClass: Test2","OneTimeSetUp: Ignore reason for suite","3","Not Executed","Not Assigned",,

e2e/elements/base.element.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export class BaseElement {
1616
}
1717

1818
async isVisible(): Promise<boolean> {
19-
return waiter.forTrue(() => this.element.isPresent(), 2, 500);
19+
return waiter.forTrue(() => this.element.isPresent(), 5, 500);
2020
}
2121

2222
async isPresent(): Promise<boolean> {

e2e/elements/dots.element.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { ElementFinder, Locator, Key, by } from 'protractor';
2+
import { BaseElement } from './base.element';
3+
4+
export class Dots extends BaseElement {
5+
6+
constructor(locatorOrElement: Locator | ElementFinder) {
7+
super(locatorOrElement);
8+
}
9+
10+
public async getDotsCount() {
11+
return (await this.element.all(by.tagName('span'))).length;
12+
}
13+
}

e2e/elements/notification.element.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,19 @@
1-
import { by, element } from 'protractor';
1+
import { by, element, browser } from 'protractor';
22
import { BaseElement } from './base.element';
33

44
export class Notification extends BaseElement {
55
private pageName: string;
6+
private clickSectionScript = `
7+
(function mouseEnter(el, etype) {
8+
if (el.fireEvent) {
9+
el.fireEvent('on' + etype);
10+
} else {
11+
var evObj = document.createEvent('Events');
12+
evObj.initEvent(etype, true, false);
13+
el.dispatchEvent(evObj);
14+
}
15+
})(arguments[0], 'mouseenter')
16+
`;
617

718
constructor(pageName: string) {
819
super(by.tagName('simple-notification'));
@@ -51,7 +62,14 @@ export class Notification extends BaseElement {
5162
return this.assert('warn', message, header);
5263
}
5364

65+
private mouseOver() {
66+
return browser.executeScript(this.clickSectionScript, this.getContainer());
67+
}
68+
5469
private async assert(type: string, message?: string, header?: string) {
70+
if (await this.isVisible()) {
71+
this.mouseOver();
72+
}
5573
await expect(type === 'error' ? this.isError() : type === 'success' ? this.isSuccess() : type === 'warn' ? this.isWarning() : false)
5674
.toBe(true, `${this.pageName}: No Success notification message!`);
5775
if (message) {

e2e/elements/smartTable.element/index.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { Paginator } from './paginator.element';
88
import { Row, CellElements } from './row.element';
99
import { ManageColumns } from './manageCollumns.element';
1010
import { compareCSVStrings } from '../../utils/csv.util';
11+
import { Dots } from '../dots.element';
1112

1213
const EC = protractor.ExpectedConditions;
1314

@@ -250,6 +251,13 @@ export class SmartTable extends BaseElement {
250251
return rowElements.lookup();
251252
}
252253

254+
public async getCellDots(column: string, searchValue: string, searchColumn: string): Promise<Dots> {
255+
const columnIndex = await this.getColumnIndex(column);
256+
const row = await this.getRow(searchValue, searchColumn);
257+
const rowElements = await row.getRowElements(columnIndex);
258+
return rowElements.dots();
259+
}
260+
253261
public async isRowEditableByValue(searchValue: string, searchColumn: string) {
254262
const row = await this.getRow(searchValue, searchColumn);
255263
return row.isRowEditable();

0 commit comments

Comments
 (0)