@wordpress/dataviews 8.0.2-next.836ecdcae.0 → 9.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -1
- package/README.md +127 -13
- package/build/components/dataviews-filters/input-widget.js +48 -4
- package/build/components/dataviews-filters/input-widget.js.map +1 -1
- package/build/components/dataviews-layout/index.js +3 -1
- package/build/components/dataviews-layout/index.js.map +1 -1
- package/build/dataform-controls/array.js +9 -7
- package/build/dataform-controls/array.js.map +1 -1
- package/build/dataform-controls/checkbox.js +40 -8
- package/build/dataform-controls/checkbox.js.map +1 -1
- package/build/dataform-controls/color.js +133 -0
- package/build/dataform-controls/color.js.map +1 -0
- package/build/dataform-controls/date.js +32 -24
- package/build/dataform-controls/date.js.map +1 -1
- package/build/dataform-controls/datetime.js +133 -19
- package/build/dataform-controls/datetime.js.map +1 -1
- package/build/dataform-controls/email.js +15 -3
- package/build/dataform-controls/email.js.map +1 -1
- package/build/dataform-controls/index.js +33 -2
- package/build/dataform-controls/index.js.map +1 -1
- package/build/dataform-controls/integer.js +47 -34
- package/build/dataform-controls/integer.js.map +1 -1
- package/build/dataform-controls/password.js +47 -0
- package/build/dataform-controls/password.js.map +1 -0
- package/build/dataform-controls/radio.js +42 -9
- package/build/dataform-controls/radio.js.map +1 -1
- package/build/dataform-controls/relative-date-control.js +6 -10
- package/build/dataform-controls/relative-date-control.js.map +1 -1
- package/build/dataform-controls/select.js +41 -10
- package/build/dataform-controls/select.js.map +1 -1
- package/build/dataform-controls/telephone.js +15 -3
- package/build/dataform-controls/telephone.js.map +1 -1
- package/build/dataform-controls/text.js +16 -4
- package/build/dataform-controls/text.js.map +1 -1
- package/build/dataform-controls/textarea.js +81 -0
- package/build/dataform-controls/textarea.js.map +1 -0
- package/build/dataform-controls/toggle-group.js +36 -6
- package/build/dataform-controls/toggle-group.js.map +1 -1
- package/build/dataform-controls/toggle.js +77 -0
- package/build/dataform-controls/toggle.js.map +1 -0
- package/build/dataform-controls/url.js +40 -0
- package/build/dataform-controls/url.js.map +1 -0
- package/build/dataform-controls/utils/validated-input.js +83 -0
- package/build/dataform-controls/utils/validated-input.js.map +1 -0
- package/build/dataforms-layouts/card/index.js +0 -4
- package/build/dataforms-layouts/card/index.js.map +1 -1
- package/build/dataforms-layouts/data-form-layout.js +16 -4
- package/build/dataforms-layouts/data-form-layout.js.map +1 -1
- package/build/dataforms-layouts/index.js +31 -1
- package/build/dataforms-layouts/index.js.map +1 -1
- package/build/dataforms-layouts/panel/dropdown.js +10 -14
- package/build/dataforms-layouts/panel/dropdown.js.map +1 -1
- package/build/dataforms-layouts/panel/index.js +24 -11
- package/build/dataforms-layouts/panel/index.js.map +1 -1
- package/build/dataforms-layouts/panel/modal.js +22 -27
- package/build/dataforms-layouts/panel/modal.js.map +1 -1
- package/build/dataforms-layouts/panel/summary-button.js +67 -0
- package/build/dataforms-layouts/panel/summary-button.js.map +1 -0
- package/build/dataforms-layouts/regular/index.js +7 -9
- package/build/dataforms-layouts/regular/index.js.map +1 -1
- package/build/dataforms-layouts/row/index.js +113 -0
- package/build/dataforms-layouts/row/index.js.map +1 -0
- package/build/dataviews-layouts/grid/index.js +5 -15
- package/build/dataviews-layouts/grid/index.js.map +1 -1
- package/build/dataviews-layouts/list/index.js +47 -2
- package/build/dataviews-layouts/list/index.js.map +1 -1
- package/build/dataviews-layouts/picker-grid/index.js +5 -15
- package/build/dataviews-layouts/picker-grid/index.js.map +1 -1
- package/build/dataviews-layouts/table/index.js +5 -17
- package/build/dataviews-layouts/table/index.js.map +1 -1
- package/build/dataviews-layouts/utils/get-data-by-group.js +23 -0
- package/build/dataviews-layouts/utils/get-data-by-group.js.map +1 -0
- package/build/field-types/boolean.js +1 -1
- package/build/field-types/boolean.js.map +1 -1
- package/build/field-types/color.js +113 -0
- package/build/field-types/color.js.map +1 -0
- package/build/field-types/index.js +12 -0
- package/build/field-types/index.js.map +1 -1
- package/build/field-types/password.js +51 -0
- package/build/field-types/password.js.map +1 -0
- package/build/field-types/url.js +57 -0
- package/build/field-types/url.js.map +1 -0
- package/build/normalize-fields.js +17 -0
- package/build/normalize-fields.js.map +1 -1
- package/build/normalize-form-fields.js +6 -0
- package/build/normalize-form-fields.js.map +1 -1
- package/build/types.js.map +1 -1
- package/build/validation.js +1 -1
- package/build/validation.js.map +1 -1
- package/build-module/components/dataviews-filters/input-widget.js +48 -4
- package/build-module/components/dataviews-filters/input-widget.js.map +1 -1
- package/build-module/components/dataviews-layout/index.js +3 -1
- package/build-module/components/dataviews-layout/index.js.map +1 -1
- package/build-module/dataform-controls/array.js +9 -7
- package/build-module/dataform-controls/array.js.map +1 -1
- package/build-module/dataform-controls/checkbox.js +41 -9
- package/build-module/dataform-controls/checkbox.js.map +1 -1
- package/build-module/dataform-controls/color.js +126 -0
- package/build-module/dataform-controls/color.js.map +1 -0
- package/build-module/dataform-controls/date.js +32 -24
- package/build-module/dataform-controls/date.js.map +1 -1
- package/build-module/dataform-controls/datetime.js +135 -21
- package/build-module/dataform-controls/datetime.js.map +1 -1
- package/build-module/dataform-controls/email.js +14 -2
- package/build-module/dataform-controls/email.js.map +1 -1
- package/build-module/dataform-controls/index.js +33 -2
- package/build-module/dataform-controls/index.js.map +1 -1
- package/build-module/dataform-controls/integer.js +46 -34
- package/build-module/dataform-controls/integer.js.map +1 -1
- package/build-module/dataform-controls/password.js +38 -0
- package/build-module/dataform-controls/password.js.map +1 -0
- package/build-module/dataform-controls/radio.js +44 -11
- package/build-module/dataform-controls/radio.js.map +1 -1
- package/build-module/dataform-controls/relative-date-control.js +6 -10
- package/build-module/dataform-controls/relative-date-control.js.map +1 -1
- package/build-module/dataform-controls/select.js +43 -12
- package/build-module/dataform-controls/select.js.map +1 -1
- package/build-module/dataform-controls/telephone.js +14 -2
- package/build-module/dataform-controls/telephone.js.map +1 -1
- package/build-module/dataform-controls/text.js +15 -3
- package/build-module/dataform-controls/text.js.map +1 -1
- package/build-module/dataform-controls/textarea.js +74 -0
- package/build-module/dataform-controls/textarea.js.map +1 -0
- package/build-module/dataform-controls/toggle-group.js +38 -8
- package/build-module/dataform-controls/toggle-group.js.map +1 -1
- package/build-module/dataform-controls/toggle.js +70 -0
- package/build-module/dataform-controls/toggle.js.map +1 -0
- package/build-module/dataform-controls/url.js +33 -0
- package/build-module/dataform-controls/url.js.map +1 -0
- package/build-module/dataform-controls/utils/validated-input.js +76 -0
- package/build-module/dataform-controls/utils/validated-input.js.map +1 -0
- package/build-module/dataforms-layouts/card/index.js +0 -4
- package/build-module/dataforms-layouts/card/index.js.map +1 -1
- package/build-module/dataforms-layouts/data-form-layout.js +14 -4
- package/build-module/dataforms-layouts/data-form-layout.js.map +1 -1
- package/build-module/dataforms-layouts/index.js +32 -1
- package/build-module/dataforms-layouts/index.js.map +1 -1
- package/build-module/dataforms-layouts/panel/dropdown.js +10 -15
- package/build-module/dataforms-layouts/panel/dropdown.js.map +1 -1
- package/build-module/dataforms-layouts/panel/index.js +24 -11
- package/build-module/dataforms-layouts/panel/index.js.map +1 -1
- package/build-module/dataforms-layouts/panel/modal.js +22 -28
- package/build-module/dataforms-layouts/panel/modal.js.map +1 -1
- package/build-module/dataforms-layouts/panel/summary-button.js +60 -0
- package/build-module/dataforms-layouts/panel/summary-button.js.map +1 -0
- package/build-module/dataforms-layouts/regular/index.js +8 -10
- package/build-module/dataforms-layouts/regular/index.js.map +1 -1
- package/build-module/dataforms-layouts/row/index.js +106 -0
- package/build-module/dataforms-layouts/row/index.js.map +1 -0
- package/build-module/dataviews-layouts/grid/index.js +6 -16
- package/build-module/dataviews-layouts/grid/index.js.map +1 -1
- package/build-module/dataviews-layouts/list/index.js +48 -3
- package/build-module/dataviews-layouts/list/index.js.map +1 -1
- package/build-module/dataviews-layouts/picker-grid/index.js +6 -16
- package/build-module/dataviews-layouts/picker-grid/index.js.map +1 -1
- package/build-module/dataviews-layouts/table/index.js +5 -17
- package/build-module/dataviews-layouts/table/index.js.map +1 -1
- package/build-module/dataviews-layouts/utils/get-data-by-group.js +17 -0
- package/build-module/dataviews-layouts/utils/get-data-by-group.js.map +1 -0
- package/build-module/field-types/boolean.js +1 -1
- package/build-module/field-types/boolean.js.map +1 -1
- package/build-module/field-types/color.js +107 -0
- package/build-module/field-types/color.js.map +1 -0
- package/build-module/field-types/index.js +12 -0
- package/build-module/field-types/index.js.map +1 -1
- package/build-module/field-types/password.js +46 -0
- package/build-module/field-types/password.js.map +1 -0
- package/build-module/field-types/url.js +51 -0
- package/build-module/field-types/url.js.map +1 -0
- package/build-module/normalize-fields.js +15 -0
- package/build-module/normalize-fields.js.map +1 -1
- package/build-module/normalize-form-fields.js +6 -0
- package/build-module/normalize-form-fields.js.map +1 -1
- package/build-module/types.js.map +1 -1
- package/build-module/validation.js +1 -1
- package/build-module/validation.js.map +1 -1
- package/build-style/style-rtl.css +13 -6
- package/build-style/style.css +13 -6
- package/build-types/components/dataform/stories/index.story.d.ts +21 -17
- package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataviews/stories/fixtures.d.ts +4 -2
- package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/input-widget.d.ts.map +1 -1
- package/build-types/dataform-controls/array.d.ts.map +1 -1
- package/build-types/dataform-controls/checkbox.d.ts.map +1 -1
- package/build-types/dataform-controls/color.d.ts +6 -0
- package/build-types/dataform-controls/color.d.ts.map +1 -0
- package/build-types/dataform-controls/date.d.ts.map +1 -1
- package/build-types/dataform-controls/datetime.d.ts.map +1 -1
- package/build-types/dataform-controls/email.d.ts.map +1 -1
- package/build-types/dataform-controls/index.d.ts +1 -1
- package/build-types/dataform-controls/index.d.ts.map +1 -1
- package/build-types/dataform-controls/integer.d.ts.map +1 -1
- package/build-types/dataform-controls/password.d.ts +3 -0
- package/build-types/dataform-controls/password.d.ts.map +1 -0
- package/build-types/dataform-controls/radio.d.ts.map +1 -1
- package/build-types/dataform-controls/relative-date-control.d.ts +6 -5
- package/build-types/dataform-controls/relative-date-control.d.ts.map +1 -1
- package/build-types/dataform-controls/select.d.ts.map +1 -1
- package/build-types/dataform-controls/telephone.d.ts.map +1 -1
- package/build-types/dataform-controls/text.d.ts +1 -1
- package/build-types/dataform-controls/text.d.ts.map +1 -1
- package/build-types/dataform-controls/textarea.d.ts +6 -0
- package/build-types/dataform-controls/textarea.d.ts.map +1 -0
- package/build-types/dataform-controls/toggle-group.d.ts.map +1 -1
- package/build-types/dataform-controls/toggle.d.ts +6 -0
- package/build-types/dataform-controls/toggle.d.ts.map +1 -0
- package/build-types/dataform-controls/url.d.ts +6 -0
- package/build-types/dataform-controls/url.d.ts.map +1 -0
- package/build-types/dataform-controls/utils/validated-input.d.ts +20 -0
- package/build-types/dataform-controls/utils/validated-input.d.ts.map +1 -0
- package/build-types/dataforms-layouts/card/index.d.ts +0 -3
- package/build-types/dataforms-layouts/card/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/data-form-layout.d.ts +4 -1
- package/build-types/dataforms-layouts/data-form-layout.d.ts.map +1 -1
- package/build-types/dataforms-layouts/index.d.ts +10 -0
- package/build-types/dataforms-layouts/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/panel/dropdown.d.ts +2 -1
- package/build-types/dataforms-layouts/panel/dropdown.d.ts.map +1 -1
- package/build-types/dataforms-layouts/panel/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/panel/modal.d.ts +2 -1
- package/build-types/dataforms-layouts/panel/modal.d.ts.map +1 -1
- package/build-types/dataforms-layouts/panel/summary-button.d.ts +15 -0
- package/build-types/dataforms-layouts/panel/summary-button.d.ts.map +1 -0
- package/build-types/dataforms-layouts/regular/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/row/index.d.ts +6 -0
- package/build-types/dataforms-layouts/row/index.d.ts.map +1 -0
- package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/picker-grid/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/utils/get-data-by-group.d.ts +6 -0
- package/build-types/dataviews-layouts/utils/get-data-by-group.d.ts.map +1 -0
- package/build-types/field-types/color.d.ts +20 -0
- package/build-types/field-types/color.d.ts.map +1 -0
- package/build-types/field-types/index.d.ts.map +1 -1
- package/build-types/field-types/password.d.ts +17 -0
- package/build-types/field-types/password.d.ts.map +1 -0
- package/build-types/field-types/stories/index.story.d.ts +13 -1
- package/build-types/field-types/stories/index.story.d.ts.map +1 -1
- package/build-types/field-types/url.d.ts +20 -0
- package/build-types/field-types/url.d.ts.map +1 -0
- package/build-types/normalize-fields.d.ts +3 -0
- package/build-types/normalize-fields.d.ts.map +1 -1
- package/build-types/normalize-form-fields.d.ts.map +1 -1
- package/build-types/types.d.ts +78 -7
- package/build-types/types.d.ts.map +1 -1
- package/build-types/validation.d.ts.map +1 -1
- package/build-wp/index.js +2577 -1708
- package/package.json +17 -15
- package/src/components/dataform/stories/index.story.tsx +794 -27
- package/src/components/dataviews/stories/fixtures.tsx +99 -41
- package/src/components/dataviews/stories/index.story.tsx +2 -2
- package/src/components/dataviews-filters/input-widget.tsx +44 -5
- package/src/components/dataviews-layout/index.tsx +1 -1
- package/src/components/dataviews-picker/stories/index.story.tsx +1 -1
- package/src/dataform-controls/array.tsx +4 -6
- package/src/dataform-controls/checkbox.tsx +54 -7
- package/src/dataform-controls/color.tsx +148 -0
- package/src/dataform-controls/date.tsx +47 -21
- package/src/dataform-controls/datetime.tsx +171 -23
- package/src/dataform-controls/email.tsx +22 -2
- package/src/dataform-controls/index.tsx +36 -2
- package/src/dataform-controls/integer.tsx +82 -49
- package/src/dataform-controls/password.tsx +50 -0
- package/src/dataform-controls/radio.tsx +53 -11
- package/src/dataform-controls/relative-date-control.tsx +11 -10
- package/src/dataform-controls/select.tsx +53 -10
- package/src/dataform-controls/telephone.tsx +22 -2
- package/src/dataform-controls/text.tsx +19 -2
- package/src/dataform-controls/textarea.tsx +85 -0
- package/src/dataform-controls/toggle-group.tsx +50 -10
- package/src/dataform-controls/toggle.tsx +79 -0
- package/src/dataform-controls/url.tsx +38 -0
- package/src/dataform-controls/utils/validated-input.tsx +109 -0
- package/src/dataforms-layouts/card/index.tsx +0 -4
- package/src/dataforms-layouts/data-form-layout.tsx +15 -3
- package/src/dataforms-layouts/index.tsx +35 -0
- package/src/dataforms-layouts/panel/dropdown.tsx +12 -23
- package/src/dataforms-layouts/panel/index.tsx +39 -16
- package/src/dataforms-layouts/panel/modal.tsx +24 -30
- package/src/dataforms-layouts/panel/summary-button.tsx +92 -0
- package/src/dataforms-layouts/regular/index.tsx +9 -7
- package/src/dataforms-layouts/regular/style.scss +0 -6
- package/src/dataforms-layouts/row/index.tsx +115 -0
- package/src/dataforms-layouts/row/style.scss +3 -0
- package/src/dataviews-layouts/grid/index.tsx +9 -14
- package/src/dataviews-layouts/grid/style.scss +1 -0
- package/src/dataviews-layouts/list/index.tsx +74 -2
- package/src/dataviews-layouts/list/style.scss +8 -0
- package/src/dataviews-layouts/picker-grid/index.tsx +9 -13
- package/src/dataviews-layouts/table/index.tsx +10 -14
- package/src/dataviews-layouts/utils/get-data-by-group.ts +18 -0
- package/src/field-types/boolean.tsx +1 -1
- package/src/field-types/color.tsx +115 -0
- package/src/field-types/index.tsx +15 -0
- package/src/field-types/password.tsx +46 -0
- package/src/field-types/stories/index.story.tsx +234 -3
- package/src/field-types/url.tsx +71 -0
- package/src/normalize-fields.ts +18 -0
- package/src/normalize-form-fields.ts +6 -0
- package/src/style.scss +1 -0
- package/src/test/dataform.tsx +2 -2
- package/src/test/filter-and-sort-data-view.js +148 -138
- package/src/test/normalize-fields.ts +114 -0
- package/src/types.ts +89 -6
- package/src/validation.ts +5 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/dataform-controls/boolean.js +0 -64
- package/build/dataform-controls/boolean.js.map +0 -1
- package/build/dataform-controls/utils/validated-text.js +0 -68
- package/build/dataform-controls/utils/validated-text.js.map +0 -1
- package/build-module/dataform-controls/boolean.js +0 -58
- package/build-module/dataform-controls/boolean.js.map +0 -1
- package/build-module/dataform-controls/utils/validated-text.js +0 -62
- package/build-module/dataform-controls/utils/validated-text.js.map +0 -1
- package/build-types/dataform-controls/boolean.d.ts +0 -6
- package/build-types/dataform-controls/boolean.d.ts.map +0 -1
- package/build-types/dataform-controls/utils/validated-text.d.ts +0 -12
- package/build-types/dataform-controls/utils/validated-text.d.ts.map +0 -1
- package/src/dataform-controls/boolean.tsx +0 -61
- package/src/dataform-controls/utils/validated-text.tsx +0 -79
|
@@ -43,7 +43,7 @@ describe( 'filters', () => {
|
|
|
43
43
|
);
|
|
44
44
|
expect( result ).toHaveLength( 4 );
|
|
45
45
|
expect(
|
|
46
|
-
result.find( ( item ) => item.title === 'Neptune' )
|
|
46
|
+
result.find( ( item ) => item.name.title === 'Neptune' )
|
|
47
47
|
).toBeDefined();
|
|
48
48
|
} );
|
|
49
49
|
|
|
@@ -57,8 +57,8 @@ describe( 'filters', () => {
|
|
|
57
57
|
fields
|
|
58
58
|
);
|
|
59
59
|
expect( result ).toHaveLength( 2 );
|
|
60
|
-
expect( result[ 0 ].description ).toBe(
|
|
61
|
-
|
|
60
|
+
expect( result[ 0 ].name.description ).toBe(
|
|
61
|
+
"The Moon is Earth's only natural satellite, orbiting at an average distance of 384,400 kilometers with a synchronous rotation that leads to fixed lunar phases as seen from Earth. Its cratered surface and subtle glow define night skies, inspiring exploration missions and influencing tides and biological rhythms worldwide."
|
|
62
62
|
);
|
|
63
63
|
} );
|
|
64
64
|
|
|
@@ -72,7 +72,7 @@ describe( 'filters', () => {
|
|
|
72
72
|
fields
|
|
73
73
|
);
|
|
74
74
|
expect( result ).toHaveLength( 1 );
|
|
75
|
-
expect( result[ 0 ].description ).toBe( 'La planète Vénus' );
|
|
75
|
+
expect( result[ 0 ].name.description ).toBe( 'La planète Vénus' );
|
|
76
76
|
} );
|
|
77
77
|
|
|
78
78
|
it( 'should search over array fields when enableGlobalSearch is true', () => {
|
|
@@ -93,9 +93,13 @@ describe( 'filters', () => {
|
|
|
93
93
|
|
|
94
94
|
// Should find items with "Moon" in categories
|
|
95
95
|
expect( result ).toHaveLength( 10 );
|
|
96
|
-
expect( result.map( ( r ) => r.title ).sort() ).toContain(
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
expect( result.map( ( r ) => r.name.title ).sort() ).toContain(
|
|
97
|
+
'Europa'
|
|
98
|
+
);
|
|
99
|
+
expect( result.map( ( r ) => r.name.title ).sort() ).toContain( 'Io' );
|
|
100
|
+
expect( result.map( ( r ) => r.name.title ).sort() ).toContain(
|
|
101
|
+
'Moon'
|
|
102
|
+
);
|
|
99
103
|
} );
|
|
100
104
|
|
|
101
105
|
it( 'should search over array fields case-insensitively', () => {
|
|
@@ -116,9 +120,9 @@ describe( 'filters', () => {
|
|
|
116
120
|
|
|
117
121
|
// Should find items with "Planet" in categories (case-insensitive)
|
|
118
122
|
expect( result ).toHaveLength( 8 );
|
|
119
|
-
expect( result.map( ( r ) => r.title ) ).toContain( 'Neptune' );
|
|
120
|
-
expect( result.map( ( r ) => r.title ) ).toContain( 'Mercury' );
|
|
121
|
-
expect( result.map( ( r ) => r.title ) ).toContain( 'Earth' );
|
|
123
|
+
expect( result.map( ( r ) => r.name.title ) ).toContain( 'Neptune' );
|
|
124
|
+
expect( result.map( ( r ) => r.name.title ) ).toContain( 'Mercury' );
|
|
125
|
+
expect( result.map( ( r ) => r.name.title ) ).toContain( 'Earth' );
|
|
122
126
|
} );
|
|
123
127
|
|
|
124
128
|
it( 'should search using IS filter', () => {
|
|
@@ -136,8 +140,8 @@ describe( 'filters', () => {
|
|
|
136
140
|
fields
|
|
137
141
|
);
|
|
138
142
|
expect( result ).toHaveLength( 2 );
|
|
139
|
-
expect( result[ 0 ].title ).toBe( 'Neptune' );
|
|
140
|
-
expect( result[ 1 ].title ).toBe( 'Uranus' );
|
|
143
|
+
expect( result[ 0 ].name.title ).toBe( 'Neptune' );
|
|
144
|
+
expect( result[ 1 ].name.title ).toBe( 'Uranus' );
|
|
141
145
|
} );
|
|
142
146
|
|
|
143
147
|
it( 'should search using IS NOT filter', () => {
|
|
@@ -155,22 +159,22 @@ describe( 'filters', () => {
|
|
|
155
159
|
fields
|
|
156
160
|
);
|
|
157
161
|
expect( result ).toHaveLength( 16 );
|
|
158
|
-
expect( result[ 0 ].title ).toBe( 'Moon' );
|
|
159
|
-
expect( result[ 1 ].title ).toBe( 'Io' );
|
|
160
|
-
expect( result[ 2 ].title ).toBe( 'Europa' );
|
|
161
|
-
expect( result[ 3 ].title ).toBe( 'Ganymede' );
|
|
162
|
-
expect( result[ 4 ].title ).toBe( 'Callisto' );
|
|
163
|
-
expect( result[ 5 ].title ).toBe( 'Amalthea' );
|
|
164
|
-
expect( result[ 6 ].title ).toBe( 'Himalia' );
|
|
165
|
-
expect( result[ 7 ].title ).toBe( 'Triton' );
|
|
166
|
-
expect( result[ 8 ].title ).toBe( 'Nereid' );
|
|
167
|
-
expect( result[ 9 ].title ).toBe( 'Proteus' );
|
|
168
|
-
expect( result[ 10 ].title ).toBe( 'Mercury' );
|
|
169
|
-
expect( result[ 11 ].title ).toBe( 'Venus' );
|
|
170
|
-
expect( result[ 12 ].title ).toBe( 'Earth' );
|
|
171
|
-
expect( result[ 13 ].title ).toBe( 'Mars' );
|
|
172
|
-
expect( result[ 14 ].title ).toBe( 'Jupiter' );
|
|
173
|
-
expect( result[ 15 ].title ).toBe( 'Saturn' );
|
|
162
|
+
expect( result[ 0 ].name.title ).toBe( 'Moon' );
|
|
163
|
+
expect( result[ 1 ].name.title ).toBe( 'Io' );
|
|
164
|
+
expect( result[ 2 ].name.title ).toBe( 'Europa' );
|
|
165
|
+
expect( result[ 3 ].name.title ).toBe( 'Ganymede' );
|
|
166
|
+
expect( result[ 4 ].name.title ).toBe( 'Callisto' );
|
|
167
|
+
expect( result[ 5 ].name.title ).toBe( 'Amalthea' );
|
|
168
|
+
expect( result[ 6 ].name.title ).toBe( 'Himalia' );
|
|
169
|
+
expect( result[ 7 ].name.title ).toBe( 'Triton' );
|
|
170
|
+
expect( result[ 8 ].name.title ).toBe( 'Nereid' );
|
|
171
|
+
expect( result[ 9 ].name.title ).toBe( 'Proteus' );
|
|
172
|
+
expect( result[ 10 ].name.title ).toBe( 'Mercury' );
|
|
173
|
+
expect( result[ 11 ].name.title ).toBe( 'Venus' );
|
|
174
|
+
expect( result[ 12 ].name.title ).toBe( 'Earth' );
|
|
175
|
+
expect( result[ 13 ].name.title ).toBe( 'Mars' );
|
|
176
|
+
expect( result[ 14 ].name.title ).toBe( 'Jupiter' );
|
|
177
|
+
expect( result[ 15 ].name.title ).toBe( 'Saturn' );
|
|
174
178
|
} );
|
|
175
179
|
|
|
176
180
|
it( 'should search using IS ANY filter for STRING values', () => {
|
|
@@ -188,8 +192,8 @@ describe( 'filters', () => {
|
|
|
188
192
|
fields
|
|
189
193
|
);
|
|
190
194
|
expect( result ).toHaveLength( 2 );
|
|
191
|
-
expect( result[ 0 ].title ).toBe( 'Neptune' );
|
|
192
|
-
expect( result[ 1 ].title ).toBe( 'Uranus' );
|
|
195
|
+
expect( result[ 0 ].name.title ).toBe( 'Neptune' );
|
|
196
|
+
expect( result[ 1 ].name.title ).toBe( 'Uranus' );
|
|
193
197
|
} );
|
|
194
198
|
|
|
195
199
|
it( 'should search using IS NONE filter for STRING values', () => {
|
|
@@ -207,16 +211,16 @@ describe( 'filters', () => {
|
|
|
207
211
|
fields
|
|
208
212
|
);
|
|
209
213
|
expect( result ).toHaveLength( 10 );
|
|
210
|
-
expect( result[ 0 ].title ).toBe( 'Moon' );
|
|
211
|
-
expect( result[ 1 ].title ).toBe( 'Io' );
|
|
212
|
-
expect( result[ 2 ].title ).toBe( 'Europa' );
|
|
213
|
-
expect( result[ 3 ].title ).toBe( 'Ganymede' );
|
|
214
|
-
expect( result[ 4 ].title ).toBe( 'Callisto' );
|
|
215
|
-
expect( result[ 5 ].title ).toBe( 'Amalthea' );
|
|
216
|
-
expect( result[ 6 ].title ).toBe( 'Himalia' );
|
|
217
|
-
expect( result[ 7 ].title ).toBe( 'Triton' );
|
|
218
|
-
expect( result[ 8 ].title ).toBe( 'Nereid' );
|
|
219
|
-
expect( result[ 9 ].title ).toBe( 'Proteus' );
|
|
214
|
+
expect( result[ 0 ].name.title ).toBe( 'Moon' );
|
|
215
|
+
expect( result[ 1 ].name.title ).toBe( 'Io' );
|
|
216
|
+
expect( result[ 2 ].name.title ).toBe( 'Europa' );
|
|
217
|
+
expect( result[ 3 ].name.title ).toBe( 'Ganymede' );
|
|
218
|
+
expect( result[ 4 ].name.title ).toBe( 'Callisto' );
|
|
219
|
+
expect( result[ 5 ].name.title ).toBe( 'Amalthea' );
|
|
220
|
+
expect( result[ 6 ].name.title ).toBe( 'Himalia' );
|
|
221
|
+
expect( result[ 7 ].name.title ).toBe( 'Triton' );
|
|
222
|
+
expect( result[ 8 ].name.title ).toBe( 'Nereid' );
|
|
223
|
+
expect( result[ 9 ].name.title ).toBe( 'Proteus' );
|
|
220
224
|
} );
|
|
221
225
|
|
|
222
226
|
it( 'should search using IS ANY filter for ARRAY values', () => {
|
|
@@ -234,8 +238,8 @@ describe( 'filters', () => {
|
|
|
234
238
|
fields
|
|
235
239
|
);
|
|
236
240
|
expect( result ).toHaveLength( 2 );
|
|
237
|
-
expect( result[ 0 ].title ).toBe( 'Moon' );
|
|
238
|
-
expect( result[ 1 ].title ).toBe( 'Earth' );
|
|
241
|
+
expect( result[ 0 ].name.title ).toBe( 'Moon' );
|
|
242
|
+
expect( result[ 1 ].name.title ).toBe( 'Earth' );
|
|
239
243
|
} );
|
|
240
244
|
|
|
241
245
|
it( 'should search using IS NONE filter for ARRAY values', () => {
|
|
@@ -253,20 +257,20 @@ describe( 'filters', () => {
|
|
|
253
257
|
fields
|
|
254
258
|
);
|
|
255
259
|
expect( result ).toHaveLength( 14 );
|
|
256
|
-
expect( result[ 0 ].title ).toBe( 'Moon' );
|
|
257
|
-
expect( result[ 1 ].title ).toBe( 'Io' );
|
|
258
|
-
expect( result[ 2 ].title ).toBe( 'Europa' );
|
|
259
|
-
expect( result[ 3 ].title ).toBe( 'Ganymede' );
|
|
260
|
-
expect( result[ 4 ].title ).toBe( 'Callisto' );
|
|
261
|
-
expect( result[ 5 ].title ).toBe( 'Amalthea' );
|
|
262
|
-
expect( result[ 6 ].title ).toBe( 'Himalia' );
|
|
263
|
-
expect( result[ 7 ].title ).toBe( 'Neptune' );
|
|
264
|
-
expect( result[ 8 ].title ).toBe( 'Triton' );
|
|
265
|
-
expect( result[ 9 ].title ).toBe( 'Nereid' );
|
|
266
|
-
expect( result[ 10 ].title ).toBe( 'Proteus' );
|
|
267
|
-
expect( result[ 11 ].title ).toBe( 'Jupiter' );
|
|
268
|
-
expect( result[ 12 ].title ).toBe( 'Saturn' );
|
|
269
|
-
expect( result[ 13 ].title ).toBe( 'Uranus' );
|
|
260
|
+
expect( result[ 0 ].name.title ).toBe( 'Moon' );
|
|
261
|
+
expect( result[ 1 ].name.title ).toBe( 'Io' );
|
|
262
|
+
expect( result[ 2 ].name.title ).toBe( 'Europa' );
|
|
263
|
+
expect( result[ 3 ].name.title ).toBe( 'Ganymede' );
|
|
264
|
+
expect( result[ 4 ].name.title ).toBe( 'Callisto' );
|
|
265
|
+
expect( result[ 5 ].name.title ).toBe( 'Amalthea' );
|
|
266
|
+
expect( result[ 6 ].name.title ).toBe( 'Himalia' );
|
|
267
|
+
expect( result[ 7 ].name.title ).toBe( 'Neptune' );
|
|
268
|
+
expect( result[ 8 ].name.title ).toBe( 'Triton' );
|
|
269
|
+
expect( result[ 9 ].name.title ).toBe( 'Nereid' );
|
|
270
|
+
expect( result[ 10 ].name.title ).toBe( 'Proteus' );
|
|
271
|
+
expect( result[ 11 ].name.title ).toBe( 'Jupiter' );
|
|
272
|
+
expect( result[ 12 ].name.title ).toBe( 'Saturn' );
|
|
273
|
+
expect( result[ 13 ].name.title ).toBe( 'Uranus' );
|
|
270
274
|
} );
|
|
271
275
|
|
|
272
276
|
it( 'should search using IS ALL filter', () => {
|
|
@@ -284,14 +288,14 @@ describe( 'filters', () => {
|
|
|
284
288
|
fields
|
|
285
289
|
);
|
|
286
290
|
expect( result ).toHaveLength( 8 );
|
|
287
|
-
expect( result[ 0 ].title ).toBe( 'Neptune' );
|
|
288
|
-
expect( result[ 1 ].title ).toBe( 'Mercury' );
|
|
289
|
-
expect( result[ 2 ].title ).toBe( 'Venus' );
|
|
290
|
-
expect( result[ 3 ].title ).toBe( 'Earth' );
|
|
291
|
-
expect( result[ 4 ].title ).toBe( 'Mars' );
|
|
292
|
-
expect( result[ 5 ].title ).toBe( 'Jupiter' );
|
|
293
|
-
expect( result[ 6 ].title ).toBe( 'Saturn' );
|
|
294
|
-
expect( result[ 7 ].title ).toBe( 'Uranus' );
|
|
291
|
+
expect( result[ 0 ].name.title ).toBe( 'Neptune' );
|
|
292
|
+
expect( result[ 1 ].name.title ).toBe( 'Mercury' );
|
|
293
|
+
expect( result[ 2 ].name.title ).toBe( 'Venus' );
|
|
294
|
+
expect( result[ 3 ].name.title ).toBe( 'Earth' );
|
|
295
|
+
expect( result[ 4 ].name.title ).toBe( 'Mars' );
|
|
296
|
+
expect( result[ 5 ].name.title ).toBe( 'Jupiter' );
|
|
297
|
+
expect( result[ 6 ].name.title ).toBe( 'Saturn' );
|
|
298
|
+
expect( result[ 7 ].name.title ).toBe( 'Uranus' );
|
|
295
299
|
} );
|
|
296
300
|
|
|
297
301
|
it( 'should search using IS NOT ALL filter', () => {
|
|
@@ -309,16 +313,16 @@ describe( 'filters', () => {
|
|
|
309
313
|
fields
|
|
310
314
|
);
|
|
311
315
|
expect( result ).toHaveLength( 10 );
|
|
312
|
-
expect( result[ 0 ].title ).toBe( 'Moon' );
|
|
313
|
-
expect( result[ 1 ].title ).toBe( 'Io' );
|
|
314
|
-
expect( result[ 2 ].title ).toBe( 'Europa' );
|
|
315
|
-
expect( result[ 3 ].title ).toBe( 'Ganymede' );
|
|
316
|
-
expect( result[ 4 ].title ).toBe( 'Callisto' );
|
|
317
|
-
expect( result[ 5 ].title ).toBe( 'Amalthea' );
|
|
318
|
-
expect( result[ 6 ].title ).toBe( 'Himalia' );
|
|
319
|
-
expect( result[ 7 ].title ).toBe( 'Triton' );
|
|
320
|
-
expect( result[ 8 ].title ).toBe( 'Nereid' );
|
|
321
|
-
expect( result[ 9 ].title ).toBe( 'Proteus' );
|
|
316
|
+
expect( result[ 0 ].name.title ).toBe( 'Moon' );
|
|
317
|
+
expect( result[ 1 ].name.title ).toBe( 'Io' );
|
|
318
|
+
expect( result[ 2 ].name.title ).toBe( 'Europa' );
|
|
319
|
+
expect( result[ 3 ].name.title ).toBe( 'Ganymede' );
|
|
320
|
+
expect( result[ 4 ].name.title ).toBe( 'Callisto' );
|
|
321
|
+
expect( result[ 5 ].name.title ).toBe( 'Amalthea' );
|
|
322
|
+
expect( result[ 6 ].name.title ).toBe( 'Himalia' );
|
|
323
|
+
expect( result[ 7 ].name.title ).toBe( 'Triton' );
|
|
324
|
+
expect( result[ 8 ].name.title ).toBe( 'Nereid' );
|
|
325
|
+
expect( result[ 9 ].name.title ).toBe( 'Proteus' );
|
|
322
326
|
} );
|
|
323
327
|
|
|
324
328
|
it( 'should search using IS filter and return all values if filter.value is undefined', () => {
|
|
@@ -336,24 +340,24 @@ describe( 'filters', () => {
|
|
|
336
340
|
fields
|
|
337
341
|
);
|
|
338
342
|
expect( result ).toHaveLength( 18 );
|
|
339
|
-
expect( result[ 0 ].title ).toBe( 'Moon' );
|
|
340
|
-
expect( result[ 1 ].title ).toBe( 'Io' );
|
|
341
|
-
expect( result[ 2 ].title ).toBe( 'Europa' );
|
|
342
|
-
expect( result[ 3 ].title ).toBe( 'Ganymede' );
|
|
343
|
-
expect( result[ 4 ].title ).toBe( 'Callisto' );
|
|
344
|
-
expect( result[ 5 ].title ).toBe( 'Amalthea' );
|
|
345
|
-
expect( result[ 6 ].title ).toBe( 'Himalia' );
|
|
346
|
-
expect( result[ 7 ].title ).toBe( 'Neptune' );
|
|
347
|
-
expect( result[ 8 ].title ).toBe( 'Triton' );
|
|
348
|
-
expect( result[ 9 ].title ).toBe( 'Nereid' );
|
|
349
|
-
expect( result[ 10 ].title ).toBe( 'Proteus' );
|
|
350
|
-
expect( result[ 11 ].title ).toBe( 'Mercury' );
|
|
351
|
-
expect( result[ 12 ].title ).toBe( 'Venus' );
|
|
352
|
-
expect( result[ 13 ].title ).toBe( 'Earth' );
|
|
353
|
-
expect( result[ 14 ].title ).toBe( 'Mars' );
|
|
354
|
-
expect( result[ 15 ].title ).toBe( 'Jupiter' );
|
|
355
|
-
expect( result[ 16 ].title ).toBe( 'Saturn' );
|
|
356
|
-
expect( result[ 17 ].title ).toBe( 'Uranus' );
|
|
343
|
+
expect( result[ 0 ].name.title ).toBe( 'Moon' );
|
|
344
|
+
expect( result[ 1 ].name.title ).toBe( 'Io' );
|
|
345
|
+
expect( result[ 2 ].name.title ).toBe( 'Europa' );
|
|
346
|
+
expect( result[ 3 ].name.title ).toBe( 'Ganymede' );
|
|
347
|
+
expect( result[ 4 ].name.title ).toBe( 'Callisto' );
|
|
348
|
+
expect( result[ 5 ].name.title ).toBe( 'Amalthea' );
|
|
349
|
+
expect( result[ 6 ].name.title ).toBe( 'Himalia' );
|
|
350
|
+
expect( result[ 7 ].name.title ).toBe( 'Neptune' );
|
|
351
|
+
expect( result[ 8 ].name.title ).toBe( 'Triton' );
|
|
352
|
+
expect( result[ 9 ].name.title ).toBe( 'Nereid' );
|
|
353
|
+
expect( result[ 10 ].name.title ).toBe( 'Proteus' );
|
|
354
|
+
expect( result[ 11 ].name.title ).toBe( 'Mercury' );
|
|
355
|
+
expect( result[ 12 ].name.title ).toBe( 'Venus' );
|
|
356
|
+
expect( result[ 13 ].name.title ).toBe( 'Earth' );
|
|
357
|
+
expect( result[ 14 ].name.title ).toBe( 'Mars' );
|
|
358
|
+
expect( result[ 15 ].name.title ).toBe( 'Jupiter' );
|
|
359
|
+
expect( result[ 16 ].name.title ).toBe( 'Saturn' );
|
|
360
|
+
expect( result[ 17 ].name.title ).toBe( 'Uranus' );
|
|
357
361
|
} );
|
|
358
362
|
|
|
359
363
|
it( 'should filter using LESS THAN operator for integer', () => {
|
|
@@ -441,7 +445,7 @@ describe( 'filters', () => {
|
|
|
441
445
|
fields
|
|
442
446
|
);
|
|
443
447
|
expect( result ).toHaveLength( 1 );
|
|
444
|
-
expect( result[ 0 ].title ).toBe( 'Neptune' );
|
|
448
|
+
expect( result[ 0 ].name.title ).toBe( 'Neptune' );
|
|
445
449
|
} );
|
|
446
450
|
|
|
447
451
|
it( 'should filter using NOT_CONTAINS operator for text fields', () => {
|
|
@@ -461,9 +465,11 @@ describe( 'filters', () => {
|
|
|
461
465
|
// Should return items that don't contain "Solar system" in description
|
|
462
466
|
expect( result ).toHaveLength( 11 );
|
|
463
467
|
expect(
|
|
464
|
-
result.filter( ( r ) =>
|
|
468
|
+
result.filter( ( r ) =>
|
|
469
|
+
r.name.description.includes( 'Solar system' )
|
|
470
|
+
)
|
|
465
471
|
).toHaveLength( 0 );
|
|
466
|
-
expect( result.map( ( r ) => r.title ).sort() ).toEqual( [
|
|
472
|
+
expect( result.map( ( r ) => r.name.title ).sort() ).toEqual( [
|
|
467
473
|
'Amalthea',
|
|
468
474
|
'Callisto',
|
|
469
475
|
'Europa',
|
|
@@ -492,7 +498,7 @@ describe( 'filters', () => {
|
|
|
492
498
|
},
|
|
493
499
|
fields
|
|
494
500
|
);
|
|
495
|
-
expect( result.map( ( r ) => r.title ) ).toContain( 'Mars' );
|
|
501
|
+
expect( result.map( ( r ) => r.name.title ) ).toContain( 'Mars' );
|
|
496
502
|
} );
|
|
497
503
|
|
|
498
504
|
it( 'should filter using BEFORE operator for datetime', () => {
|
|
@@ -594,7 +600,7 @@ describe( 'filters', () => {
|
|
|
594
600
|
fields
|
|
595
601
|
);
|
|
596
602
|
expect( result.length ).toBe( 2 );
|
|
597
|
-
expect( result[ 0 ].title ).toBe( 'Neptune' );
|
|
603
|
+
expect( result[ 0 ].name.title ).toBe( 'Neptune' );
|
|
598
604
|
} );
|
|
599
605
|
|
|
600
606
|
it( 'should filter using ON operator for datetime with different date formats', () => {
|
|
@@ -643,7 +649,9 @@ describe( 'filters', () => {
|
|
|
643
649
|
fields
|
|
644
650
|
);
|
|
645
651
|
expect( result.length ).toBe( 16 );
|
|
646
|
-
expect( result.map( ( r ) => r.title ) ).not.toContain(
|
|
652
|
+
expect( result.map( ( r ) => r.name.title ) ).not.toContain(
|
|
653
|
+
'Neptune'
|
|
654
|
+
);
|
|
647
655
|
} );
|
|
648
656
|
|
|
649
657
|
it( 'should filter using NOT_ON operator for datetime with different date formats', () => {
|
|
@@ -691,7 +699,7 @@ describe( 'filters', () => {
|
|
|
691
699
|
},
|
|
692
700
|
fields
|
|
693
701
|
);
|
|
694
|
-
expect( result.map( ( r ) => r.title ).sort() ).toEqual( [
|
|
702
|
+
expect( result.map( ( r ) => r.name.title ).sort() ).toEqual( [
|
|
695
703
|
'Neptune',
|
|
696
704
|
'Uranus',
|
|
697
705
|
] );
|
|
@@ -711,7 +719,7 @@ describe( 'filters', () => {
|
|
|
711
719
|
},
|
|
712
720
|
fields
|
|
713
721
|
);
|
|
714
|
-
expect( result.map( ( r ) => r.title ) ).toEqual( [ 'Uranus' ] );
|
|
722
|
+
expect( result.map( ( r ) => r.name.title ) ).toEqual( [ 'Uranus' ] );
|
|
715
723
|
} );
|
|
716
724
|
|
|
717
725
|
it( 'should filter dates inclusively between min and max using BETWEEN operator', () => {
|
|
@@ -858,40 +866,40 @@ describe( 'sorting', () => {
|
|
|
858
866
|
expect( result ).toHaveLength( 18 );
|
|
859
867
|
|
|
860
868
|
expect( result[ 0 ].type ).toBe( 'Gas giant' );
|
|
861
|
-
expect( result[ 0 ].title ).toBe( 'Saturn' );
|
|
869
|
+
expect( result[ 0 ].name.title ).toBe( 'Saturn' );
|
|
862
870
|
expect( result[ 1 ].type ).toBe( 'Gas giant' );
|
|
863
|
-
expect( result[ 1 ].title ).toBe( 'Jupiter' );
|
|
871
|
+
expect( result[ 1 ].name.title ).toBe( 'Jupiter' );
|
|
864
872
|
|
|
865
873
|
expect( result[ 2 ].type ).toBe( 'Ice giant' );
|
|
866
|
-
expect( result[ 2 ].title ).toBe( 'Uranus' );
|
|
874
|
+
expect( result[ 2 ].name.title ).toBe( 'Uranus' );
|
|
867
875
|
expect( result[ 3 ].type ).toBe( 'Ice giant' );
|
|
868
|
-
expect( result[ 3 ].title ).toBe( 'Neptune' );
|
|
876
|
+
expect( result[ 3 ].name.title ).toBe( 'Neptune' );
|
|
869
877
|
|
|
870
878
|
// All satellites should be grouped together
|
|
871
879
|
const satelliteItems = result.filter(
|
|
872
880
|
( item ) => item.type === 'Satellite'
|
|
873
881
|
);
|
|
874
882
|
expect( satelliteItems ).toHaveLength( 10 );
|
|
875
|
-
expect( satelliteItems[ 0 ].title ).toBe( 'Triton' );
|
|
876
|
-
expect( satelliteItems[ 1 ].title ).toBe( 'Proteus' );
|
|
877
|
-
expect( satelliteItems[ 2 ].title ).toBe( 'Nereid' );
|
|
878
|
-
expect( satelliteItems[ 3 ].title ).toBe( 'Moon' );
|
|
879
|
-
expect( satelliteItems[ 4 ].title ).toBe( 'Io' );
|
|
880
|
-
expect( satelliteItems[ 5 ].title ).toBe( 'Himalia' );
|
|
881
|
-
expect( satelliteItems[ 6 ].title ).toBe( 'Ganymede' );
|
|
882
|
-
expect( satelliteItems[ 7 ].title ).toBe( 'Europa' );
|
|
883
|
-
expect( satelliteItems[ 8 ].title ).toBe( 'Callisto' );
|
|
884
|
-
expect( satelliteItems[ 9 ].title ).toBe( 'Amalthea' );
|
|
883
|
+
expect( satelliteItems[ 0 ].name.title ).toBe( 'Triton' );
|
|
884
|
+
expect( satelliteItems[ 1 ].name.title ).toBe( 'Proteus' );
|
|
885
|
+
expect( satelliteItems[ 2 ].name.title ).toBe( 'Nereid' );
|
|
886
|
+
expect( satelliteItems[ 3 ].name.title ).toBe( 'Moon' );
|
|
887
|
+
expect( satelliteItems[ 4 ].name.title ).toBe( 'Io' );
|
|
888
|
+
expect( satelliteItems[ 5 ].name.title ).toBe( 'Himalia' );
|
|
889
|
+
expect( satelliteItems[ 6 ].name.title ).toBe( 'Ganymede' );
|
|
890
|
+
expect( satelliteItems[ 7 ].name.title ).toBe( 'Europa' );
|
|
891
|
+
expect( satelliteItems[ 8 ].name.title ).toBe( 'Callisto' );
|
|
892
|
+
expect( satelliteItems[ 9 ].name.title ).toBe( 'Amalthea' );
|
|
885
893
|
|
|
886
894
|
// All terrestrial planets should be grouped together
|
|
887
895
|
const terrestrialItems = result.filter(
|
|
888
896
|
( item ) => item.type === 'Terrestrial'
|
|
889
897
|
);
|
|
890
898
|
expect( terrestrialItems ).toHaveLength( 4 );
|
|
891
|
-
expect( terrestrialItems[ 0 ].title ).toBe( 'Venus' );
|
|
892
|
-
expect( terrestrialItems[ 1 ].title ).toBe( 'Mercury' );
|
|
893
|
-
expect( terrestrialItems[ 2 ].title ).toBe( 'Mars' );
|
|
894
|
-
expect( terrestrialItems[ 3 ].title ).toBe( 'Earth' );
|
|
899
|
+
expect( terrestrialItems[ 0 ].name.title ).toBe( 'Venus' );
|
|
900
|
+
expect( terrestrialItems[ 1 ].name.title ).toBe( 'Mercury' );
|
|
901
|
+
expect( terrestrialItems[ 2 ].name.title ).toBe( 'Mars' );
|
|
902
|
+
expect( terrestrialItems[ 3 ].name.title ).toBe( 'Earth' );
|
|
895
903
|
} );
|
|
896
904
|
|
|
897
905
|
it( 'should sort integer field types', () => {
|
|
@@ -904,9 +912,9 @@ describe( 'sorting', () => {
|
|
|
904
912
|
);
|
|
905
913
|
|
|
906
914
|
expect( result ).toHaveLength( 18 );
|
|
907
|
-
expect( result[ 0 ].title ).toBe( 'Saturn' );
|
|
908
|
-
expect( result[ 1 ].title ).toBe( 'Jupiter' );
|
|
909
|
-
expect( result[ 2 ].title ).toBe( 'Uranus' );
|
|
915
|
+
expect( result[ 0 ].name.title ).toBe( 'Saturn' );
|
|
916
|
+
expect( result[ 1 ].name.title ).toBe( 'Jupiter' );
|
|
917
|
+
expect( result[ 2 ].name.title ).toBe( 'Uranus' );
|
|
910
918
|
} );
|
|
911
919
|
|
|
912
920
|
it( 'should sort text field types', () => {
|
|
@@ -925,8 +933,8 @@ describe( 'sorting', () => {
|
|
|
925
933
|
fields
|
|
926
934
|
);
|
|
927
935
|
expect( result ).toHaveLength( 2 );
|
|
928
|
-
expect( result[ 0 ].title ).toBe( 'Uranus' );
|
|
929
|
-
expect( result[ 1 ].title ).toBe( 'Neptune' );
|
|
936
|
+
expect( result[ 0 ].name.title ).toBe( 'Uranus' );
|
|
937
|
+
expect( result[ 1 ].name.title ).toBe( 'Neptune' );
|
|
930
938
|
} );
|
|
931
939
|
|
|
932
940
|
it( 'should sort datetime field types', () => {
|
|
@@ -938,11 +946,13 @@ describe( 'sorting', () => {
|
|
|
938
946
|
fields
|
|
939
947
|
);
|
|
940
948
|
expect( resultDesc ).toHaveLength( 18 );
|
|
941
|
-
expect( resultDesc[ 0 ].title ).toBe( 'Europa' );
|
|
942
|
-
expect( resultDesc[ 1 ].title ).toBe( 'Earth' );
|
|
949
|
+
expect( resultDesc[ 0 ].name.title ).toBe( 'Europa' );
|
|
950
|
+
expect( resultDesc[ 1 ].name.title ).toBe( 'Earth' );
|
|
943
951
|
// Skip intermediate items
|
|
944
|
-
expect( resultDesc[ resultDesc.length - 2 ].title ).toBe( 'Io' );
|
|
945
|
-
expect( resultDesc[ resultDesc.length - 1 ].title ).toBe(
|
|
952
|
+
expect( resultDesc[ resultDesc.length - 2 ].name.title ).toBe( 'Io' );
|
|
953
|
+
expect( resultDesc[ resultDesc.length - 1 ].name.title ).toBe(
|
|
954
|
+
'Jupiter'
|
|
955
|
+
);
|
|
946
956
|
|
|
947
957
|
const { data: resultAsc } = filterSortAndPaginate(
|
|
948
958
|
data,
|
|
@@ -952,11 +962,11 @@ describe( 'sorting', () => {
|
|
|
952
962
|
fields
|
|
953
963
|
);
|
|
954
964
|
expect( resultAsc ).toHaveLength( 18 );
|
|
955
|
-
expect( resultAsc[ 0 ].title ).toBe( 'Jupiter' );
|
|
956
|
-
expect( resultAsc[ 1 ].title ).toBe( 'Io' );
|
|
965
|
+
expect( resultAsc[ 0 ].name.title ).toBe( 'Jupiter' );
|
|
966
|
+
expect( resultAsc[ 1 ].name.title ).toBe( 'Io' );
|
|
957
967
|
// Skip intermediate items
|
|
958
|
-
expect( resultAsc[ resultAsc.length - 2 ].title ).toBe( 'Earth' );
|
|
959
|
-
expect( resultAsc[ resultAsc.length - 1 ].title ).toBe( 'Europa' );
|
|
968
|
+
expect( resultAsc[ resultAsc.length - 2 ].name.title ).toBe( 'Earth' );
|
|
969
|
+
expect( resultAsc[ resultAsc.length - 1 ].name.title ).toBe( 'Europa' );
|
|
960
970
|
} );
|
|
961
971
|
|
|
962
972
|
it( 'should sort untyped fields if the value is a number', () => {
|
|
@@ -974,9 +984,9 @@ describe( 'sorting', () => {
|
|
|
974
984
|
);
|
|
975
985
|
|
|
976
986
|
expect( result ).toHaveLength( 18 );
|
|
977
|
-
expect( result[ 0 ].title ).toBe( 'Saturn' );
|
|
978
|
-
expect( result[ 1 ].title ).toBe( 'Jupiter' );
|
|
979
|
-
expect( result[ 2 ].title ).toBe( 'Uranus' );
|
|
987
|
+
expect( result[ 0 ].name.title ).toBe( 'Saturn' );
|
|
988
|
+
expect( result[ 1 ].name.title ).toBe( 'Jupiter' );
|
|
989
|
+
expect( result[ 2 ].name.title ).toBe( 'Uranus' );
|
|
980
990
|
} );
|
|
981
991
|
|
|
982
992
|
it( 'should sort untyped fields if the value is string', () => {
|
|
@@ -998,8 +1008,8 @@ describe( 'sorting', () => {
|
|
|
998
1008
|
)
|
|
999
1009
|
);
|
|
1000
1010
|
expect( result ).toHaveLength( 2 );
|
|
1001
|
-
expect( result[ 0 ].title ).toBe( 'Uranus' );
|
|
1002
|
-
expect( result[ 1 ].title ).toBe( 'Neptune' );
|
|
1011
|
+
expect( result[ 0 ].name.title ).toBe( 'Uranus' );
|
|
1012
|
+
expect( result[ 1 ].name.title ).toBe( 'Neptune' );
|
|
1003
1013
|
} );
|
|
1004
1014
|
|
|
1005
1015
|
it( 'should sort only by groupByField when sort is not specified', () => {
|
|
@@ -1037,8 +1047,8 @@ describe( 'pagination', () => {
|
|
|
1037
1047
|
fields
|
|
1038
1048
|
);
|
|
1039
1049
|
expect( result ).toHaveLength( 2 );
|
|
1040
|
-
expect( result[ 0 ].title ).toBe( 'Europa' );
|
|
1041
|
-
expect( result[ 1 ].title ).toBe( 'Ganymede' );
|
|
1050
|
+
expect( result[ 0 ].name.title ).toBe( 'Europa' );
|
|
1051
|
+
expect( result[ 1 ].name.title ).toBe( 'Ganymede' );
|
|
1042
1052
|
expect( paginationInfo ).toStrictEqual( {
|
|
1043
1053
|
totalItems: data.length,
|
|
1044
1054
|
totalPages: 9,
|
|
@@ -42,6 +42,120 @@ describe( 'normalizeFields: default getValue', () => {
|
|
|
42
42
|
expect( result ).toBe( 'value' );
|
|
43
43
|
} );
|
|
44
44
|
} );
|
|
45
|
+
describe( 'setValue from ID', () => {
|
|
46
|
+
it( 'user', () => {
|
|
47
|
+
const item = { user: 'value', email: 'user@example.com' };
|
|
48
|
+
const fields: Field< {} >[] = [
|
|
49
|
+
{
|
|
50
|
+
id: 'user',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
id: 'email',
|
|
54
|
+
},
|
|
55
|
+
];
|
|
56
|
+
const normalizedFields = normalizeFields( fields );
|
|
57
|
+
const result = normalizedFields[ 0 ].setValue( {
|
|
58
|
+
item,
|
|
59
|
+
value: 'newValue',
|
|
60
|
+
} );
|
|
61
|
+
expect( result ).toEqual( { user: 'newValue' } );
|
|
62
|
+
} );
|
|
63
|
+
|
|
64
|
+
it( 'user.name', () => {
|
|
65
|
+
const item = {
|
|
66
|
+
user: { name: 'value', email: 'user@example.com' },
|
|
67
|
+
date: '2023-01-01',
|
|
68
|
+
};
|
|
69
|
+
const fields: Field< {} >[] = [
|
|
70
|
+
{
|
|
71
|
+
id: 'user.name',
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
id: 'user.email',
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
id: 'date',
|
|
78
|
+
},
|
|
79
|
+
];
|
|
80
|
+
const normalizedFields = normalizeFields( fields );
|
|
81
|
+
const result = normalizedFields[ 0 ].setValue( {
|
|
82
|
+
item,
|
|
83
|
+
value: 'newValue',
|
|
84
|
+
} );
|
|
85
|
+
expect( result ).toEqual( { user: { name: 'newValue' } } );
|
|
86
|
+
} );
|
|
87
|
+
|
|
88
|
+
it( 'user.name.first', () => {
|
|
89
|
+
const item = {
|
|
90
|
+
user: {
|
|
91
|
+
name: { first: 'firstName', last: 'lastName' },
|
|
92
|
+
email: 'user@example.com',
|
|
93
|
+
},
|
|
94
|
+
date: '2023-01-01',
|
|
95
|
+
};
|
|
96
|
+
const fields: Field< {} >[] = [
|
|
97
|
+
{
|
|
98
|
+
id: 'user.name.first',
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
id: 'user.name.last',
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
id: 'user.email',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
id: 'date',
|
|
108
|
+
},
|
|
109
|
+
];
|
|
110
|
+
const normalizedFields = normalizeFields( fields );
|
|
111
|
+
const result = normalizedFields[ 0 ].setValue( {
|
|
112
|
+
item,
|
|
113
|
+
value: 'newValue',
|
|
114
|
+
} );
|
|
115
|
+
expect( result ).toEqual( {
|
|
116
|
+
user: {
|
|
117
|
+
name: { first: 'newValue' },
|
|
118
|
+
},
|
|
119
|
+
} );
|
|
120
|
+
} );
|
|
121
|
+
|
|
122
|
+
it( 'returns null for null value', () => {
|
|
123
|
+
const item = { user: 'value', email: 'user@example.com' };
|
|
124
|
+
const fields: Field< {} >[] = [
|
|
125
|
+
{
|
|
126
|
+
id: 'user',
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
id: 'email',
|
|
130
|
+
},
|
|
131
|
+
];
|
|
132
|
+
const normalizedFields = normalizeFields( fields );
|
|
133
|
+
const result = normalizedFields[ 0 ].setValue( {
|
|
134
|
+
item,
|
|
135
|
+
value: null,
|
|
136
|
+
} );
|
|
137
|
+
expect( result ).toEqual( { user: null } );
|
|
138
|
+
} );
|
|
139
|
+
|
|
140
|
+
it( 'returns undefined for undefined value', () => {
|
|
141
|
+
const item = { user: 'value', email: 'user@example.com' };
|
|
142
|
+
const fields: Field< {} >[] = [
|
|
143
|
+
{
|
|
144
|
+
id: 'user',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
id: 'email',
|
|
148
|
+
},
|
|
149
|
+
];
|
|
150
|
+
const normalizedFields = normalizeFields( fields );
|
|
151
|
+
const result = normalizedFields[ 0 ].setValue( {
|
|
152
|
+
item,
|
|
153
|
+
value: undefined,
|
|
154
|
+
} );
|
|
155
|
+
expect( result ).toEqual( { user: undefined } );
|
|
156
|
+
} );
|
|
157
|
+
} );
|
|
158
|
+
|
|
45
159
|
describe( 'filterBy', () => {
|
|
46
160
|
it( 'returns the default field type definition if undefined for untyped field', () => {
|
|
47
161
|
const fields: Field< {} >[] = [
|