@labdigital/commercetools-mock 2.17.1 → 2.18.1

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.
Files changed (180) hide show
  1. package/dist/index.cjs +4351 -4099
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +266 -413
  4. package/dist/index.d.ts +266 -413
  5. package/dist/index.js +4351 -4099
  6. package/dist/index.js.map +1 -1
  7. package/package.json +47 -47
  8. package/src/constants.ts +2 -2
  9. package/src/ctMock.test.ts +11 -11
  10. package/src/ctMock.ts +141 -127
  11. package/src/deprecation.ts +8 -0
  12. package/src/exceptions.ts +17 -15
  13. package/src/helpers.ts +32 -32
  14. package/src/index.test.ts +128 -128
  15. package/src/index.ts +3 -3
  16. package/src/lib/expandParser.ts +13 -13
  17. package/src/lib/haversine.test.ts +9 -9
  18. package/src/lib/haversine.ts +11 -11
  19. package/src/lib/masking.ts +11 -11
  20. package/src/lib/parser.ts +2 -2
  21. package/src/lib/password.ts +23 -3
  22. package/src/lib/predicateParser.test.ts +185 -183
  23. package/src/lib/predicateParser.ts +234 -234
  24. package/src/lib/projectionSearchFilter.test.ts +103 -101
  25. package/src/lib/projectionSearchFilter.ts +152 -150
  26. package/src/lib/proxy.ts +5 -5
  27. package/src/oauth/errors.ts +4 -4
  28. package/src/oauth/helpers.ts +6 -6
  29. package/src/oauth/server.test.ts +86 -86
  30. package/src/oauth/server.ts +158 -144
  31. package/src/oauth/store.ts +44 -43
  32. package/src/priceSelector.test.ts +35 -35
  33. package/src/priceSelector.ts +30 -30
  34. package/src/product-projection-search.ts +136 -134
  35. package/src/projectAPI.test.ts +7 -7
  36. package/src/projectAPI.ts +24 -22
  37. package/src/repositories/abstract.ts +168 -116
  38. package/src/repositories/associate-role.ts +90 -77
  39. package/src/repositories/attribute-group.ts +51 -40
  40. package/src/repositories/business-unit.ts +168 -148
  41. package/src/repositories/cart/actions.ts +489 -0
  42. package/src/repositories/cart/helpers.ts +30 -0
  43. package/src/repositories/cart/index.ts +180 -0
  44. package/src/repositories/cart-discount/actions.ts +148 -0
  45. package/src/repositories/cart-discount/index.ts +86 -0
  46. package/src/repositories/category/actions.ts +231 -0
  47. package/src/repositories/category/index.ts +52 -0
  48. package/src/repositories/channel.ts +88 -90
  49. package/src/repositories/custom-object.ts +46 -45
  50. package/src/repositories/customer/actions.ts +165 -0
  51. package/src/repositories/customer/index.ts +79 -0
  52. package/src/repositories/customer-group.ts +66 -55
  53. package/src/repositories/discount-code/actions.ts +149 -0
  54. package/src/repositories/discount-code/index.ts +50 -0
  55. package/src/repositories/errors.ts +10 -10
  56. package/src/repositories/extension.ts +64 -62
  57. package/src/repositories/helpers.ts +117 -118
  58. package/src/repositories/index.ts +80 -79
  59. package/src/repositories/inventory-entry/actions.ts +84 -0
  60. package/src/repositories/inventory-entry/index.ts +44 -0
  61. package/src/repositories/my-customer.ts +114 -0
  62. package/src/repositories/my-order.ts +8 -8
  63. package/src/repositories/order/actions.ts +281 -0
  64. package/src/repositories/{order.test.ts → order/index.test.ts} +77 -77
  65. package/src/repositories/order/index.ts +260 -0
  66. package/src/repositories/order-edit.ts +10 -23
  67. package/src/repositories/payment/actions.ts +305 -0
  68. package/src/repositories/payment/helpers.ts +17 -0
  69. package/src/repositories/payment/index.ts +56 -0
  70. package/src/repositories/product/actions.ts +943 -0
  71. package/src/repositories/product/helpers.ts +98 -0
  72. package/src/repositories/product/index.ts +130 -0
  73. package/src/repositories/product-discount.ts +127 -117
  74. package/src/repositories/product-projection.ts +56 -62
  75. package/src/repositories/product-selection.ts +31 -28
  76. package/src/repositories/product-type.ts +136 -134
  77. package/src/repositories/project.ts +133 -118
  78. package/src/repositories/quote-request.ts +7 -19
  79. package/src/repositories/quote.ts +7 -22
  80. package/src/repositories/review.ts +13 -26
  81. package/src/repositories/shipping-method/actions.ts +198 -0
  82. package/src/repositories/shipping-method/helpers.ts +10 -0
  83. package/src/repositories/shipping-method/index.ts +138 -0
  84. package/src/repositories/shopping-list/actions.ts +295 -0
  85. package/src/repositories/shopping-list/index.ts +122 -0
  86. package/src/repositories/staged-quote.ts +7 -20
  87. package/src/repositories/standalone-price.ts +57 -44
  88. package/src/repositories/state.ts +113 -68
  89. package/src/repositories/store.ts +106 -94
  90. package/src/repositories/subscription.ts +46 -22
  91. package/src/repositories/tax-category/actions.ts +94 -0
  92. package/src/repositories/tax-category/helpers.ts +8 -0
  93. package/src/repositories/tax-category/index.ts +25 -0
  94. package/src/repositories/type/actions.ts +162 -0
  95. package/src/repositories/type/index.ts +24 -0
  96. package/src/repositories/zone.ts +62 -58
  97. package/src/schemas/update-request.ts +12 -0
  98. package/src/server.ts +9 -9
  99. package/src/services/abstract.ts +85 -72
  100. package/src/services/associate-roles.test.ts +27 -27
  101. package/src/services/associate-roles.ts +7 -7
  102. package/src/services/attribute-group.ts +7 -7
  103. package/src/services/business-units.test.ts +28 -28
  104. package/src/services/business-units.ts +7 -7
  105. package/src/services/cart-discount.test.ts +199 -199
  106. package/src/services/cart-discount.ts +7 -7
  107. package/src/services/cart.test.ts +261 -261
  108. package/src/services/cart.ts +22 -21
  109. package/src/services/category.test.ts +121 -121
  110. package/src/services/category.ts +7 -7
  111. package/src/services/channel.ts +7 -7
  112. package/src/services/custom-object.test.ts +130 -130
  113. package/src/services/custom-object.ts +34 -31
  114. package/src/services/customer-group.ts +7 -7
  115. package/src/services/customer.test.ts +205 -205
  116. package/src/services/customer.ts +23 -36
  117. package/src/services/discount-code.ts +7 -7
  118. package/src/services/extension.ts +7 -7
  119. package/src/services/index.ts +85 -81
  120. package/src/services/inventory-entry.test.ts +106 -106
  121. package/src/services/inventory-entry.ts +7 -7
  122. package/src/services/my-cart.test.ts +56 -56
  123. package/src/services/my-cart.ts +20 -20
  124. package/src/services/my-customer.test.ts +155 -104
  125. package/src/services/my-customer.ts +66 -75
  126. package/src/services/my-order.ts +16 -16
  127. package/src/services/my-payment.test.ts +40 -40
  128. package/src/services/my-payment.ts +7 -7
  129. package/src/services/my-shopping-list.ts +7 -7
  130. package/src/services/order.test.ts +243 -243
  131. package/src/services/order.ts +23 -18
  132. package/src/services/payment.test.ts +40 -40
  133. package/src/services/payment.ts +7 -7
  134. package/src/services/product-discount.ts +7 -7
  135. package/src/services/product-projection.test.ts +190 -190
  136. package/src/services/product-projection.ts +34 -32
  137. package/src/services/product-selection.test.ts +19 -19
  138. package/src/services/product-selection.ts +7 -7
  139. package/src/services/product-type.test.ts +38 -38
  140. package/src/services/product-type.ts +7 -7
  141. package/src/services/product.test.ts +658 -656
  142. package/src/services/product.ts +7 -7
  143. package/src/services/project.test.ts +29 -24
  144. package/src/services/project.ts +22 -17
  145. package/src/services/reviews.ts +7 -7
  146. package/src/services/shipping-method.test.ts +78 -78
  147. package/src/services/shipping-method.ts +16 -16
  148. package/src/services/shopping-list.test.ts +170 -170
  149. package/src/services/shopping-list.ts +7 -7
  150. package/src/services/standalone-price.test.ts +112 -112
  151. package/src/services/standalone-price.ts +7 -7
  152. package/src/services/state.test.ts +30 -30
  153. package/src/services/state.ts +7 -7
  154. package/src/services/store.test.ts +40 -40
  155. package/src/services/store.ts +7 -7
  156. package/src/services/subscription.ts +7 -7
  157. package/src/services/tax-category.test.ts +43 -43
  158. package/src/services/tax-category.ts +7 -7
  159. package/src/services/type.ts +7 -7
  160. package/src/services/zone.ts +7 -7
  161. package/src/shippingCalculator.test.ts +43 -43
  162. package/src/shippingCalculator.ts +23 -23
  163. package/src/storage/abstract.ts +36 -34
  164. package/src/storage/in-memory.ts +237 -233
  165. package/src/storage/index.ts +2 -2
  166. package/src/types.ts +91 -91
  167. package/src/validate.ts +18 -0
  168. package/src/repositories/cart-discount.ts +0 -219
  169. package/src/repositories/cart.ts +0 -659
  170. package/src/repositories/category.ts +0 -256
  171. package/src/repositories/customer.ts +0 -228
  172. package/src/repositories/discount-code.ts +0 -181
  173. package/src/repositories/inventory-entry.ts +0 -109
  174. package/src/repositories/order.ts +0 -514
  175. package/src/repositories/payment.ts +0 -342
  176. package/src/repositories/product.ts +0 -1106
  177. package/src/repositories/shipping-method.ts +0 -312
  178. package/src/repositories/shopping-list.ts +0 -392
  179. package/src/repositories/tax-category.ts +0 -111
  180. package/src/repositories/type.ts +0 -172
