Skip to content

Commit 4b54679

Browse files
committed
Add simple unit test for BQRS decoding to external API usages
1 parent d51ff42 commit 4b54679

File tree

1 file changed

+333
-0
lines changed
  • extensions/ql-vscode/test/unit-tests/data-extensions-editor

1 file changed

+333
-0
lines changed
Lines changed: 333 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,333 @@
1+
import { decodeBqrsToExternalApiUsages } from "../../../src/data-extensions-editor/bqrs";
2+
import { DecodedBqrsChunk } from "../../../src/pure/bqrs-cli-types";
3+
4+
describe("decodeBqrsToExternalApiUsages", () => {
5+
const chunk: DecodedBqrsChunk = {
6+
columns: [
7+
{ name: "apiName", kind: "String" },
8+
{ name: "supported", kind: "Boolean" },
9+
{ name: "usage", kind: "Entity" },
10+
],
11+
tuples: [
12+
[
13+
"java.io.PrintStream#println(String)",
14+
true,
15+
{
16+
label: "println(...)",
17+
url: {
18+
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/HelloController.java",
19+
startLine: 29,
20+
startColumn: 9,
21+
endLine: 29,
22+
endColumn: 49,
23+
},
24+
},
25+
],
26+
[
27+
"org.springframework.boot.SpringApplication#run(Class,String[])",
28+
false,
29+
{
30+
label: "run(...)",
31+
url: {
32+
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/Sql2oExampleApplication.java",
33+
startLine: 9,
34+
startColumn: 9,
35+
endLine: 9,
36+
endColumn: 66,
37+
},
38+
},
39+
],
40+
[
41+
"org.sql2o.Connection#createQuery(String)",
42+
true,
43+
{
44+
label: "createQuery(...)",
45+
url: {
46+
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/HelloController.java",
47+
startLine: 15,
48+
startColumn: 13,
49+
endLine: 15,
50+
endColumn: 56,
51+
},
52+
},
53+
],
54+
[
55+
"org.sql2o.Connection#createQuery(String)",
56+
true,
57+
{
58+
label: "createQuery(...)",
59+
url: {
60+
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/HelloController.java",
61+
startLine: 26,
62+
startColumn: 13,
63+
endLine: 26,
64+
endColumn: 39,
65+
},
66+
},
67+
],
68+
[
69+
"org.sql2o.Query#executeScalar(Class)",
70+
true,
71+
{
72+
label: "executeScalar(...)",
73+
url: {
74+
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/HelloController.java",
75+
startLine: 15,
76+
startColumn: 13,
77+
endLine: 15,
78+
endColumn: 85,
79+
},
80+
},
81+
],
82+
[
83+
"org.sql2o.Query#executeScalar(Class)",
84+
true,
85+
{
86+
label: "executeScalar(...)",
87+
url: {
88+
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/HelloController.java",
89+
startLine: 26,
90+
startColumn: 13,
91+
endLine: 26,
92+
endColumn: 68,
93+
},
94+
},
95+
],
96+
[
97+
"org.sql2o.Sql2o#open()",
98+
true,
99+
{
100+
label: "open(...)",
101+
url: {
102+
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/HelloController.java",
103+
startLine: 14,
104+
startColumn: 24,
105+
endLine: 14,
106+
endColumn: 35,
107+
},
108+
},
109+
],
110+
[
111+
"org.sql2o.Sql2o#open()",
112+
true,
113+
{
114+
label: "open(...)",
115+
url: {
116+
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/HelloController.java",
117+
startLine: 25,
118+
startColumn: 24,
119+
endLine: 25,
120+
endColumn: 35,
121+
},
122+
},
123+
],
124+
[
125+
"org.sql2o.Sql2o#Sql2o(String,String,String)",
126+
true,
127+
{
128+
label: "new Sql2o(...)",
129+
url: {
130+
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/HelloController.java",
131+
startLine: 10,
132+
startColumn: 33,
133+
endLine: 10,
134+
endColumn: 88,
135+
},
136+
},
137+
],
138+
[
139+
"org.sql2o.Sql2o#Sql2o(String)",
140+
true,
141+
{
142+
label: "new Sql2o(...)",
143+
url: {
144+
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/HelloController.java",
145+
startLine: 23,
146+
startColumn: 23,
147+
endLine: 23,
148+
endColumn: 36,
149+
},
150+
},
151+
],
152+
],
153+
};
154+
155+
it("extracts api usages", () => {
156+
// Even though there are a number of usages with the same number of usages, the order returned should be stable:
157+
// - Iterating over a map (as done by .values()) is guaranteed to be in insertion order
158+
// - Sorting the array of usages is guaranteed to be a stable sort
159+
expect(decodeBqrsToExternalApiUsages(chunk)).toEqual([
160+
{
161+
signature: "org.sql2o.Connection#createQuery(String)",
162+
packageName: "org.sql2o",
163+
typeName: "Connection",
164+
methodName: "createQuery",
165+
methodParameters: "(String)",
166+
supported: true,
167+
usages: [
168+
{
169+
label: "createQuery(...)",
170+
url: {
171+
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/HelloController.java",
172+
startLine: 15,
173+
startColumn: 13,
174+
endLine: 15,
175+
endColumn: 56,
176+
},
177+
},
178+
{
179+
label: "createQuery(...)",
180+
url: {
181+
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/HelloController.java",
182+
startLine: 26,
183+
startColumn: 13,
184+
endLine: 26,
185+
endColumn: 39,
186+
},
187+
},
188+
],
189+
},
190+
{
191+
signature: "org.sql2o.Query#executeScalar(Class)",
192+
packageName: "org.sql2o",
193+
typeName: "Query",
194+
methodName: "executeScalar",
195+
methodParameters: "(Class)",
196+
supported: true,
197+
usages: [
198+
{
199+
label: "executeScalar(...)",
200+
url: {
201+
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/HelloController.java",
202+
startLine: 15,
203+
startColumn: 13,
204+
endLine: 15,
205+
endColumn: 85,
206+
},
207+
},
208+
{
209+
label: "executeScalar(...)",
210+
url: {
211+
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/HelloController.java",
212+
startLine: 26,
213+
startColumn: 13,
214+
endLine: 26,
215+
endColumn: 68,
216+
},
217+
},
218+
],
219+
},
220+
{
221+
signature: "org.sql2o.Sql2o#open()",
222+
packageName: "org.sql2o",
223+
typeName: "Sql2o",
224+
methodName: "open",
225+
methodParameters: "()",
226+
supported: true,
227+
usages: [
228+
{
229+
label: "open(...)",
230+
url: {
231+
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/HelloController.java",
232+
startLine: 14,
233+
startColumn: 24,
234+
endLine: 14,
235+
endColumn: 35,
236+
},
237+
},
238+
{
239+
label: "open(...)",
240+
url: {
241+
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/HelloController.java",
242+
startLine: 25,
243+
startColumn: 24,
244+
endLine: 25,
245+
endColumn: 35,
246+
},
247+
},
248+
],
249+
},
250+
{
251+
signature: "java.io.PrintStream#println(String)",
252+
packageName: "java.io",
253+
typeName: "PrintStream",
254+
methodName: "println",
255+
methodParameters: "(String)",
256+
supported: true,
257+
usages: [
258+
{
259+
label: "println(...)",
260+
url: {
261+
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/HelloController.java",
262+
startLine: 29,
263+
startColumn: 9,
264+
endLine: 29,
265+
endColumn: 49,
266+
},
267+
},
268+
],
269+
},
270+
{
271+
signature:
272+
"org.springframework.boot.SpringApplication#run(Class,String[])",
273+
packageName: "org.springframework.boot",
274+
typeName: "SpringApplication",
275+
methodName: "run",
276+
methodParameters: "(Class,String[])",
277+
supported: false,
278+
usages: [
279+
{
280+
label: "run(...)",
281+
url: {
282+
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/Sql2oExampleApplication.java",
283+
startLine: 9,
284+
startColumn: 9,
285+
endLine: 9,
286+
endColumn: 66,
287+
},
288+
},
289+
],
290+
},
291+
{
292+
signature: "org.sql2o.Sql2o#Sql2o(String,String,String)",
293+
packageName: "org.sql2o",
294+
typeName: "Sql2o",
295+
methodName: "Sql2o",
296+
methodParameters: "(String,String,String)",
297+
supported: true,
298+
usages: [
299+
{
300+
label: "new Sql2o(...)",
301+
url: {
302+
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/HelloController.java",
303+
startLine: 10,
304+
startColumn: 33,
305+
endLine: 10,
306+
endColumn: 88,
307+
},
308+
},
309+
],
310+
},
311+
{
312+
signature: "org.sql2o.Sql2o#Sql2o(String)",
313+
packageName: "org.sql2o",
314+
typeName: "Sql2o",
315+
methodName: "Sql2o",
316+
methodParameters: "(String)",
317+
supported: true,
318+
usages: [
319+
{
320+
label: "new Sql2o(...)",
321+
url: {
322+
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/HelloController.java",
323+
startLine: 23,
324+
startColumn: 23,
325+
endLine: 23,
326+
endColumn: 36,
327+
},
328+
},
329+
],
330+
},
331+
]);
332+
});
333+
});

0 commit comments

Comments
 (0)