Skip to content

Commit

Permalink
MODFQMMGR-548:Refactor array handling to treat arrays as JSONB
Browse files Browse the repository at this point in the history
  • Loading branch information
kjain110 committed Dec 16, 2024
1 parent e46fed8 commit 9f8217e
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 0 deletions.
11 changes: 11 additions & 0 deletions src/QueryBuilder/QueryBuilder/helpers/selectOptions.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,14 @@ const ArrayOperators = () => [
{ label: OPERATORS_LABELS.EMPTY, value: OPERATORS.EMPTY },
];

const JsonbArrayOperators = () => [
{ label: OPERATORS_LABELS.CONTAINS_ALL, value: OPERATORS.CONTAINS_ALL },
{ label: OPERATORS_LABELS.NOT_CONTAINS_ALL, value: OPERATORS.NOT_CONTAINS_ALL },
{ label: OPERATORS_LABELS.CONTAINS_ANY, value: OPERATORS.CONTAINS_ANY },
{ label: OPERATORS_LABELS.NOT_CONTAINS_ANY, value: OPERATORS.NOT_CONTAINS_ANY },
{ label: OPERATORS_LABELS.EMPTY, value: OPERATORS.EMPTY },
];

const UUIDOperators = () => [
{ label: OPERATORS_LABELS.EQUAL, value: OPERATORS.EQUAL },
{ label: OPERATORS_LABELS.IN, value: OPERATORS.IN },
Expand Down Expand Up @@ -89,6 +97,9 @@ export const getOperatorOptions = ({
case DATA_TYPES.ArrayType:
return getOperatorsWithPlaceholder(ArrayOperators(), intl);

case DATA_TYPES.JsonbArrayType:

Check failure on line 100 in src/QueryBuilder/QueryBuilder/helpers/selectOptions.js

View workflow job for this annotation

GitHub Actions / ui / Install and lint / Install and lint

Expected indentation of 4 spaces but found 6
return getOperatorsWithPlaceholder(JsonbArrayOperators(), intl);

Check failure on line 101 in src/QueryBuilder/QueryBuilder/helpers/selectOptions.js

View workflow job for this annotation

GitHub Actions / ui / Install and lint / Install and lint

Expected indentation of 6 spaces but found 8

case DATA_TYPES.DateType:
return getOperatorsWithPlaceholder(extendedLogicalOperators(), intl);

Expand Down
19 changes: 19 additions & 0 deletions src/QueryBuilder/QueryBuilder/helpers/selectOptions.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,25 @@ describe('select options', () => {
});
});

it('should return operators with placeholder for jsonb array type', () => {
const options = getOperatorOptions({
dataType: DATA_TYPES.JsonbArrayType,
hasSourceOrValues: false,
intl: intlMock,
});

expectFn({
options,
operators: [
{ label: OPERATORS_LABELS.CONTAINS_ALL, value: OPERATORS.CONTAINS_ALL },
{ label: OPERATORS_LABELS.NOT_CONTAINS_ALL, value: OPERATORS.NOT_CONTAINS_ALL },
{ label: OPERATORS_LABELS.CONTAINS_ANY, value: OPERATORS.CONTAINS_ANY },
{ label: OPERATORS_LABELS.NOT_CONTAINS_ANY, value: OPERATORS.NOT_CONTAINS_ANY },
{ label: OPERATORS_LABELS.EMPTY, value: OPERATORS.EMPTY },
],
});
});

it('should return operators with placeholder for enum type', () => {
const options = getOperatorOptions({
dataType: DATA_TYPES.EnumType,
Expand Down
1 change: 1 addition & 0 deletions src/constants/dataTypes.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@ export const DATA_TYPES = {
EnumType: 'enumType',
ObjectType: 'objectType',
ArrayType: 'arrayType',
JsonbArrayType: 'jsonbaArrayType',
};

0 comments on commit 9f8217e

Please sign in to comment.