Merge pull request #3326 from github/koesie10/add-endpoint-type
Add endpoint type to method definition
This commit is contained in:
@@ -3,7 +3,7 @@ import type {
|
||||
BqrsEntityValue,
|
||||
} from "../common/bqrs-cli-types";
|
||||
import type { Method, Usage } from "./method";
|
||||
import { CallClassification } from "./method";
|
||||
import { EndpointType, CallClassification } from "./method";
|
||||
import type { ModeledMethodType } from "./modeled-method";
|
||||
import { parseLibraryFilename } from "./library";
|
||||
import { Mode } from "./shared/mode";
|
||||
@@ -33,6 +33,7 @@ export function decodeBqrsToMethods(
|
||||
let libraryVersion: string | undefined;
|
||||
let type: ModeledMethodType;
|
||||
let classification: CallClassification;
|
||||
let endpointType = EndpointType.Method;
|
||||
|
||||
if (mode === Mode.Application) {
|
||||
[
|
||||
@@ -62,7 +63,16 @@ export function decodeBqrsToMethods(
|
||||
classification = CallClassification.Unknown;
|
||||
}
|
||||
|
||||
if ((type as string) === "") {
|
||||
type = "none";
|
||||
}
|
||||
|
||||
if (methodName === "") {
|
||||
endpointType = EndpointType.Class;
|
||||
}
|
||||
|
||||
const signature = definition.createMethodSignature({
|
||||
endpointType,
|
||||
packageName,
|
||||
typeName,
|
||||
methodName,
|
||||
@@ -93,6 +103,7 @@ export function decodeBqrsToMethods(
|
||||
library,
|
||||
libraryVersion,
|
||||
signature,
|
||||
endpointType,
|
||||
packageName,
|
||||
typeName,
|
||||
methodName,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { parseAccessPathTokens } from "../../shared/access-paths";
|
||||
import { EndpointType } from "../../method";
|
||||
|
||||
const methodTokenRegex = /^Method\[(.+)]$/;
|
||||
|
||||
@@ -62,3 +63,7 @@ export function rubyPath(methodName: string, path: string) {
|
||||
|
||||
return `${methodPath}.${path}`;
|
||||
}
|
||||
|
||||
export function rubyEndpointType(methodName: string) {
|
||||
return methodName === "" ? EndpointType.Class : EndpointType.Method;
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import { getArgumentsList } from "../../method";
|
||||
import {
|
||||
parseRubyAccessPath,
|
||||
parseRubyMethodFromPath,
|
||||
rubyEndpointType,
|
||||
rubyMethodPath,
|
||||
rubyMethodSignature,
|
||||
rubyPath,
|
||||
@@ -37,11 +38,11 @@ export const ruby: ModelsAsDataLanguage = {
|
||||
);
|
||||
return {
|
||||
type: "source",
|
||||
input: "",
|
||||
output,
|
||||
kind: row[2] as string,
|
||||
provenance: "manual",
|
||||
signature: rubyMethodSignature(typeName, methodName),
|
||||
endpointType: rubyEndpointType(methodName),
|
||||
packageName: "",
|
||||
typeName,
|
||||
methodName,
|
||||
@@ -70,10 +71,10 @@ export const ruby: ModelsAsDataLanguage = {
|
||||
return {
|
||||
type: "sink",
|
||||
input,
|
||||
output: "",
|
||||
kind: row[2] as string,
|
||||
provenance: "manual",
|
||||
signature: rubyMethodSignature(typeName, methodName),
|
||||
endpointType: rubyEndpointType(methodName),
|
||||
packageName: "",
|
||||
typeName,
|
||||
methodName,
|
||||
@@ -104,6 +105,7 @@ export const ruby: ModelsAsDataLanguage = {
|
||||
kind: row[4] as string,
|
||||
provenance: "manual",
|
||||
signature: rubyMethodSignature(typeName, methodName),
|
||||
endpointType: rubyEndpointType(methodName),
|
||||
packageName: "",
|
||||
typeName,
|
||||
methodName,
|
||||
@@ -127,11 +129,10 @@ export const ruby: ModelsAsDataLanguage = {
|
||||
const methodName = parseRubyMethodFromPath(row[1] as string);
|
||||
return {
|
||||
type: "neutral",
|
||||
input: "",
|
||||
output: "",
|
||||
kind: row[2] as string,
|
||||
provenance: "manual",
|
||||
signature: rubyMethodSignature(typeName, methodName),
|
||||
endpointType: rubyEndpointType(methodName),
|
||||
packageName: "",
|
||||
typeName,
|
||||
methodName,
|
||||
@@ -156,6 +157,7 @@ export const ruby: ModelsAsDataLanguage = {
|
||||
relatedTypeName: row[0] as string,
|
||||
path,
|
||||
signature: rubyMethodSignature(typeName, methodName),
|
||||
endpointType: rubyEndpointType(methodName),
|
||||
packageName: "",
|
||||
typeName,
|
||||
methodName,
|
||||
|
||||
@@ -7,7 +7,11 @@ import type {
|
||||
import type { ModelsAsDataLanguage } from "../models-as-data";
|
||||
import type { AccessPathSuggestionRow } from "../../suggestions";
|
||||
import { isDefinitionType } from "../../suggestions";
|
||||
import { parseRubyMethodFromPath, rubyMethodSignature } from "./access-paths";
|
||||
import {
|
||||
parseRubyMethodFromPath,
|
||||
rubyEndpointType,
|
||||
rubyMethodSignature,
|
||||
} from "./access-paths";
|
||||
|
||||
function checkTupleFormat(
|
||||
tuple: BqrsCellValue[],
|
||||
@@ -64,6 +68,7 @@ export function parseAccessPathSuggestionsResults(
|
||||
return {
|
||||
method: {
|
||||
packageName: "",
|
||||
endpointType: rubyEndpointType(methodName),
|
||||
typeName: type,
|
||||
methodName,
|
||||
methodParameters: "",
|
||||
|
||||
@@ -4,7 +4,7 @@ import type { DataTuple } from "../../model-extension-file";
|
||||
import { sharedExtensiblePredicates, sharedKinds } from "../shared";
|
||||
import { filterFlowModelQueries, parseFlowModelResults } from "./generate";
|
||||
import type { MethodArgument } from "../../method";
|
||||
import { getArgumentsList } from "../../method";
|
||||
import { EndpointType, getArgumentsList } from "../../method";
|
||||
|
||||
function readRowToMethod(row: DataTuple[]): string {
|
||||
return `${row[0]}.${row[1]}#${row[3]}${row[4]}`;
|
||||
@@ -38,11 +38,11 @@ export const staticLanguage: ModelsAsDataLanguage = {
|
||||
],
|
||||
readModeledMethod: (row) => ({
|
||||
type: "source",
|
||||
input: "",
|
||||
output: row[6] as string,
|
||||
kind: row[7] as string,
|
||||
provenance: row[8] as Provenance,
|
||||
signature: readRowToMethod(row),
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: row[0] as string,
|
||||
typeName: row[1] as string,
|
||||
methodName: row[3] as string,
|
||||
@@ -70,10 +70,10 @@ export const staticLanguage: ModelsAsDataLanguage = {
|
||||
readModeledMethod: (row) => ({
|
||||
type: "sink",
|
||||
input: row[6] as string,
|
||||
output: "",
|
||||
kind: row[7] as string,
|
||||
provenance: row[8] as Provenance,
|
||||
signature: readRowToMethod(row),
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: row[0] as string,
|
||||
typeName: row[1] as string,
|
||||
methodName: row[3] as string,
|
||||
@@ -106,6 +106,7 @@ export const staticLanguage: ModelsAsDataLanguage = {
|
||||
kind: row[8] as string,
|
||||
provenance: row[9] as Provenance,
|
||||
signature: readRowToMethod(row),
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: row[0] as string,
|
||||
typeName: row[1] as string,
|
||||
methodName: row[3] as string,
|
||||
@@ -128,11 +129,10 @@ export const staticLanguage: ModelsAsDataLanguage = {
|
||||
],
|
||||
readModeledMethod: (row) => ({
|
||||
type: "neutral",
|
||||
input: "",
|
||||
output: "",
|
||||
kind: row[4] as string,
|
||||
provenance: row[5] as Provenance,
|
||||
signature: `${row[0]}.${row[1]}#${row[2]}${row[3]}`,
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: row[0] as string,
|
||||
typeName: row[1] as string,
|
||||
methodName: row[2] as string,
|
||||
|
||||
@@ -17,7 +17,13 @@ export type Usage = Call & {
|
||||
readonly classification: CallClassification;
|
||||
};
|
||||
|
||||
export enum EndpointType {
|
||||
Method = "method",
|
||||
Class = "class",
|
||||
}
|
||||
|
||||
export interface MethodDefinition {
|
||||
readonly endpointType: EndpointType;
|
||||
/**
|
||||
* The package name in Java, or the namespace in C#, e.g. `org.sql2o` or `System.Net.Http.Headers`.
|
||||
*
|
||||
|
||||
@@ -7,6 +7,7 @@ export function createEmptyModeledMethod(
|
||||
methodSignature: MethodSignature,
|
||||
) {
|
||||
const canonicalMethodSignature: MethodSignature = {
|
||||
endpointType: methodSignature.endpointType,
|
||||
packageName: methodSignature.packageName,
|
||||
typeName: methodSignature.typeName,
|
||||
methodName: methodSignature.methodName,
|
||||
|
||||
@@ -25,6 +25,7 @@ function canonicalizeModeledMethod(
|
||||
modeledMethod: ModeledMethod,
|
||||
): ModeledMethod {
|
||||
const methodSignature: MethodSignature = {
|
||||
endpointType: modeledMethod.endpointType,
|
||||
signature: modeledMethod.signature,
|
||||
packageName: modeledMethod.packageName,
|
||||
typeName: modeledMethod.typeName,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { Meta, StoryFn } from "@storybook/react";
|
||||
|
||||
import { LibraryRow as LibraryRowComponent } from "../../view/model-editor/LibraryRow";
|
||||
import { CallClassification } from "../../model-editor/method";
|
||||
import { CallClassification, EndpointType } from "../../model-editor/method";
|
||||
import { createMockModelEditorViewState } from "../../../test/factories/model-editor/view-state";
|
||||
|
||||
export default {
|
||||
@@ -22,6 +22,7 @@ LibraryRow.args = {
|
||||
library: "sql2o",
|
||||
libraryVersion: "1.6.0",
|
||||
signature: "org.sql2o.Connection#createQuery(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Connection",
|
||||
methodName: "createQuery",
|
||||
@@ -44,6 +45,7 @@ LibraryRow.args = {
|
||||
library: "sql2o",
|
||||
libraryVersion: "1.6.0",
|
||||
signature: "org.sql2o.Query#executeScalar(Class)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Query",
|
||||
methodName: "executeScalar",
|
||||
@@ -66,6 +68,7 @@ LibraryRow.args = {
|
||||
library: "sql2o",
|
||||
libraryVersion: "1.6.0",
|
||||
signature: "org.sql2o.Sql2o#open()",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "open",
|
||||
@@ -88,6 +91,7 @@ LibraryRow.args = {
|
||||
library: "sql2o",
|
||||
libraryVersion: "1.6.0",
|
||||
signature: "org.sql2o.Sql2o#Sql2o(String,String,String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "Sql2o",
|
||||
@@ -110,6 +114,7 @@ LibraryRow.args = {
|
||||
library: "sql2o",
|
||||
libraryVersion: "1.6.0",
|
||||
signature: "org.sql2o.Sql2o#Sql2o(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "Sql2o",
|
||||
@@ -150,6 +155,7 @@ LibraryRow.args = {
|
||||
kind: "jndi-injection",
|
||||
provenance: "df-generated",
|
||||
signature: "org.sql2o.Sql2o#Sql2o(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "Sql2o",
|
||||
@@ -164,6 +170,7 @@ LibraryRow.args = {
|
||||
kind: "taint",
|
||||
provenance: "df-manual",
|
||||
signature: "org.sql2o.Connection#createQuery(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Connection",
|
||||
methodName: "createQuery",
|
||||
@@ -178,6 +185,7 @@ LibraryRow.args = {
|
||||
kind: "taint",
|
||||
provenance: "manual",
|
||||
signature: "org.sql2o.Sql2o#open()",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "open",
|
||||
@@ -190,6 +198,7 @@ LibraryRow.args = {
|
||||
kind: "summary",
|
||||
provenance: "df-generated",
|
||||
signature: "org.sql2o.Query#executeScalar(Class)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Query",
|
||||
methodName: "executeScalar",
|
||||
@@ -202,6 +211,7 @@ LibraryRow.args = {
|
||||
kind: "sink",
|
||||
provenance: "df-generated",
|
||||
signature: "org.sql2o.Sql2o#Sql2o(String,String,String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "Sql2o",
|
||||
|
||||
@@ -4,7 +4,7 @@ import type { Meta, StoryFn } from "@storybook/react";
|
||||
|
||||
import { MethodRow as MethodRowComponent } from "../../view/model-editor/MethodRow";
|
||||
import type { Method } from "../../model-editor/method";
|
||||
import { CallClassification } from "../../model-editor/method";
|
||||
import { EndpointType, CallClassification } from "../../model-editor/method";
|
||||
import type { ModeledMethod } from "../../model-editor/modeled-method";
|
||||
import { MULTIPLE_MODELS_GRID_TEMPLATE_COLUMNS } from "../../view/model-editor/ModeledMethodDataGrid";
|
||||
import { DataGrid } from "../../view/common/DataGrid";
|
||||
@@ -46,6 +46,7 @@ const Template: StoryFn<typeof MethodRowComponent> = (args) => {
|
||||
const method: Method = {
|
||||
library: "sql2o-1.6.0.jar",
|
||||
signature: "org.sql2o.Sql2o#open()",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "open",
|
||||
@@ -86,6 +87,7 @@ const modeledMethod: ModeledMethod = {
|
||||
kind: "taint",
|
||||
provenance: "manual",
|
||||
signature: "org.sql2o.Sql2o#open()",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "open",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { Meta, StoryFn } from "@storybook/react";
|
||||
|
||||
import { ModelEditor as ModelEditorComponent } from "../../view/model-editor/ModelEditor";
|
||||
import { CallClassification } from "../../model-editor/method";
|
||||
import { CallClassification, EndpointType } from "../../model-editor/method";
|
||||
import { createMockModelEditorViewState } from "../../../test/factories/model-editor/view-state";
|
||||
|
||||
export default {
|
||||
@@ -34,6 +34,7 @@ ModelEditor.args = {
|
||||
library: "sql2o",
|
||||
libraryVersion: "1.6.0",
|
||||
signature: "org.sql2o.Connection#createQuery(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Connection",
|
||||
methodName: "createQuery",
|
||||
@@ -56,6 +57,7 @@ ModelEditor.args = {
|
||||
library: "sql2o",
|
||||
libraryVersion: "1.6.0",
|
||||
signature: "org.sql2o.Query#executeScalar(Class)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Query",
|
||||
methodName: "executeScalar",
|
||||
@@ -78,6 +80,7 @@ ModelEditor.args = {
|
||||
library: "sql2o",
|
||||
libraryVersion: "1.6.0",
|
||||
signature: "org.sql2o.Sql2o#open()",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "open",
|
||||
@@ -99,6 +102,7 @@ ModelEditor.args = {
|
||||
{
|
||||
library: "rt",
|
||||
signature: "java.io.PrintStream#println(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "java.io",
|
||||
typeName: "PrintStream",
|
||||
methodName: "println",
|
||||
@@ -137,6 +141,7 @@ ModelEditor.args = {
|
||||
libraryVersion: "3.0.2",
|
||||
signature:
|
||||
"org.springframework.boot.SpringApplication#run(Class,String[])",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.springframework.boot",
|
||||
typeName: "SpringApplication",
|
||||
methodName: "run",
|
||||
@@ -159,6 +164,7 @@ ModelEditor.args = {
|
||||
library: "sql2o",
|
||||
libraryVersion: "1.6.0",
|
||||
signature: "org.sql2o.Sql2o#Sql2o(String,String,String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "Sql2o",
|
||||
@@ -181,6 +187,7 @@ ModelEditor.args = {
|
||||
library: "sql2o",
|
||||
libraryVersion: "1.6.0",
|
||||
signature: "org.sql2o.Sql2o#Sql2o(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "Sql2o",
|
||||
@@ -221,6 +228,7 @@ ModelEditor.args = {
|
||||
kind: "jndi-injection",
|
||||
provenance: "df-generated",
|
||||
signature: "org.sql2o.Sql2o#Sql2o(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "Sql2o",
|
||||
@@ -235,6 +243,7 @@ ModelEditor.args = {
|
||||
kind: "taint",
|
||||
provenance: "df-manual",
|
||||
signature: "org.sql2o.Connection#createQuery(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Connection",
|
||||
methodName: "createQuery",
|
||||
@@ -249,6 +258,7 @@ ModelEditor.args = {
|
||||
kind: "taint",
|
||||
provenance: "manual",
|
||||
signature: "org.sql2o.Sql2o#open()",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "open",
|
||||
@@ -261,6 +271,7 @@ ModelEditor.args = {
|
||||
kind: "sink",
|
||||
provenance: "df-generated",
|
||||
signature: "org.sql2o.Query#executeScalar(Class)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Query",
|
||||
methodName: "executeScalar",
|
||||
@@ -273,6 +284,7 @@ ModelEditor.args = {
|
||||
kind: "sink",
|
||||
provenance: "df-generated",
|
||||
signature: "org.sql2o.Sql2o#Sql2o(String,String,String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "Sql2o",
|
||||
|
||||
@@ -167,13 +167,14 @@ describe(MultipleModeledMethodsPanel.name, () => {
|
||||
...modeledMethods,
|
||||
{
|
||||
signature: method.signature,
|
||||
endpointType: method.endpointType,
|
||||
packageName: method.packageName,
|
||||
typeName: method.typeName,
|
||||
methodName: method.methodName,
|
||||
methodParameters: method.methodParameters,
|
||||
type: "none",
|
||||
},
|
||||
]);
|
||||
] satisfies ModeledMethod[]);
|
||||
});
|
||||
|
||||
it("changes selection to the newly added modeling", async () => {
|
||||
@@ -368,6 +369,7 @@ describe(MultipleModeledMethodsPanel.name, () => {
|
||||
expect(onChange).toHaveBeenCalledWith(method.signature, [
|
||||
{
|
||||
signature: method.signature,
|
||||
endpointType: method.endpointType,
|
||||
packageName: method.packageName,
|
||||
typeName: method.typeName,
|
||||
methodName: method.methodName,
|
||||
@@ -378,7 +380,7 @@ describe(MultipleModeledMethodsPanel.name, () => {
|
||||
provenance: "manual",
|
||||
},
|
||||
...modeledMethods.slice(1),
|
||||
]);
|
||||
] satisfies ModeledMethod[]);
|
||||
});
|
||||
|
||||
it("can update the second modeling", async () => {
|
||||
@@ -403,6 +405,7 @@ describe(MultipleModeledMethodsPanel.name, () => {
|
||||
...modeledMethods.slice(0, 1),
|
||||
{
|
||||
signature: method.signature,
|
||||
endpointType: method.endpointType,
|
||||
packageName: method.packageName,
|
||||
typeName: method.typeName,
|
||||
methodName: method.methodName,
|
||||
@@ -412,7 +415,7 @@ describe(MultipleModeledMethodsPanel.name, () => {
|
||||
kind: "value",
|
||||
provenance: "manual",
|
||||
},
|
||||
]);
|
||||
] satisfies ModeledMethod[]);
|
||||
});
|
||||
|
||||
it("can delete modeling", async () => {
|
||||
@@ -449,13 +452,14 @@ describe(MultipleModeledMethodsPanel.name, () => {
|
||||
...modeledMethods,
|
||||
{
|
||||
signature: method.signature,
|
||||
endpointType: method.endpointType,
|
||||
packageName: method.packageName,
|
||||
typeName: method.typeName,
|
||||
methodName: method.methodName,
|
||||
methodParameters: method.methodParameters,
|
||||
type: "none",
|
||||
},
|
||||
]);
|
||||
] satisfies ModeledMethod[]);
|
||||
});
|
||||
|
||||
it("shows an error when adding a neutral modeling", async () => {
|
||||
@@ -826,13 +830,14 @@ describe(MultipleModeledMethodsPanel.name, () => {
|
||||
...modeledMethods.slice(0, 1),
|
||||
{
|
||||
signature: method.signature,
|
||||
endpointType: method.endpointType,
|
||||
packageName: method.packageName,
|
||||
typeName: method.typeName,
|
||||
methodName: method.methodName,
|
||||
methodParameters: method.methodParameters,
|
||||
type: "none",
|
||||
},
|
||||
]);
|
||||
] satisfies ModeledMethod[]);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -85,12 +85,13 @@ describe(MethodRow.name, () => {
|
||||
kind: "value",
|
||||
provenance: "manual",
|
||||
signature: method.signature,
|
||||
endpointType: method.endpointType,
|
||||
packageName: method.packageName,
|
||||
typeName: method.typeName,
|
||||
methodName: method.methodName,
|
||||
methodParameters: method.methodParameters,
|
||||
},
|
||||
]);
|
||||
] satisfies ModeledMethod[]);
|
||||
});
|
||||
|
||||
it("can change the kind", async () => {
|
||||
@@ -111,7 +112,7 @@ describe(MethodRow.name, () => {
|
||||
...modeledMethod,
|
||||
kind: "value",
|
||||
},
|
||||
]);
|
||||
] satisfies ModeledMethod[]);
|
||||
});
|
||||
|
||||
it("changes the provenance when the kind is changed", async () => {
|
||||
@@ -137,7 +138,7 @@ describe(MethodRow.name, () => {
|
||||
kind: "value",
|
||||
provenance: "df-manual",
|
||||
},
|
||||
]);
|
||||
] satisfies ModeledMethod[]);
|
||||
});
|
||||
|
||||
it("has the correct input options", () => {
|
||||
@@ -232,7 +233,7 @@ describe(MethodRow.name, () => {
|
||||
{ ...modeledMethod, type: "source" },
|
||||
{ ...modeledMethod, type: "sink", kind: "sql-injection" },
|
||||
{ ...modeledMethod, type: "summary" },
|
||||
]);
|
||||
] satisfies ModeledMethod[]);
|
||||
});
|
||||
|
||||
it("renders an unmodelable method", () => {
|
||||
@@ -333,12 +334,13 @@ describe(MethodRow.name, () => {
|
||||
{
|
||||
type: "none",
|
||||
signature: method.signature,
|
||||
endpointType: method.endpointType,
|
||||
packageName: method.packageName,
|
||||
typeName: method.typeName,
|
||||
methodName: method.methodName,
|
||||
methodParameters: method.methodParameters,
|
||||
},
|
||||
]);
|
||||
] satisfies ModeledMethod[]);
|
||||
});
|
||||
|
||||
it("cannot delete the first modeled method (but delete second instead)", async () => {
|
||||
@@ -359,7 +361,7 @@ describe(MethodRow.name, () => {
|
||||
{ ...modeledMethod, type: "source" },
|
||||
{ ...modeledMethod, type: "none" },
|
||||
{ ...modeledMethod, type: "summary" },
|
||||
]);
|
||||
] satisfies ModeledMethod[]);
|
||||
});
|
||||
|
||||
it("can delete a modeled method in the middle", async () => {
|
||||
@@ -380,7 +382,7 @@ describe(MethodRow.name, () => {
|
||||
{ ...modeledMethod, type: "source" },
|
||||
{ ...modeledMethod, type: "sink" },
|
||||
{ ...modeledMethod, type: "summary" },
|
||||
]);
|
||||
] satisfies ModeledMethod[]);
|
||||
});
|
||||
|
||||
it("does not display validation errors when everything is valid", () => {
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
import type { Method, Usage } from "../../../src/model-editor/method";
|
||||
import { CallClassification } from "../../../src/model-editor/method";
|
||||
import {
|
||||
EndpointType,
|
||||
CallClassification,
|
||||
} from "../../../src/model-editor/method";
|
||||
import type { UrlValueResolvable } from "../../../src/common/raw-result-types";
|
||||
|
||||
export function createMethod(data: Partial<Method> = {}): Method {
|
||||
@@ -10,6 +13,7 @@ export function createMethod(data: Partial<Method> = {}): Method {
|
||||
supportedType: "summary",
|
||||
usages: [],
|
||||
signature: "org.sql2o.Sql2o#open()",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "open",
|
||||
|
||||
@@ -6,6 +6,7 @@ import type {
|
||||
SummaryModeledMethod,
|
||||
} from "../../../src/model-editor/modeled-method";
|
||||
import type { MethodSignature } from "../../../src/model-editor/method";
|
||||
import { EndpointType } from "../../../src/model-editor/method";
|
||||
|
||||
export function createMethodSignature(
|
||||
data: Partial<MethodSignature> = {},
|
||||
@@ -13,6 +14,7 @@ export function createMethodSignature(
|
||||
return {
|
||||
libraryVersion: "1.6.0",
|
||||
signature: "org.sql2o.Connection#createQuery(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Connection",
|
||||
methodName: "createQuery",
|
||||
|
||||
@@ -9,6 +9,7 @@ import type { AutoModelQueriesResult } from "../../../src/model-editor/auto-mode
|
||||
import type { Log } from "sarif";
|
||||
import { gzipDecode } from "../../../src/common/zlib";
|
||||
import type { Method } from "../../../src/model-editor/method";
|
||||
import { EndpointType } from "../../../src/model-editor/method";
|
||||
import type { ModeledMethod } from "../../../src/model-editor/modeled-method";
|
||||
|
||||
describe("createAutoModelRequest", () => {
|
||||
@@ -90,6 +91,7 @@ describe("getCandidates", () => {
|
||||
{
|
||||
library: "my.jar",
|
||||
signature: "org.my.A#x()",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.my",
|
||||
typeName: "A",
|
||||
methodName: "x",
|
||||
@@ -106,6 +108,7 @@ describe("getCandidates", () => {
|
||||
kind: "sink",
|
||||
provenance: "manual",
|
||||
signature: "org.my.A#x()",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.my",
|
||||
typeName: "A",
|
||||
methodName: "x",
|
||||
@@ -122,6 +125,7 @@ describe("getCandidates", () => {
|
||||
{
|
||||
library: "my.jar",
|
||||
signature: "org.my.A#x()",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.my",
|
||||
typeName: "A",
|
||||
methodName: "x",
|
||||
@@ -141,6 +145,7 @@ describe("getCandidates", () => {
|
||||
methods.push({
|
||||
library: "my.jar",
|
||||
signature: "org.my.A#x()",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.my",
|
||||
typeName: "A",
|
||||
methodName: "x",
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
import { decodeBqrsToMethods } from "../../../src/model-editor/bqrs";
|
||||
import type { DecodedBqrsChunk } from "../../../src/common/bqrs-cli-types";
|
||||
import { CallClassification } from "../../../src/model-editor/method";
|
||||
import type { Method } from "../../../src/model-editor/method";
|
||||
import {
|
||||
CallClassification,
|
||||
EndpointType,
|
||||
} from "../../../src/model-editor/method";
|
||||
import { Mode } from "../../../src/model-editor/shared/mode";
|
||||
import { QueryLanguage } from "../../../src/common/query-language";
|
||||
|
||||
@@ -245,6 +249,7 @@ describe("decodeBqrsToMethods", () => {
|
||||
library: "rt",
|
||||
libraryVersion: undefined,
|
||||
signature: "java.io.PrintStream#println(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "java.io",
|
||||
typeName: "PrintStream",
|
||||
methodName: "println",
|
||||
@@ -271,6 +276,7 @@ describe("decodeBqrsToMethods", () => {
|
||||
libraryVersion: "3.0.2",
|
||||
signature:
|
||||
"org.springframework.boot.SpringApplication#run(Class,String[])",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.springframework.boot",
|
||||
typeName: "SpringApplication",
|
||||
methodName: "run",
|
||||
@@ -296,6 +302,7 @@ describe("decodeBqrsToMethods", () => {
|
||||
library: "sql2o",
|
||||
libraryVersion: "1.6.0",
|
||||
signature: "org.sql2o.Connection#createQuery(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Connection",
|
||||
methodName: "createQuery",
|
||||
@@ -333,6 +340,7 @@ describe("decodeBqrsToMethods", () => {
|
||||
library: "sql2o",
|
||||
libraryVersion: "1.6.0",
|
||||
signature: "org.sql2o.Query#executeScalar(Class)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Query",
|
||||
methodName: "executeScalar",
|
||||
@@ -370,6 +378,7 @@ describe("decodeBqrsToMethods", () => {
|
||||
library: "sql2o",
|
||||
libraryVersion: "1.6.0",
|
||||
signature: "org.sql2o.Sql2o#open()",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "open",
|
||||
@@ -407,6 +416,7 @@ describe("decodeBqrsToMethods", () => {
|
||||
library: "sql2o",
|
||||
libraryVersion: "1.6.0",
|
||||
signature: "org.sql2o.Sql2o#Sql2o(String,String,String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "Sql2o",
|
||||
@@ -432,6 +442,7 @@ describe("decodeBqrsToMethods", () => {
|
||||
library: "sql2o",
|
||||
libraryVersion: "1.6.0",
|
||||
signature: "org.sql2o.Sql2o#Sql2o(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "Sql2o",
|
||||
@@ -453,7 +464,7 @@ describe("decodeBqrsToMethods", () => {
|
||||
},
|
||||
],
|
||||
},
|
||||
]);
|
||||
] satisfies Method[]);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -519,12 +530,13 @@ describe("decodeBqrsToMethods", () => {
|
||||
library: "",
|
||||
libraryVersion: undefined,
|
||||
signature: "org.example.HelloController#connect(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.example",
|
||||
typeName: "HelloController",
|
||||
methodName: "connect",
|
||||
methodParameters: "(String)",
|
||||
supported: false,
|
||||
supportedType: "",
|
||||
supportedType: "none",
|
||||
usages: [
|
||||
{
|
||||
label: "connect",
|
||||
@@ -544,6 +556,7 @@ describe("decodeBqrsToMethods", () => {
|
||||
library: "",
|
||||
libraryVersion: undefined,
|
||||
signature: "org.example.HelloController#index(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.example",
|
||||
typeName: "HelloController",
|
||||
methodName: "index",
|
||||
@@ -565,7 +578,7 @@ describe("decodeBqrsToMethods", () => {
|
||||
},
|
||||
],
|
||||
},
|
||||
]);
|
||||
] satisfies Method[]);
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -619,6 +632,7 @@ describe("decodeBqrsToMethods", () => {
|
||||
libraryVersion: "4.0.0.0",
|
||||
signature:
|
||||
"System.Reflection.RuntimeReflectionExtensions#GetMethodInfo(System.Delegate)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "System.Reflection",
|
||||
typeName: "RuntimeReflectionExtensions",
|
||||
methodName: "GetMethodInfo",
|
||||
@@ -640,7 +654,7 @@ describe("decodeBqrsToMethods", () => {
|
||||
},
|
||||
],
|
||||
},
|
||||
]);
|
||||
] satisfies Method[]);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -687,12 +701,13 @@ describe("decodeBqrsToMethods", () => {
|
||||
library: "Times",
|
||||
libraryVersion: undefined,
|
||||
signature: "Moq.Times#Validate(System.Int32)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "Moq",
|
||||
typeName: "Times",
|
||||
methodName: "Validate",
|
||||
methodParameters: "(System.Int32)",
|
||||
supported: false,
|
||||
supportedType: "",
|
||||
supportedType: "none",
|
||||
usages: [
|
||||
{
|
||||
label: "Validate",
|
||||
@@ -708,7 +723,7 @@ describe("decodeBqrsToMethods", () => {
|
||||
},
|
||||
],
|
||||
},
|
||||
]);
|
||||
] satisfies Method[]);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -2,6 +2,8 @@ import type { DecodedBqrs } from "../../../../../src/common/bqrs-cli-types";
|
||||
import { parseGenerateModelResults } from "../../../../../src/model-editor/languages/ruby/generate";
|
||||
import { ruby } from "../../../../../src/model-editor/languages/ruby";
|
||||
import { createMockLogger } from "../../../../__mocks__/loggerMock";
|
||||
import type { ModeledMethod } from "../../../../../src/model-editor/modeled-method";
|
||||
import { EndpointType } from "../../../../../src/model-editor/method";
|
||||
|
||||
describe("parseGenerateModelResults", () => {
|
||||
it("should return the results", async () => {
|
||||
@@ -77,6 +79,7 @@ describe("parseGenerateModelResults", () => {
|
||||
);
|
||||
expect(result).toEqual([
|
||||
{
|
||||
endpointType: EndpointType.Method,
|
||||
methodName: "types",
|
||||
methodParameters: "",
|
||||
packageName: "",
|
||||
@@ -87,6 +90,7 @@ describe("parseGenerateModelResults", () => {
|
||||
typeName: "SQLite3::ResultSet",
|
||||
},
|
||||
{
|
||||
endpointType: EndpointType.Method,
|
||||
methodName: "columns",
|
||||
methodParameters: "",
|
||||
packageName: "",
|
||||
@@ -97,6 +101,7 @@ describe("parseGenerateModelResults", () => {
|
||||
typeName: "SQLite3::ResultSet",
|
||||
},
|
||||
{
|
||||
endpointType: EndpointType.Method,
|
||||
methodName: "types",
|
||||
methodParameters: "",
|
||||
packageName: "",
|
||||
@@ -107,6 +112,7 @@ describe("parseGenerateModelResults", () => {
|
||||
typeName: "SQLite3::Statement",
|
||||
},
|
||||
{
|
||||
endpointType: EndpointType.Method,
|
||||
methodName: "columns",
|
||||
methodParameters: "",
|
||||
packageName: "",
|
||||
@@ -117,6 +123,7 @@ describe("parseGenerateModelResults", () => {
|
||||
typeName: "SQLite3::Statement",
|
||||
},
|
||||
{
|
||||
endpointType: EndpointType.Method,
|
||||
input: "Argument[self]",
|
||||
kind: "value",
|
||||
methodName: "create_function",
|
||||
@@ -129,6 +136,7 @@ describe("parseGenerateModelResults", () => {
|
||||
typeName: "SQLite3::Database",
|
||||
},
|
||||
{
|
||||
endpointType: EndpointType.Method,
|
||||
input: "Argument[1]",
|
||||
kind: "value",
|
||||
methodName: "new",
|
||||
@@ -140,6 +148,6 @@ describe("parseGenerateModelResults", () => {
|
||||
type: "summary",
|
||||
typeName: "SQLite3::Value!",
|
||||
},
|
||||
]);
|
||||
] satisfies ModeledMethod[]);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -2,6 +2,9 @@ import type { DecodedBqrsChunk } from "../../../../../src/common/bqrs-cli-types"
|
||||
import { ruby } from "../../../../../src/model-editor/languages/ruby";
|
||||
import { createMockLogger } from "../../../../__mocks__/loggerMock";
|
||||
import { parseAccessPathSuggestionsResults } from "../../../../../src/model-editor/languages/ruby/suggestions";
|
||||
import type { AccessPathSuggestionRow } from "../../../../../src/model-editor/suggestions";
|
||||
import { AccessPathSuggestionDefinitionType } from "../../../../../src/model-editor/suggestions";
|
||||
import { EndpointType } from "../../../../../src/model-editor/method";
|
||||
|
||||
describe("parseAccessPathSuggestionsResults", () => {
|
||||
it("should parse the results", async () => {
|
||||
@@ -50,6 +53,7 @@ describe("parseAccessPathSuggestionsResults", () => {
|
||||
expect(result).toEqual([
|
||||
{
|
||||
method: {
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "",
|
||||
typeName: "Correctness",
|
||||
methodName: "assert!",
|
||||
@@ -58,9 +62,9 @@ describe("parseAccessPathSuggestionsResults", () => {
|
||||
},
|
||||
value: "Argument[self]",
|
||||
details: "self in assert!",
|
||||
definitionType: "parameter",
|
||||
definitionType: AccessPathSuggestionDefinitionType.Parameter,
|
||||
},
|
||||
]);
|
||||
] satisfies AccessPathSuggestionRow[]);
|
||||
});
|
||||
|
||||
it("should not parse an incorrect result format", async () => {
|
||||
|
||||
@@ -7,7 +7,10 @@ import {
|
||||
loadDataExtensionYaml,
|
||||
} from "../../../src/model-editor/yaml";
|
||||
import type { Method } from "../../../src/model-editor/method";
|
||||
import { CallClassification } from "../../../src/model-editor/method";
|
||||
import {
|
||||
CallClassification,
|
||||
EndpointType,
|
||||
} from "../../../src/model-editor/method";
|
||||
import { QueryLanguage } from "../../../src/common/query-language";
|
||||
import type { ModeledMethod } from "../../../src/model-editor/modeled-method";
|
||||
|
||||
@@ -20,6 +23,7 @@ describe("createDataExtensionYaml", () => {
|
||||
kind: "sql",
|
||||
provenance: "df-generated",
|
||||
signature: "org.sql2o.Connection#createQuery(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Connection",
|
||||
methodName: "createQuery",
|
||||
@@ -87,6 +91,7 @@ describe("createDataExtensionYamlsForApplicationMode", () => {
|
||||
library: "sql2o",
|
||||
libraryVersion: "1.6.0",
|
||||
signature: "org.sql2o.Connection#createQuery(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Connection",
|
||||
methodName: "createQuery",
|
||||
@@ -124,6 +129,7 @@ describe("createDataExtensionYamlsForApplicationMode", () => {
|
||||
library: "sql2o",
|
||||
libraryVersion: "1.6.0",
|
||||
signature: "org.sql2o.Query#executeScalar(Class)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Query",
|
||||
methodName: "executeScalar",
|
||||
@@ -161,6 +167,7 @@ describe("createDataExtensionYamlsForApplicationMode", () => {
|
||||
library: "sql2o",
|
||||
libraryVersion: "2.5.0-alpha1",
|
||||
signature: "org.sql2o.Sql2o#Sql2o(String,String,String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "Sql2o",
|
||||
@@ -187,6 +194,7 @@ describe("createDataExtensionYamlsForApplicationMode", () => {
|
||||
libraryVersion: "3.0.2",
|
||||
signature:
|
||||
"org.springframework.boot.SpringApplication#run(Class,String[])",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.springframework.boot",
|
||||
typeName: "SpringApplication",
|
||||
methodName: "run",
|
||||
@@ -211,6 +219,7 @@ describe("createDataExtensionYamlsForApplicationMode", () => {
|
||||
{
|
||||
library: "rt",
|
||||
signature: "java.io.PrintStream#println(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "java.io",
|
||||
typeName: "PrintStream",
|
||||
methodName: "println",
|
||||
@@ -241,6 +250,7 @@ describe("createDataExtensionYamlsForApplicationMode", () => {
|
||||
kind: "sql",
|
||||
provenance: "df-generated",
|
||||
signature: "org.sql2o.Connection#createQuery(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Connection",
|
||||
methodName: "createQuery",
|
||||
@@ -254,6 +264,7 @@ describe("createDataExtensionYamlsForApplicationMode", () => {
|
||||
provenance: "manual",
|
||||
signature:
|
||||
"org.springframework.boot.SpringApplication#run(Class,String[])",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.springframework.boot",
|
||||
typeName: "SpringApplication",
|
||||
methodName: "run",
|
||||
@@ -266,6 +277,7 @@ describe("createDataExtensionYamlsForApplicationMode", () => {
|
||||
input: "Argument[0]",
|
||||
kind: "jndi",
|
||||
provenance: "manual",
|
||||
endpointType: EndpointType.Method,
|
||||
signature: "org.sql2o.Sql2o#Sql2o(String,String,String)",
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
@@ -334,6 +346,7 @@ describe("createDataExtensionYamlsForApplicationMode", () => {
|
||||
library: "sql2o",
|
||||
libraryVersion: "1.6.0",
|
||||
signature: "org.sql2o.Connection#createQuery(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Connection",
|
||||
methodName: "createQuery",
|
||||
@@ -371,6 +384,7 @@ describe("createDataExtensionYamlsForApplicationMode", () => {
|
||||
library: "sql2o",
|
||||
libraryVersion: "1.6.0",
|
||||
signature: "org.sql2o.Query#executeScalar(Class)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Query",
|
||||
methodName: "executeScalar",
|
||||
@@ -408,6 +422,7 @@ describe("createDataExtensionYamlsForApplicationMode", () => {
|
||||
library: "sql2o",
|
||||
libraryVersion: "2.5.0-alpha1",
|
||||
signature: "org.sql2o.Sql2o#Sql2o(String,String,String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "Sql2o",
|
||||
@@ -434,6 +449,7 @@ describe("createDataExtensionYamlsForApplicationMode", () => {
|
||||
libraryVersion: "3.0.2",
|
||||
signature:
|
||||
"org.springframework.boot.SpringApplication#run(Class,String[])",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.springframework.boot",
|
||||
typeName: "SpringApplication",
|
||||
methodName: "run",
|
||||
@@ -458,6 +474,7 @@ describe("createDataExtensionYamlsForApplicationMode", () => {
|
||||
{
|
||||
library: "rt",
|
||||
signature: "java.io.PrintStream#println(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "java.io",
|
||||
typeName: "PrintStream",
|
||||
methodName: "println",
|
||||
@@ -488,6 +505,7 @@ describe("createDataExtensionYamlsForApplicationMode", () => {
|
||||
kind: "sql",
|
||||
provenance: "df-generated",
|
||||
signature: "org.sql2o.Connection#createQuery(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Connection",
|
||||
methodName: "createQuery",
|
||||
@@ -501,6 +519,7 @@ describe("createDataExtensionYamlsForApplicationMode", () => {
|
||||
provenance: "manual",
|
||||
signature:
|
||||
"org.springframework.boot.SpringApplication#run(Class,String[])",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.springframework.boot",
|
||||
typeName: "SpringApplication",
|
||||
methodName: "run",
|
||||
@@ -514,6 +533,7 @@ describe("createDataExtensionYamlsForApplicationMode", () => {
|
||||
kind: "jndi",
|
||||
provenance: "manual",
|
||||
signature: "org.sql2o.Sql2o#Sql2o(String,String,String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "Sql2o",
|
||||
@@ -529,6 +549,7 @@ describe("createDataExtensionYamlsForApplicationMode", () => {
|
||||
kind: "summary",
|
||||
provenance: "manual",
|
||||
signature: "org.sql2o.Connection#createQuery(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Connection",
|
||||
methodName: "createQuery",
|
||||
@@ -541,6 +562,7 @@ describe("createDataExtensionYamlsForApplicationMode", () => {
|
||||
kind: "summary",
|
||||
provenance: "manual",
|
||||
signature: "org.sql2o.Query#executeScalar(Class)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Query",
|
||||
methodName: "executeScalar",
|
||||
@@ -558,6 +580,7 @@ describe("createDataExtensionYamlsForApplicationMode", () => {
|
||||
provenance: "df-generated",
|
||||
signature:
|
||||
"com.google.gson.TypeAdapter#fromJsonTree(JsonElement)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "com.google.gson",
|
||||
typeName: "TypeAdapter",
|
||||
methodName: "fromJsonTree",
|
||||
@@ -627,6 +650,7 @@ describe("createDataExtensionYamlsForFrameworkMode", () => {
|
||||
{
|
||||
library: "sql2o",
|
||||
signature: "org.sql2o.Connection#createQuery(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Connection",
|
||||
methodName: "createQuery",
|
||||
@@ -663,6 +687,7 @@ describe("createDataExtensionYamlsForFrameworkMode", () => {
|
||||
{
|
||||
library: "sql2o",
|
||||
signature: "org.sql2o.Query#executeScalar(Class)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Query",
|
||||
methodName: "executeScalar",
|
||||
@@ -699,6 +724,7 @@ describe("createDataExtensionYamlsForFrameworkMode", () => {
|
||||
{
|
||||
library: "sql2o",
|
||||
signature: "org.sql2o.Sql2o#Sql2o(String,String,String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "Sql2o",
|
||||
@@ -729,6 +755,7 @@ describe("createDataExtensionYamlsForFrameworkMode", () => {
|
||||
kind: "sql",
|
||||
provenance: "df-generated",
|
||||
signature: "org.sql2o.Connection#createQuery(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Connection",
|
||||
methodName: "createQuery",
|
||||
@@ -742,6 +769,7 @@ describe("createDataExtensionYamlsForFrameworkMode", () => {
|
||||
kind: "jndi",
|
||||
provenance: "manual",
|
||||
signature: "org.sql2o.Sql2o#Sql2o(String,String,String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "Sql2o",
|
||||
@@ -786,6 +814,7 @@ describe("createDataExtensionYamlsForFrameworkMode", () => {
|
||||
{
|
||||
library: "sql2o",
|
||||
signature: "org.sql2o.Connection#createQuery(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Connection",
|
||||
methodName: "createQuery",
|
||||
@@ -822,6 +851,7 @@ describe("createDataExtensionYamlsForFrameworkMode", () => {
|
||||
{
|
||||
library: "sql2o",
|
||||
signature: "org.sql2o.Query#executeScalar(Class)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Query",
|
||||
methodName: "executeScalar",
|
||||
@@ -858,6 +888,7 @@ describe("createDataExtensionYamlsForFrameworkMode", () => {
|
||||
{
|
||||
library: "sql2o",
|
||||
signature: "org.sql2o.Sql2o#Sql2o(String,String,String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "Sql2o",
|
||||
@@ -888,6 +919,7 @@ describe("createDataExtensionYamlsForFrameworkMode", () => {
|
||||
kind: "sql",
|
||||
provenance: "df-generated",
|
||||
signature: "org.sql2o.Connection#createQuery(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Connection",
|
||||
methodName: "createQuery",
|
||||
@@ -901,6 +933,7 @@ describe("createDataExtensionYamlsForFrameworkMode", () => {
|
||||
kind: "jndi",
|
||||
provenance: "manual",
|
||||
signature: "org.sql2o.Sql2o#Sql2o(String,String,String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Sql2o",
|
||||
methodName: "Sql2o",
|
||||
@@ -916,6 +949,7 @@ describe("createDataExtensionYamlsForFrameworkMode", () => {
|
||||
kind: "summary",
|
||||
provenance: "manual",
|
||||
signature: "org.sql2o.Connection#createQuery(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Connection",
|
||||
methodName: "createQuery",
|
||||
@@ -928,6 +962,7 @@ describe("createDataExtensionYamlsForFrameworkMode", () => {
|
||||
kind: "summary",
|
||||
provenance: "manual",
|
||||
signature: "org.sql2o.Query#executeScalar(Class)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Query",
|
||||
methodName: "executeScalar",
|
||||
@@ -945,6 +980,7 @@ describe("createDataExtensionYamlsForFrameworkMode", () => {
|
||||
provenance: "df-generated",
|
||||
signature:
|
||||
"com.google.gson.TypeAdapter#fromJsonTree(JsonElement)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "com.google.gson",
|
||||
typeName: "TypeAdapter",
|
||||
methodName: "fromJsonTree",
|
||||
@@ -989,6 +1025,7 @@ describe("createDataExtensionYamlsForFrameworkMode", () => {
|
||||
library: "HostTestAppDbContext",
|
||||
signature:
|
||||
"Volo.Abp.TestApp.MongoDb.HostTestAppDbContext#get_FifthDbContextDummyEntity()",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "Volo.Abp.TestApp.MongoDb",
|
||||
typeName: "HostTestAppDbContext",
|
||||
methodName: "get_FifthDbContextDummyEntity",
|
||||
@@ -1001,6 +1038,7 @@ describe("createDataExtensionYamlsForFrameworkMode", () => {
|
||||
library: "CityRepository",
|
||||
signature:
|
||||
"Volo.Abp.TestApp.MongoDB.CityRepository#FindByNameAsync(System.String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "Volo.Abp.TestApp.MongoDB",
|
||||
typeName: "CityRepository",
|
||||
methodName: "FindByNameAsync",
|
||||
@@ -1020,6 +1058,7 @@ describe("createDataExtensionYamlsForFrameworkMode", () => {
|
||||
provenance: "df-generated",
|
||||
signature:
|
||||
"Volo.Abp.TestApp.MongoDb.HostTestAppDbContext#get_FifthDbContextDummyEntity()",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "Volo.Abp.TestApp.MongoDb",
|
||||
typeName: "HostTestAppDbContext",
|
||||
methodName: "get_FifthDbContextDummyEntity",
|
||||
@@ -1034,6 +1073,7 @@ describe("createDataExtensionYamlsForFrameworkMode", () => {
|
||||
provenance: "df-generated",
|
||||
signature:
|
||||
"Volo.Abp.TestApp.MongoDB.CityRepository#FindByNameAsync(System.String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "Volo.Abp.TestApp.MongoDB",
|
||||
typeName: "CityRepository",
|
||||
methodName: "FindByNameAsync",
|
||||
@@ -1093,6 +1133,7 @@ describe("createDataExtensionYamlsForFrameworkMode", () => {
|
||||
provenance: "manual",
|
||||
signature:
|
||||
"Volo.Abp.TestApp.MongoDB.CityRepository#FindByNameAsync(System.String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "Volo.Abp.TestApp.MongoDB",
|
||||
typeName: "CityRepository",
|
||||
methodName: "FindByNameAsync",
|
||||
@@ -1153,17 +1194,17 @@ describe("loadDataExtensionYaml", () => {
|
||||
{
|
||||
input: "Argument[0]",
|
||||
kind: "sql",
|
||||
output: "",
|
||||
type: "sink",
|
||||
provenance: "manual",
|
||||
signature: "org.sql2o.Connection#createQuery(String)",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.sql2o",
|
||||
typeName: "Connection",
|
||||
methodName: "createQuery",
|
||||
methodParameters: "(String)",
|
||||
},
|
||||
],
|
||||
});
|
||||
} satisfies Record<string, ModeledMethod[]>);
|
||||
});
|
||||
|
||||
it("returns undefined if given a string", () => {
|
||||
|
||||
@@ -13,6 +13,7 @@ import type { CodeQLCliServer } from "../../../../src/codeql-cli/cli";
|
||||
import type { QueryRunner } from "../../../../src/query-server";
|
||||
import * as queryResolver from "../../../../src/local-queries/query-resolver";
|
||||
import type { MethodSignature } from "../../../../src/model-editor/method";
|
||||
import { EndpointType } from "../../../../src/model-editor/method";
|
||||
import { join } from "path";
|
||||
import { pathExists, readFile } from "fs-extra";
|
||||
import { load as loadYaml } from "js-yaml";
|
||||
@@ -170,6 +171,7 @@ describe("generateCandidateFilterPack", () => {
|
||||
const candidateMethods: MethodSignature[] = [
|
||||
{
|
||||
signature: "org.my.A#x()",
|
||||
endpointType: EndpointType.Method,
|
||||
packageName: "org.my",
|
||||
typeName: "A",
|
||||
methodName: "x",
|
||||
|
||||
@@ -11,6 +11,8 @@ import { CancellationTokenSource } from "vscode-jsonrpc";
|
||||
import { QueryOutputDir } from "../../../../src/local-queries/query-output-dir";
|
||||
import { runGenerateQueries } from "../../../../src/model-editor/generate";
|
||||
import { ruby } from "../../../../src/model-editor/languages/ruby";
|
||||
import type { ModeledMethod } from "../../../../src/model-editor/modeled-method";
|
||||
import { EndpointType } from "../../../../src/model-editor/method";
|
||||
|
||||
describe("runGenerateQueries", () => {
|
||||
const modelsAsDataLanguage = ruby;
|
||||
@@ -137,6 +139,7 @@ describe("runGenerateQueries", () => {
|
||||
});
|
||||
expect(onResults).toHaveBeenCalledWith([
|
||||
{
|
||||
endpointType: EndpointType.Method,
|
||||
methodName: "types",
|
||||
methodParameters: "",
|
||||
packageName: "",
|
||||
@@ -147,6 +150,7 @@ describe("runGenerateQueries", () => {
|
||||
typeName: "SQLite3::ResultSet",
|
||||
},
|
||||
{
|
||||
endpointType: EndpointType.Method,
|
||||
methodName: "columns",
|
||||
methodParameters: "",
|
||||
packageName: "",
|
||||
@@ -157,6 +161,7 @@ describe("runGenerateQueries", () => {
|
||||
typeName: "SQLite3::ResultSet",
|
||||
},
|
||||
{
|
||||
endpointType: EndpointType.Method,
|
||||
methodName: "types",
|
||||
methodParameters: "",
|
||||
packageName: "",
|
||||
@@ -167,6 +172,7 @@ describe("runGenerateQueries", () => {
|
||||
typeName: "SQLite3::Statement",
|
||||
},
|
||||
{
|
||||
endpointType: EndpointType.Method,
|
||||
methodName: "columns",
|
||||
methodParameters: "",
|
||||
packageName: "",
|
||||
@@ -177,6 +183,7 @@ describe("runGenerateQueries", () => {
|
||||
typeName: "SQLite3::Statement",
|
||||
},
|
||||
{
|
||||
endpointType: EndpointType.Method,
|
||||
input: "Argument[self]",
|
||||
kind: "value",
|
||||
methodName: "create_function",
|
||||
@@ -189,6 +196,7 @@ describe("runGenerateQueries", () => {
|
||||
typeName: "SQLite3::Database",
|
||||
},
|
||||
{
|
||||
endpointType: EndpointType.Method,
|
||||
input: "Argument[1]",
|
||||
kind: "value",
|
||||
methodName: "new",
|
||||
@@ -200,7 +208,7 @@ describe("runGenerateQueries", () => {
|
||||
type: "summary",
|
||||
typeName: "SQLite3::Value!",
|
||||
},
|
||||
]);
|
||||
] satisfies ModeledMethod[]);
|
||||
|
||||
expect(options.queryRunner.createQueryRun).toHaveBeenCalledTimes(1);
|
||||
expect(options.queryRunner.createQueryRun).toHaveBeenCalledWith(
|
||||
|
||||
Reference in New Issue
Block a user