Skip to content

Commit e09aeb2

Browse files
committed
fix: #24 operators in and not in not working correctly with nullish types
1 parent b6fd569 commit e09aeb2

File tree

3 files changed

+25
-16
lines changed

3 files changed

+25
-16
lines changed

src/functions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ export const functions: FunctionBuildersMap = {
318318
const _value = getValue(data)
319319
const _values = getValues(data) as unknown[]
320320

321-
return !!_values.find((item) => isEqual(item, _value))
321+
return _values.findIndex((item) => isEqual(item, _value)) !== -1
322322
}
323323
},
324324
'not in': (value: JSONQuery, values: JSONQuery) => {

test-suite/compile.test.json

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"source": "https://github.com/jsonquerylang/jsonquery/blob/v5.0.1/test-suite/compile.test.json",
3-
"version": "5.0.1",
2+
"source": "https://github.com/jsonquerylang/jsonquery/blob/v5.0.3/test-suite/compile.test.json",
3+
"version": "5.0.3",
44
"groups": [
55
{
66
"category": "value",
@@ -1844,11 +1844,16 @@
18441844
"query": ["in", ["get", "score"], ["array", 1, 2, 5, 8]],
18451845
"output": false
18461846
},
1847-
{
1848-
"input": null,
1849-
"query": ["in", 5, ["array", 1, 2, 5, 8]],
1850-
"output": true
1851-
}
1847+
{ "input": null, "query": ["in", 5, ["array", 1, 2, 5, 8]], "output": true },
1848+
{ "input": null, "query": ["in", false, ["array", true, false]], "output": true },
1849+
{ "input": null, "query": ["in", true, ["array", true, false]], "output": true },
1850+
{ "input": null, "query": ["in", false, ["array", true]], "output": false },
1851+
{ "input": null, "query": ["in", true, ["array", false]], "output": false },
1852+
{ "input": null, "query": ["in", null, ["array", 1, 2, 3]], "output": false },
1853+
{ "input": null, "query": ["in", null, ["array", null, 1, 2, 3]], "output": true },
1854+
{ "input": null, "query": ["in", "", ["array", "A", "", "B"]], "output": true },
1855+
{ "input": null, "query": ["in", 0, ["array", 1, 2, 3]], "output": false },
1856+
{ "input": null, "query": ["in", 0, ["array", 0, 1, 2, 3]], "output": true }
18521857
]
18531858
},
18541859
{
@@ -1914,11 +1919,15 @@
19141919
"query": ["not in", ["get", "score"], ["array", 1, 2, 5, 8]],
19151920
"output": true
19161921
},
1917-
{
1918-
"input": null,
1919-
"query": ["not in", 7, ["array", 1, 2, 5, 8]],
1920-
"output": true
1921-
}
1922+
{ "input": null, "query": ["not in", 7, ["array", 1, 2, 5, 8]], "output": true },
1923+
{ "input": null, "query": ["not in", true, ["array", true, false]], "output": false },
1924+
{ "input": null, "query": ["not in", false, ["array", true]], "output": true },
1925+
{ "input": null, "query": ["not in", true, ["array", false]], "output": true },
1926+
{ "input": null, "query": ["not in", null, ["array", 1, 2, 3]], "output": true },
1927+
{ "input": null, "query": ["not in", null, ["array", null, 1, 2, 3]], "output": false },
1928+
{ "input": null, "query": ["not in", "", ["array", "A", "", "B"]], "output": false },
1929+
{ "input": null, "query": ["not in", 0, ["array", 1, 2, 3]], "output": true },
1930+
{ "input": null, "query": ["not in", 0, ["array", 0, 1, 2, 3]], "output": false }
19221931
]
19231932
},
19241933
{

test-suite/compile.test.schema.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
{
22
"$schema": "http://json-schema.org/draft-07/schema",
3-
"$id": "https://github.com/jsonquerylang/jsonquery/blob/v5.0.1/test-suite/compile.test.schema.json",
3+
"$id": "https://github.com/jsonquerylang/jsonquery/blob/v5.0.3/test-suite/compile.test.schema.json",
44
"type": "object",
55
"properties": {
66
"source": {
7-
"const": "https://github.com/jsonquerylang/jsonquery/blob/v5.0.1/test-suite/compile.test.json"
7+
"const": "https://github.com/jsonquerylang/jsonquery/blob/v5.0.3/test-suite/compile.test.json"
88
},
99
"version": {
10-
"const": "5.0.1"
10+
"const": "5.0.3"
1111
},
1212
"groups": {
1313
"type": "array",

0 commit comments

Comments
 (0)