@@ -1,35 +1,35 @@
1
- import type { VariableMap } from '@commercetools/platform-sdk'
2
- import { describe, expect, test } from 'vitest'
3
- import { parseQueryExpression, PredicateError } from './predicateParser.js'
1
+ import type { VariableMap } from "@commercetools/platform-sdk";
2
+ import { describe, expect, test } from "vitest";
3
+ import { PredicateError, parseQueryExpression } from "./predicateParser";
4
4
 
5
- describe('Predicate filter', () => {
5
+ describe("Predicate filter", () => {
6
6
  const exampleObject = {
7
- stringProperty: 'foobar',
7
+ stringProperty: "foobar",
8
8
  numberProperty: 1234,
9
- arrayProperty: ['foo', 'bar', 'nar'],
9
+ arrayProperty: ["foo", "bar", "nar"],
10
10
  notDefined: undefined,
11
11
  emptyArrayProperty: [],
12
12
  booleanProperty: true,
13
13
  nested: {
14
14
  numberProperty: 1234,
15
15
  objectProperty: {
16
- stringProperty: 'foobar',
16
+ stringProperty: "foobar",
17
17
  booleanProperty: true,
18
18
  },
19
19
  array: [
20
20
  {
21
21
  numberProperty: 1234,
22
- stringProperty: 'foo',
22
+ stringProperty: "foo",
23
23
  objectProperty: {
24
- stringProperty: 'foo',
24
+ stringProperty: "foo",
25
25
  booleanProperty: true,
26
26
  },
27
27
  },
28
28
  {
29
29
  numberProperty: 2345,
30
- stringProperty: 'bar',
30
+ stringProperty: "bar",
31
31
  objectProperty: {
32
- stringProperty: 'bar',
32
+ stringProperty: "bar",
33
33
  booleanProperty: false,
34
34
  },
35
35
  },
@@ -39,18 +39,18 @@ describe('Predicate filter', () => {
39
39
  {
40
40
  nestedArray: [
41
41
  {
42
- stringProperty: 'foo',
42
+ stringProperty: "foo",
43
43
  nested: [
44
44
  {
45
- stringProperty: 'foo',
45
+ stringProperty: "foo",
46
46
  },
47
47
  ],
48
48
  },
49
49
  {
50
- stringProperty: 'bar',
50
+ stringProperty: "bar",
51
51
  nested: [
52
52
  {
53
- stringProperty: 'bar',
53
+ stringProperty: "bar",
54
54
  },
55
55
  ],
56
56
  },
@@ -59,18 +59,18 @@ describe('Predicate filter', () => {
59
59
  {
60
60
  nestedArray: [
61
61
  {
62
- stringProperty: 'foo-2',
62
+ stringProperty: "foo-2",
63
63
  nested: [
64
64
  {
65
- stringProperty: 'foo-2',
65
+ stringProperty: "foo-2",
66
66
  },
67
67
  ],
68
68
  },
69
69
  {
70
- stringProperty: 'bar-2',
70
+ stringProperty: "bar-2",
71
71
  nested: [
72
72
  {
73
- stringProperty: 'bar-2',
73
+ stringProperty: "bar-2",
74
74
  },
75
75
  ],
76
76
  },
@@ -80,194 +80,196 @@ describe('Predicate filter', () => {
80
80
 
81
81
  // Longitude, latitude
82
82
  geoLocation: [5.110230209615395, 52.06969591642097],
83
- }
83
+ };
84
84
 
85
85
  const match = (pattern: string | string[], vars?: VariableMap) => {
86
- const matchFunc = parseQueryExpression(pattern)
87
- return matchFunc(exampleObject, vars || {})
88
- }
86
+ const matchFunc = parseQueryExpression(pattern);
87
+ return matchFunc(exampleObject, vars || {});
88
+ };
89
89
 
90
90
  test('stringProperty = "foobar"', async () => {
91
- expect(match(`stringProperty="foobar"`)).toBeTruthy()
92
- expect(match(`stringProperty!="foobar"`)).toBeFalsy()
91
+ expect(match(`stringProperty="foobar"`)).toBeTruthy();
92
+ expect(match(`stringProperty!="foobar"`)).toBeFalsy();
93
93
 
94
- expect(match(`stringProperty=:val`, { val: 'foobar' })).toBeTruthy()
95
- })
94
+ expect(match(`stringProperty=:val`, { val: "foobar" })).toBeTruthy();
95
+ });
96
96
 
97
- test('booleanProperty = true', async () => {
98
- expect(match(`booleanProperty != true`)).toBeFalsy()
99
- expect(match(`booleanProperty = true`)).toBeTruthy()
97
+ test("booleanProperty = true", async () => {
98
+ expect(match(`booleanProperty != true`)).toBeFalsy();
99
+ expect(match(`booleanProperty = true`)).toBeTruthy();
100
100
 
101
- expect(match(`booleanProperty=:val`, { val: true })).toBeTruthy()
102
- })
101
+ expect(match(`booleanProperty=:val`, { val: true })).toBeTruthy();
102
+ });
103
103
 
104
104
  test('stringProperty matches ignore case "foobar"', async () => {
105
- expect(match(`stringProperty="FOObar"`)).toBeFalsy()
106
- expect(match(`stringProperty matches ignore case "FOObar"`)).toBeTruthy()
105
+ expect(match(`stringProperty="FOObar"`)).toBeFalsy();
106
+ expect(match(`stringProperty matches ignore case "FOObar"`)).toBeTruthy();
107
107
  expect(
108
- match(`stringProperty matches ignore case :val`, { val: 'fooBar' })
109
- ).toBeTruthy()
110
- })
111
-
112
- test('numberProperty = 1234', async () => {
113
- expect(match(`numberProperty=1234`)).toBeTruthy()
114
- expect(match(`numberProperty = 1234`)).toBeTruthy()
115
- expect(match(`numberProperty=1230`)).toBeFalsy()
116
- expect(match(`numberProperty = 1230`)).toBeFalsy()
117
-
118
- expect(match(`numberProperty=:val`, { val: 1234 })).toBeTruthy()
119
- })
120
-
121
- test('numberProperty > ...', async () => {
122
- expect(match(`numberProperty > 1233`)).toBeTruthy()
123
- expect(match(`numberProperty > 1234`)).toBeFalsy()
124
- })
125
-
126
- test('numberProperty >= ...', async () => {
127
- expect(match(`numberProperty >= 1234`)).toBeTruthy()
128
- expect(match(`numberProperty >= 1235`)).toBeFalsy()
129
- })
130
- test('numberProperty < ...', async () => {
131
- expect(match(`numberProperty < 1235`)).toBeTruthy()
132
- expect(match(`numberProperty < 1234`)).toBeFalsy()
133
- })
134
-
135
- test('numberProperty <= ...', async () => {
136
- expect(match(`numberProperty <= 1235`)).toBeTruthy()
137
- expect(match(`numberProperty <= 1234`)).toBeTruthy()
138
- expect(match(`numberProperty <= 1233`)).toBeFalsy()
139
- })
140
-
141
- test('numberPropery in (...)', async () => {
142
- expect(match(`numberProperty in (1233, 1234, 1235)`)).toBeTruthy()
143
- })
144
-
145
- test('numberPropery in (...) single value', async () => {
146
- expect(match(`numberProperty in (1234)`)).toBeTruthy()
147
- })
148
-
149
- test('arrayProperty contains all (...)', async () => {
150
- expect(match(`arrayProperty contains all ("foo", "bar")`)).toBeTruthy()
108
+ match(`stringProperty matches ignore case :val`, { val: "fooBar" }),
109
+ ).toBeTruthy();
110
+ });
111
+
112
+ test("numberProperty = 1234", async () => {
113
+ expect(match(`numberProperty=1234`)).toBeTruthy();
114
+ expect(match(`numberProperty = 1234`)).toBeTruthy();
115
+ expect(match(`numberProperty=1230`)).toBeFalsy();
116
+ expect(match(`numberProperty = 1230`)).toBeFalsy();
117
+
118
+ expect(match(`numberProperty=:val`, { val: 1234 })).toBeTruthy();
119
+ });
120
+
121
+ test("numberProperty > ...", async () => {
122
+ expect(match(`numberProperty > 1233`)).toBeTruthy();
123
+ expect(match(`numberProperty > 1234`)).toBeFalsy();
124
+ });
125
+
126
+ test("numberProperty >= ...", async () => {
127
+ expect(match(`numberProperty >= 1234`)).toBeTruthy();
128
+ expect(match(`numberProperty >= 1235`)).toBeFalsy();
129
+ });
130
+ test("numberProperty < ...", async () => {
131
+ expect(match(`numberProperty < 1235`)).toBeTruthy();
132
+ expect(match(`numberProperty < 1234`)).toBeFalsy();
133
+ });
134
+
135
+ test("numberProperty <= ...", async () => {
136
+ expect(match(`numberProperty <= 1235`)).toBeTruthy();
137
+ expect(match(`numberProperty <= 1234`)).toBeTruthy();
138
+ expect(match(`numberProperty <= 1233`)).toBeFalsy();
139
+ });
140
+
141
+ test("numberPropery in (...)", async () => {
142
+ expect(match(`numberProperty in (1233, 1234, 1235)`)).toBeTruthy();
143
+ });
144
+
145
+ test("numberPropery in (...) single value", async () => {
146
+ expect(match(`numberProperty in (1234)`)).toBeTruthy();
147
+ });
148
+
149
+ test("arrayProperty contains all (...)", async () => {
150
+ expect(match(`arrayProperty contains all ("foo", "bar")`)).toBeTruthy();
151
151
  expect(
152
- match(`arrayProperty contains all ("foo", "bar", "no!")`)
153
- ).toBeFalsy()
154
- })
155
-
156
- test('arrayProperty is empty', async () => {
157
- expect(match(`arrayProperty is empty`)).toBeFalsy()
158
- expect(match(`arrayProperty is not empty`)).toBeTruthy()
159
- expect(match(`emptyArrayProperty is empty`)).toBeTruthy()
160
- })
161
-
162
- test('property is defined', async () => {
163
- expect(match(`notDefined is defined`)).toBeFalsy()
164
- expect(match(`notDefined is not defined`)).toBeTruthy()
165
-
166
- expect(match(`arrayProperty is defined`)).toBeTruthy()
167
- expect(match(`arrayProperty is not defined`)).toBeFalsy()
168
- })
169
-
170
- test('arrayProperty contains any (...)', async () => {
171
- expect(match(`arrayProperty contains any ("NO!")`)).toBeFalsy()
172
- expect(match(`arrayProperty contains any ("foo", "bar")`)).toBeTruthy()
152
+ match(`arrayProperty contains all ("foo", "bar", "no!")`),
153
+ ).toBeFalsy();
154
+ });
155
+
156
+ test("arrayProperty is empty", async () => {
157
+ expect(match(`arrayProperty is empty`)).toBeFalsy();
158
+ expect(match(`arrayProperty is not empty`)).toBeTruthy();
159
+ expect(match(`emptyArrayProperty is empty`)).toBeTruthy();
160
+ });
161
+
162
+ test("property is defined", async () => {
163
+ expect(match(`notDefined is defined`)).toBeFalsy();
164
+ expect(match(`notDefined is not defined`)).toBeTruthy();
165
+
166
+ expect(match(`arrayProperty is defined`)).toBeTruthy();
167
+ expect(match(`arrayProperty is not defined`)).toBeFalsy();
168
+ });
169
+
170
+ test("arrayProperty contains any (...)", async () => {
171
+ expect(match(`arrayProperty contains any ("NO!")`)).toBeFalsy();
172
+ expect(match(`arrayProperty contains any ("foo", "bar")`)).toBeTruthy();
173
173
  expect(
174
- match(`arrayProperty contains any ("foo", "bar", "no!")`)
175
- ).toBeTruthy()
176
- })
174
+ match(`arrayProperty contains any ("foo", "bar", "no!")`),
175
+ ).toBeTruthy();
176
+ });
177
177
 
178
- test('nestedArray filters on property', async () => {
179
- expect(match(`nested(array(stringProperty="foo"))`)).toBeTruthy()
180
- expect(match(`nested(array(stringProperty="bar"))`)).toBeTruthy()
181
- expect(match(`nested(array(stringProperty="foobar"))`)).toBeFalsy()
178
+ test("nestedArray filters on property", async () => {
179
+ expect(match(`nested(array(stringProperty="foo"))`)).toBeTruthy();
180
+ expect(match(`nested(array(stringProperty="bar"))`)).toBeTruthy();
181
+ expect(match(`nested(array(stringProperty="foobar"))`)).toBeFalsy();
182
182
 
183
183
  // One level deeper
184
184
  expect(
185
- match(`nested(array(objectProperty(stringProperty="foo")))`)
186
- ).toBeTruthy()
185
+ match(`nested(array(objectProperty(stringProperty="foo")))`),
186
+ ).toBeTruthy();
187
187
  expect(
188
- match(`nested(array(objectProperty(stringProperty="bar")))`)
189
- ).toBeTruthy()
188
+ match(`nested(array(objectProperty(stringProperty="bar")))`),
189
+ ).toBeTruthy();
190
190
  expect(
191
- match(`nested(array(objectProperty(stringProperty="foobar")))`)
192
- ).toBeFalsy()
193
- })
191
+ match(`nested(array(objectProperty(stringProperty="foobar")))`),
192
+ ).toBeFalsy();
193
+ });
194
194
 
195
- test('array filters on property', async () => {
196
- expect(match(`array(nestedArray(stringProperty="foo")))`)).toBeTruthy()
195
+ test("array filters on property", async () => {
196
+ expect(match(`array(nestedArray(stringProperty="foo")))`)).toBeTruthy();
197
197
  expect(
198
- match(`array(nestedArray(nested(stringProperty="foo"))))`)
199
- ).toBeTruthy()
200
- })
198
+ match(`array(nestedArray(nested(stringProperty="foo"))))`),
199
+ ).toBeTruthy();
200
+ });
201
201
 
202
- test('geolocation within circle (...)', async () => {
202
+ test("geolocation within circle (...)", async () => {
203
203
  expect(
204
204
  match(
205
- `geoLocation within circle(5.121310867198959, 52.09068804569714, 2500)`
206
- )
207
- ).toBeTruthy()
205
+ `geoLocation within circle(5.121310867198959, 52.09068804569714, 2500)`,
206
+ ),
207
+ ).toBeTruthy();
208
208
  expect(
209
209
  match(
210
- `geoLocation within circle(5.121310867198959, 52.09068804569714, 2400)`
211
- )
212
- ).toBeFalsy()
213
- })
214
-
215
- test('negate any other conditional expression', async () => {
216
- expect(match(`numberProperty = 1234`)).toBeTruthy()
217
- expect(match(`not (numberProperty = 1234)`)).toBeFalsy()
218
- expect(match(`not (numberProperty = 1235)`)).toBeTruthy()
219
- expect(match(`not (numberProperty = 1235)`)).toBeTruthy()
220
-
221
- expect(match(`nested(numberProperty=1234))`)).toBeTruthy()
222
- expect(match(`nested(not(numberProperty=1230)))`)).toBeTruthy()
223
- expect(match(`nested(not(numberProperty=1234)))`)).toBeFalsy()
224
- })
225
-
226
- test('and clause (implicit)', async () => {
210
+ `geoLocation within circle(5.121310867198959, 52.09068804569714, 2400)`,
211
+ ),
212
+ ).toBeFalsy();
213
+ });
214
+
215
+ test("negate any other conditional expression", async () => {
216
+ expect(match(`numberProperty = 1234`)).toBeTruthy();
217
+ expect(match(`not (numberProperty = 1234)`)).toBeFalsy();
218
+ expect(match(`not (numberProperty = 1235)`)).toBeTruthy();
219
+ expect(match(`not (numberProperty = 1235)`)).toBeTruthy();
220
+
221
+ expect(match(`nested(numberProperty=1234))`)).toBeTruthy();
222
+ expect(match(`nested(not(numberProperty=1230)))`)).toBeTruthy();
223
+ expect(match(`nested(not(numberProperty=1234)))`)).toBeFalsy();
224
+ });
225
+
226
+ test("and clause (implicit)", async () => {
227
227
  expect(
228
- match([`stringProperty="foobar"`, `numberProperty=1234`])
229
- ).toBeTruthy()
228
+ match([`stringProperty="foobar"`, `numberProperty=1234`]),
229
+ ).toBeTruthy();
230
230
 
231
231
  expect(
232
- match([`stringProperty="foobar"`, `numberProperty=1111`])
233
- ).toBeFalsy()
234
- })
232
+ match([`stringProperty="foobar"`, `numberProperty=1111`]),
233
+ ).toBeFalsy();
234
+ });
235
235
 
