From 61f525f531978a894373b41a70bd788d507bb514 Mon Sep 17 00:00:00 2001 From: David Lopez <letsbelopez@gmail.com> Date: Tue, 4 Apr 2023 11:05:21 -0700 Subject: [PATCH] fix: add boolean number to datastorepredicateobject operand (#3636) Co-authored-by: Scott Rees <6165315+reesscot@users.noreply.github.com> Co-authored-by: Caleb Pollman <cpollman@amazon.com> --- .changeset/chilled-mugs-mix.md | 5 +++++ .../shared/__tests__/datastore.test.ts | 21 +++++++++++++++++++ .../react/src/primitives/types/datastore.ts | 2 +- 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 .changeset/chilled-mugs-mix.md diff --git a/.changeset/chilled-mugs-mix.md b/.changeset/chilled-mugs-mix.md new file mode 100644 index 00000000000..260cba6925e --- /dev/null +++ b/.changeset/chilled-mugs-mix.md @@ -0,0 +1,5 @@ +--- +"@aws-amplify/ui-react": patch +--- + +fix: add boolean number to datastorepredicateobject operand (internal) diff --git a/packages/react/src/primitives/shared/__tests__/datastore.test.ts b/packages/react/src/primitives/shared/__tests__/datastore.test.ts index e4c0ec77e66..d707fb358da 100644 --- a/packages/react/src/primitives/shared/__tests__/datastore.test.ts +++ b/packages/react/src/primitives/shared/__tests__/datastore.test.ts @@ -20,6 +20,12 @@ describe('createDataStorePredicate', () => { operand: '25', }; + const booleanPredicateObject = { + field: 'isActive', + operator: 'eq', + operand: true, + }; + test('should generate a simple predicate', () => { const predicate = createDataStorePredicate<Post>(namePredicateObject); @@ -35,6 +41,21 @@ describe('createDataStorePredicate', () => { expect(namePredicate).toHaveBeenCalledWith(namePredicateObject.operand); }); + test('should generate a simple boolean predicate', () => { + const predicate = createDataStorePredicate<Post>(booleanPredicateObject); + + const booleanPredicate = jest.fn(); + + const condition: any = { + [booleanPredicateObject.field]: { + [booleanPredicateObject.operator]: booleanPredicate, + }, + }; + + predicate(condition); + expect(booleanPredicate).toHaveBeenCalledWith(booleanPredicateObject.operand); + }); + test('should generate a group predicate: or', () => { const predicateObject: DataStorePredicateObject = { or: [namePredicateObject, agePredicateObject], diff --git a/packages/react/src/primitives/types/datastore.ts b/packages/react/src/primitives/types/datastore.ts index 249272c52f0..25bd8976cb1 100644 --- a/packages/react/src/primitives/types/datastore.ts +++ b/packages/react/src/primitives/types/datastore.ts @@ -44,6 +44,6 @@ export type DataStorePredicateObject = { and?: DataStorePredicateObject[]; or?: DataStorePredicateObject[]; field?: string; - operand?: string; + operand?: string | boolean | number; operator?: string; };