|
1 | 1 | import { describe, expect, test } from 'vitest'
|
2 |
| -import { buildFunction, compile, jsonquery, parse, stringify } from './jsonquery' |
| 2 | +import { |
| 3 | + type JSONQuery, |
| 4 | + type JSONQueryOptions, |
| 5 | + buildFunction, |
| 6 | + compile, |
| 7 | + jsonquery, |
| 8 | + parse, |
| 9 | + stringify |
| 10 | +} from './jsonquery' |
3 | 11 |
|
4 | 12 | describe('jsonquery', () => {
|
5 | 13 | test('should execute a JSON query', () => {
|
6 |
| - expect(jsonquery({ name: 'Joe' }, ['get', 'name'])).toEqual('Joe') |
| 14 | + const query: JSONQuery = ['get', 'name'] |
| 15 | + expect(jsonquery({ name: 'Joe' }, query)).toEqual('Joe') |
7 | 16 | })
|
8 | 17 |
|
9 | 18 | test('should execute a text query', () => {
|
10 | 19 | expect(jsonquery({ name: 'Joe' }, '.name')).toEqual('Joe')
|
11 | 20 | })
|
12 | 21 |
|
13 | 22 | test('should execute a JSON query with custom functions', () => {
|
14 |
| - const functions = { |
15 |
| - customFn: () => (_data: unknown) => 42 |
| 23 | + const options: JSONQueryOptions = { |
| 24 | + functions: { |
| 25 | + customFn: () => (_data: unknown) => 42 |
| 26 | + } |
16 | 27 | }
|
17 | 28 |
|
18 |
| - expect(jsonquery({}, ['customFn'], { functions })).toEqual(42) |
| 29 | + expect(jsonquery({}, ['customFn'], options)).toEqual(42) |
19 | 30 | })
|
20 | 31 |
|
21 | 32 | test('should execute a text query with custom functions', () => {
|
22 |
| - const functions = { |
23 |
| - customFn: () => (_data: unknown) => 42 |
| 33 | + const options: JSONQueryOptions = { |
| 34 | + functions: { |
| 35 | + customFn: () => (_data: unknown) => 42 |
| 36 | + } |
24 | 37 | }
|
25 | 38 |
|
26 |
| - expect(jsonquery({ name: 'Joe' }, '.name', { functions })).toEqual('Joe') |
| 39 | + expect(jsonquery({ name: 'Joe' }, '.name', options)).toEqual('Joe') |
27 | 40 | })
|
28 | 41 |
|
29 | 42 | test('should execute a JSON query with custom operators', () => {
|
30 |
| - const operators = { |
31 |
| - aboutEq: '~=' |
| 43 | + const options: JSONQueryOptions = { |
| 44 | + operators: { |
| 45 | + aboutEq: '~=' |
| 46 | + } |
32 | 47 | }
|
33 | 48 |
|
34 |
| - expect(jsonquery({ name: 'Joe' }, ['get', 'name'], { operators })).toEqual('Joe') |
| 49 | + expect(jsonquery({ name: 'Joe' }, ['get', 'name'], options)).toEqual('Joe') |
35 | 50 | })
|
36 | 51 |
|
37 | 52 | test('should execute a text query with custom operators', () => {
|
38 |
| - const operators = { |
39 |
| - aboutEq: '~=' |
| 53 | + const options: JSONQueryOptions = { |
| 54 | + operators: { |
| 55 | + aboutEq: '~=' |
| 56 | + } |
40 | 57 | }
|
41 | 58 |
|
42 |
| - expect(jsonquery({ name: 'Joe' }, '.name', { operators })).toEqual('Joe') |
| 59 | + expect(jsonquery({ name: 'Joe' }, '.name', options)).toEqual('Joe') |
43 | 60 | })
|
44 | 61 |
|
45 | 62 | test('have exported all documented functions', () => {
|
|
0 commit comments