Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
"es6": true,
"jest": true
},
"ignorePatterns": ["__tests__/**/*"],
"rules": {
"valid-jsdoc": ["error", { "requireReturn": false }],
"consistent-return": 0,
Expand Down
94 changes: 94 additions & 0 deletions __tests__/report-portal-client.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -876,6 +876,100 @@ describe('ReportPortal javascript client', () => {
});
});

it('should automatically add NOT_ISSUE when status is SKIPPED and skippedIssue is false', function (done) {
const mockClient = new RPClient(
{
apiKey: 'test',
endpoint: 'https://reportportal-stub-url',
launch: 'test launch',
project: 'test project',
skippedIssue: false,
},
{ name: 'test', version: '1.0.0' },
);

const spyFinishTestItemPromiseStart = jest
.spyOn(mockClient, 'finishTestItemPromiseStart')
.mockImplementation(() => {});

mockClient.map = {
testItemId: {
children: [],
finishSend: false,
promiseFinish: Promise.resolve(),
resolveFinish: () => {},
},
};

const finishTestItemRQ = {
status: 'skipped',
};

mockClient.finishTestItem('testItemId', finishTestItemRQ);

setTimeout(() => {
expect(spyFinishTestItemPromiseStart).toHaveBeenCalledWith(
expect.any(Object),
'testItemId',
expect.objectContaining({
status: 'skipped',
issue: { issueType: 'NOT_ISSUE' },
}),
);
done();
}, 50);
});

it('should not add NOT_ISSUE when status is SKIPPED and skippedIssue is true', function (done) {
const mockClient = new RPClient(
{
apiKey: 'test',
endpoint: 'https://reportportal-stub-url',
launch: 'test launch',
project: 'test project',
skippedIssue: true,
},
{ name: 'test', version: '1.0.0' },
);

const spyFinishTestItemPromiseStart = jest
.spyOn(mockClient, 'finishTestItemPromiseStart')
.mockImplementation(() => {});

mockClient.map = {
testItemId: {
children: [],
finishSend: false,
promiseFinish: Promise.resolve(),
resolveFinish: () => {},
},
};

const finishTestItemRQ = {
status: 'skipped',
};

mockClient.finishTestItem('testItemId', finishTestItemRQ);

setTimeout(() => {
expect(spyFinishTestItemPromiseStart).toHaveBeenCalledWith(
expect.any(Object),
'testItemId',
expect.objectContaining({
status: 'skipped',
}),
);
expect(spyFinishTestItemPromiseStart).not.toHaveBeenCalledWith(
expect.any(Object),
'testItemId',
expect.objectContaining({
issue: expect.anything(),
}),
);
done();
}, 100);
});

describe('saveLog', () => {
it('should return object with tempId and promise', () => {
const client = new RPClient({ apiKey: 'any', endpoint: 'https://rp.api', project: 'prj' });
Expand Down
1 change: 1 addition & 0 deletions index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,7 @@ declare module '@reportportal/client-javascript' {
launchUuidPrintOutput?: string;
restClientConfig?: RestClientConfig;
token?: string;
skippedIssue?: boolean;
/**
* OAuth 2.0 configuration object. When provided, OAuth authentication will be used instead of API key.
*/
Expand Down
1 change: 1 addition & 0 deletions lib/commons/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
if (!calculatedApiKey) {
throw new ReportPortalRequiredOptionError('apiKey');
} else {
console.warn(`Option 'token' is deprecated. Use 'apiKey' instead.`);

Check warning on line 27 in lib/commons/config.js

View workflow job for this annotation

GitHub Actions / test (14)

Unexpected console statement

Check warning on line 27 in lib/commons/config.js

View workflow job for this annotation

GitHub Actions / test (20)

Unexpected console statement

Check warning on line 27 in lib/commons/config.js

View workflow job for this annotation

GitHub Actions / test (22)

Unexpected console statement

Check warning on line 27 in lib/commons/config.js

View workflow job for this annotation

GitHub Actions / test (16)

Unexpected console statement

Check warning on line 27 in lib/commons/config.js

View workflow job for this annotation

GitHub Actions / test (18)

Unexpected console statement
}
}

Expand Down Expand Up @@ -115,10 +115,11 @@
description: options.description,
launchUuidPrint: options.launchUuidPrint,
launchUuidPrintOutput,
skippedIssue: options.skippedIssue,
};
} catch (error) {
// don't throw the error up to not break the entire process
console.dir(error);

Check warning on line 122 in lib/commons/config.js

View workflow job for this annotation

GitHub Actions / test (14)

Unexpected console statement

Check warning on line 122 in lib/commons/config.js

View workflow job for this annotation

GitHub Actions / test (20)

Unexpected console statement

Check warning on line 122 in lib/commons/config.js

View workflow job for this annotation

GitHub Actions / test (22)

Unexpected console statement

Check warning on line 122 in lib/commons/config.js

View workflow job for this annotation

GitHub Actions / test (16)

Unexpected console statement

Check warning on line 122 in lib/commons/config.js

View workflow job for this annotation

GitHub Actions / test (18)

Unexpected console statement
}

return calculatedOptions;
Expand Down
4 changes: 4 additions & 0 deletions lib/report-portal-client.js
Original file line number Diff line number Diff line change
Expand Up @@ -610,6 +610,10 @@ class RPClient {
...(itemObj.children.length ? {} : { status: RP_STATUSES.PASSED }),
...finishTestItemRQ,
};

if (finishTestItemData.status === RP_STATUSES.SKIPPED && this.config.skippedIssue === false) {
finishTestItemData.issue = { issueType: 'NOT_ISSUE' };
}

itemObj.finishSend = true;
this.logDebug(`Finish all children for test item with tempId ${itemTempId}`);
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"scripts": {
"build": "npm run clean && tsc",
"clean": "rimraf ./build",
"lint": "eslint ./statistics/**/* ./lib/**/* ./__tests__/**/*",
"lint": "eslint ./statistics/**/* ./lib/**/*",
"format": "npm run lint -- --fix",
"test": "jest",
"test:coverage": "jest --coverage"
Expand Down
Loading