236
- test('and clause (explicit)', async () => {
237
- expect(match(`numberProperty>1233 and numberProperty<1235`)).toBeTruthy()
238
- expect(match(`numberProperty>1233 and numberProperty<1234`)).toBeFalsy()
239
- })
236
+ test("and clause (explicit)", async () => {
237
+ expect(match(`numberProperty>1233 and numberProperty<1235`)).toBeTruthy();
238
+ expect(match(`numberProperty>1233 and numberProperty<1234`)).toBeFalsy();
239
+ });
240
240
 
241
- test('or clause', async () => {
241
+ test("or clause", async () => {
242
242
  expect(
243
243
  match(
244
- `numberProperty=1231 or numberProperty>54312 or numberProperty=1234`
245
- )
246
- ).toBeTruthy()
247
- expect(match(`numberProperty=1231 or numberProperty=1234`)).toBeTruthy()
248
- expect(match(`numberProperty=1231 or (numberProperty=1234)`)).toBeTruthy()
249
- expect(match(`numberProperty=1233 or numberProperty=1235`)).toBeFalsy()
250
- })
251
-
252
- test('or / and clause mixed', async () => {
244
+ `numberProperty=1231 or numberProperty>54312 or numberProperty=1234`,
245
+ ),
246
+ ).toBeTruthy();
247
+ expect(match(`numberProperty=1231 or numberProperty=1234`)).toBeTruthy();
248
+ expect(match(`numberProperty=1231 or (numberProperty=1234)`)).toBeTruthy();
249
+ expect(match(`numberProperty=1233 or numberProperty=1235`)).toBeFalsy();
250
+ });
251
+
252
+ test("or / and clause mixed", async () => {
253
253
  expect(
254
254
  match(
255
- `numberProperty=1234 and (numberProperty=1230 or (numberProperty=1234 or numberProperty=1235))`
256
- )
257
- ).toBeTruthy()
258
- })
259
- test('nested attribute access', async () => {
255
+ `numberProperty=1234 and (numberProperty=1230 or (numberProperty=1234 or numberProperty=1235))`,
256
+ ),
257
+ ).toBeTruthy();
258
+ });
259
+ test("nested attribute access", async () => {
260
260
  expect(
261
- match(`nested(objectProperty(stringProperty="foobar"))`)
262
- ).toBeTruthy()
263
- })
261
+ match(`nested(objectProperty(stringProperty="foobar"))`),
262
+ ).toBeTruthy();
263
+ });
264
264
 
