Skip to content

Commit

Permalink
STSMACOM-851: Return a specific 400 error message in StripesConnected…
Browse files Browse the repository at this point in the history
…Source.
  • Loading branch information
Dmytro-Melnyshyn committed Sep 2, 2024
1 parent 4e1a4e9 commit 43791e1
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 2 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
* Provide `startLabel` and `endLabel` props in `<DateRangeFilter>` to enable unique accessible labeling. STSMACOM-848.
* Add `showSortIndicator` prop to `SearchAndSort` to display sort indicator next to the column names. STSMACOM-849.
* Trim value to validate required field in the `ControlledVocab` component. STSMACOM-850.
* Return a specific 400 error message in `StripesConnectedSource`. STSMACOM-851.

## [9.1.1] (IN PROGRESS)

Expand Down
9 changes: 8 additions & 1 deletion lib/SearchAndSort/ConnectedSource/StripesConnectedSource.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,14 +66,21 @@ export default class StripesConnectedSource {
}

failureMessage() {
const { isRequestUrlExceededLimit } = this.props;
const {
isRequestUrlExceededLimit,
parentResources,
} = this.props;

const failed = this.recordsObj.failed;

if (isRequestUrlExceededLimit) {
return <FormattedMessage id="stripes-smart-components.error.requestUrlLimit" values={{ limit: REQUEST_URL_LIMIT }} />;
}

if (failed.httpStatus === 400) {
return <FormattedMessage id="stripes-smart-components.error.badRequest" values={{ query: parentResources.query.query }} />;
}

// stripes-connect failure object has: dataKey, httpStatus, message, module, resource, throwErrors
const res = `Error ${failed.httpStatus}: ${failed.message.replace(/.*:\s*/, '')}`;
this.logger.log('source', 'failureMessage', res);
Expand Down
26 changes: 25 additions & 1 deletion lib/SearchAndSort/tests/StripesConnectedSource-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { expect } from 'chai';
import StripesConnectedSource from '../ConnectedSource/StripesConnectedSource';
import { REQUEST_URL_LIMIT } from '../requestUrlLimit';

describe('StripesConnectedSource', () => {
describe.only('StripesConnectedSource', () => {

Check failure on line 10 in lib/SearchAndSort/tests/StripesConnectedSource-test.js

View workflow job for this annotation

GitHub Actions / build-npm

describe.only not permitted
describe('when a request URL is too long', () => {
it('should display an error message', () => {
expect(new StripesConnectedSource({ isRequestUrlExceededLimit: true }).failureMessage().props).to.deep.equal({
Expand All @@ -18,4 +18,28 @@ describe('StripesConnectedSource', () => {
});
});
});

it('should return a specific 400 error message', () => {
const query = 'www.itemcase.com/test/uri';

const props = {
parentResources: {
records: {
failed: {
httpStatus: 400,
},
},
query: {
query,
},
},
};

expect(new StripesConnectedSource(props).failureMessage().props).to.deep.equal({
id: 'stripes-smart-components.error.badRequest',
values: {
query,
},
});
});
});
1 change: 1 addition & 0 deletions translations/stripes-smart-components/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -283,5 +283,6 @@
"editableList.actionsColumnHeader": "Actions",
"editableList.confirmationModal.cancelLabel": "No, do not delete",
"editableList.confirmationModal.confirmLabel": "Yes, delete",
"error.badRequest": "Search could not be processed for {query}. Please check your query and try again.",
"error.requestUrlLimit": "Search URI request character limit has been exceeded. The character limit is {limit}. Please revise your search and/or facet selections."
}

0 comments on commit 43791e1

Please sign in to comment.