-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
/
prefer-query-object-syntax.test.ts
151 lines (148 loc) 路 4.53 KB
/
prefer-query-object-syntax.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
import { rule, name } from './prefer-query-object-syntax'
import { createRuleTester, normalizeIndent } from '../../utils/test-utils'
const ruleTester = createRuleTester()
ruleTester.run(name, rule, {
valid: [
{
code: normalizeIndent`
useQuery()
`,
},
{
code: normalizeIndent`
import { useQuery } from "@tanstack/react-query";
useQuery();
`,
},
{
code: normalizeIndent`
import { useQuery } from "@tanstack/react-query";
useQuery({ queryKey, queryFn, enabled });
`,
},
{
code: normalizeIndent`
import { useQuery } from "@tanstack/react-query";
const result = useQuery({ queryKey, queryFn, enabled });
`,
},
{
code: normalizeIndent`
import { createQuery } from "@tanstack/solid-query";
const result = useQuery({ queryKey, queryFn, enabled });
`,
},
{
code: normalizeIndent`
import { useQuery } from "somewhere-else";
useQuery(queryKey, queryFn, { enabled });
`,
},
{
code: normalizeIndent`
import { useQuery } from "@tanstack/react-query";
const getPosts = async () => Promise.resolve([]);
const postsQuery = { queryKey: ["posts"], queryFn: () => getPosts() };
const usePosts = () => useQuery(postsQuery);
`,
},
],
invalid: [
{
code: normalizeIndent`
import { useQuery } from "@tanstack/react-query";
useQuery(['data']);
`,
errors: [{ messageId: 'preferObjectSyntax' }],
output: normalizeIndent`
import { useQuery } from "@tanstack/react-query";
useQuery({ queryKey: ['data'] });
`,
},
{
code: normalizeIndent`
import { useQuery } from "@tanstack/react-query";
useQuery(queryKey);
`,
errors: [{ messageId: 'preferObjectSyntax' }],
output: normalizeIndent`
import { useQuery } from "@tanstack/react-query";
useQuery({ queryKey });
`,
},
{
code: normalizeIndent`
import { useQuery } from "@tanstack/react-query";
useQuery(queryKey, queryFn);
`,
errors: [{ messageId: 'preferObjectSyntax' }],
// no autofix
},
{
code: normalizeIndent`
import { useQuery } from "@tanstack/react-query";
useQuery(['data'], () => fetchData());
`,
errors: [{ messageId: 'preferObjectSyntax' }],
output: normalizeIndent`
import { useQuery } from "@tanstack/react-query";
useQuery({ queryKey: ['data'], queryFn: () => fetchData() });
`,
},
{
code: normalizeIndent`
import { useQuery } from "@tanstack/react-query";
useQuery(queryKey, queryFn, { enabled });
`,
errors: [{ messageId: 'preferObjectSyntax' }],
output: normalizeIndent`
import { useQuery } from "@tanstack/react-query";
useQuery({ queryKey, queryFn, enabled });
`,
},
{
code: normalizeIndent`
import { useQuery } from "@tanstack/react-query";
useQuery(['data'], () => fetchData(), { enabled: false });
`,
errors: [{ messageId: 'preferObjectSyntax' }],
output: normalizeIndent`
import { useQuery } from "@tanstack/react-query";
useQuery({ queryKey: ['data'], queryFn: () => fetchData(), enabled: false });
`,
},
{
code: normalizeIndent`
import { useQuery } from "@tanstack/react-query";
useQuery(queryKey, { queryFn, enabled });
`,
errors: [{ messageId: 'preferObjectSyntax' }],
output: normalizeIndent`
import { useQuery } from "@tanstack/react-query";
useQuery({ queryKey, queryFn, enabled });
`,
},
{
code: normalizeIndent`
import { useQuery } from "@tanstack/react-query";
useQuery(['data'], { queryFn: () => fetchData(), enabled: false });
`,
errors: [{ messageId: 'preferObjectSyntax' }],
output: normalizeIndent`
import { useQuery } from "@tanstack/react-query";
useQuery({ queryKey: ['data'], queryFn: () => fetchData(), enabled: false });
`,
},
{
code: normalizeIndent`
import { createQuery } from "@tanstack/solid-query";
createQuery(['data'], { queryFn: () => fetchData(), enabled: false });
`,
errors: [{ messageId: 'preferObjectSyntax' }],
output: normalizeIndent`
import { createQuery } from "@tanstack/solid-query";
createQuery({ queryKey: ['data'], queryFn: () => fetchData(), enabled: false });
`,
},
],
})