265
- test('nested attribute access', async () => {
266
- expect(match(`nested(objectProperty(booleanProperty != true))`)).toBeFalsy()
265
+ test("nested attribute access", async () => {
267
266
  expect(
268
- match(`nested(objectProperty(booleanProperty != false))`)
269
- ).toBeTruthy()
270
- })
267
+ match(`nested(objectProperty(booleanProperty != true))`),
268
+ ).toBeFalsy();
269
+ expect(
270
+ match(`nested(objectProperty(booleanProperty != false))`),
271
+ ).toBeTruthy();
272
+ });
271
273
 
272
274
  // TODO: disabled for now, see remark in predicateParser.ts in resolveValue
273
275
  // test('lexer confusion', async () => {
@@ -282,17 +284,17 @@ describe('Predicate filter', () => {
282
284
  // )
283
285
  // })
284
286
 
285
- test('invalid predicate', async () => {
286
- expect(() => match(`stringProperty=nomatch`)).toThrow(PredicateError)
287
+ test("invalid predicate", async () => {
288
+ expect(() => match(`stringProperty=nomatch`)).toThrow(PredicateError);
287
289
  expect(() => match(`stringProperty=nomatch`)).toThrow(
288
- "Invalid input 'n', expected input parameter or primitive value (line 1, column 16)"
289
- )
290
- expect(() => match(`stringProperty`)).toThrow(PredicateError)
291
- })
292
- })
293
-
294
- describe('Report parse errors', () => {
295
- test('unexpect input', () => {
296
- expect(() => parseQueryExpression('foo=bar')).toThrow(PredicateError)
297
- })
298
- })
290
+ "Invalid input 'n', expected input parameter or primitive value (line 1, column 16)",
291
+ );
292
+ expect(() => match(`stringProperty`)).toThrow(PredicateError);
293
+ });
294
+ });
295
+
296
+ describe("Report parse errors", () => {
297
+ test("unexpect input", () => {
298
+ expect(() => parseQueryExpression("foo=bar")).toThrow(PredicateError);
299
+ });
300
+ });