Include stories for all modeled method types

This commit is contained in:
Robert
2023-09-04 11:12:07 +01:00
parent 096e6e8ffd
commit 47c897e9bd

View File

@@ -3,7 +3,11 @@ import * as React from "react";
import { Meta, StoryFn } from "@storybook/react";
import { MethodRow as MethodRowComponent } from "../../view/model-editor/MethodRow";
import { CallClassification } from "../../model-editor/external-api-usage";
import {
CallClassification,
ExternalApiUsage,
} from "../../model-editor/external-api-usage";
import { ModeledMethod } from "../../model-editor/modeled-method";
import { VSCodeDataGrid } from "@vscode/webview-ui-toolkit/react";
import { GRID_TEMPLATE_COLUMNS } from "../../view/model-editor/ModeledMethodDataGrid";
@@ -18,52 +22,85 @@ const Template: StoryFn<typeof MethodRowComponent> = (args) => (
</VSCodeDataGrid>
);
export const MethodRow = Template.bind({});
MethodRow.args = {
externalApiUsage: {
library: "sql2o-1.6.0.jar",
signature: "org.sql2o.Sql2o#open()",
packageName: "org.sql2o",
typeName: "Sql2o",
methodName: "open",
methodParameters: "()",
supported: true,
supportedType: "summary",
usages: [
{
label: "open(...)",
url: {
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/HelloController.java",
startLine: 14,
startColumn: 24,
endLine: 14,
endColumn: 35,
},
classification: CallClassification.Source,
const externalApiUsage: ExternalApiUsage = {
library: "sql2o-1.6.0.jar",
signature: "org.sql2o.Sql2o#open()",
packageName: "org.sql2o",
typeName: "Sql2o",
methodName: "open",
methodParameters: "()",
supported: false,
supportedType: "summary",
usages: [
{
label: "open(...)",
url: {
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/HelloController.java",
startLine: 14,
startColumn: 24,
endLine: 14,
endColumn: 35,
},
{
label: "open(...)",
url: {
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/HelloController.java",
startLine: 25,
startColumn: 24,
endLine: 25,
endColumn: 35,
},
classification: CallClassification.Source,
classification: CallClassification.Source,
},
{
label: "open(...)",
url: {
uri: "file:/home/runner/work/sql2o-example/sql2o-example/src/main/java/org/example/HelloController.java",
startLine: 25,
startColumn: 24,
endLine: 25,
endColumn: 35,
},
],
},
modeledMethod: {
type: "summary",
input: "Argument[this]",
output: "ReturnValue",
kind: "taint",
provenance: "manual",
signature: "org.sql2o.Sql2o#open()",
packageName: "org.sql2o",
typeName: "Sql2o",
methodName: "open",
methodParameters: "()",
},
classification: CallClassification.Source,
},
],
};
const modeledMethod: ModeledMethod = {
type: "summary",
input: "Argument[this]",
output: "ReturnValue",
kind: "taint",
provenance: "manual",
signature: "org.sql2o.Sql2o#open()",
packageName: "org.sql2o",
typeName: "Sql2o",
methodName: "open",
methodParameters: "()",
};
export const Unmodeled = Template.bind({});
Unmodeled.args = {
externalApiUsage,
modeledMethod: undefined,
};
export const Source = Template.bind({});
Source.args = {
externalApiUsage,
modeledMethod: { ...modeledMethod, type: "source" },
};
export const Sink = Template.bind({});
Sink.args = {
externalApiUsage,
modeledMethod: { ...modeledMethod, type: "sink" },
};
export const Summary = Template.bind({});
Summary.args = {
externalApiUsage,
modeledMethod: { ...modeledMethod, type: "summary" },
};
export const Neutral = Template.bind({});
Neutral.args = {
externalApiUsage,
modeledMethod: { ...modeledMethod, type: "neutral" },
};
export const AlreadyModeled = Template.bind({});
AlreadyModeled.args = {
externalApiUsage: { ...externalApiUsage, supported: true },
modeledMethod: undefined,
};