feat: add lda report workflow demo panel
This commit is contained in:
@@ -74,6 +74,16 @@ afterEach(() => {
|
||||
cleanup();
|
||||
});
|
||||
|
||||
const lifecycleOk: RpcResponse = {
|
||||
ok: true,
|
||||
operation: "workflow.artifacts.list",
|
||||
label: "List artifacts",
|
||||
interpreted: { items: [], total: 0, nextCursor: null },
|
||||
exchange: { request: {}, response: {} },
|
||||
equivalentCli: "uv run wf artifact list",
|
||||
durationMs: 5,
|
||||
};
|
||||
|
||||
describe("App", () => {
|
||||
it("shows source inventory errors from rejected source refreshes", async () => {
|
||||
mockedConnectToServer.mockResolvedValue(
|
||||
@@ -130,14 +140,26 @@ describe("App", () => {
|
||||
mockedConnectToServer.mockResolvedValue(
|
||||
successfulConnection("http://127.0.0.1:8765/rpc"),
|
||||
);
|
||||
mockedCallOperation.mockResolvedValue({
|
||||
ok: true,
|
||||
operation: "workflow.sources.list",
|
||||
label: "List sources",
|
||||
interpreted: { sources: [], total: 0, nextCursor: null },
|
||||
exchange: { request: {}, response: {} },
|
||||
equivalentCli: "uv run wf source list",
|
||||
durationMs: 5,
|
||||
mockedCallOperation.mockImplementation((op: string) => {
|
||||
if (op === "workflow.sources.list") {
|
||||
return Promise.resolve({
|
||||
ok: true,
|
||||
operation: "workflow.sources.list",
|
||||
label: "List sources",
|
||||
interpreted: { sources: [], total: 0, nextCursor: null },
|
||||
exchange: { request: {}, response: {} },
|
||||
equivalentCli: "uv run wf source list",
|
||||
durationMs: 5,
|
||||
});
|
||||
}
|
||||
if (op === "workflow.deployments.inspect") {
|
||||
return Promise.resolve({
|
||||
ok: false,
|
||||
error: { code: "rpc_remote_error", message: "not found" },
|
||||
exchange: { request: {}, response: {} },
|
||||
});
|
||||
}
|
||||
return Promise.resolve(lifecycleOk);
|
||||
});
|
||||
|
||||
render(<App />);
|
||||
@@ -146,5 +168,6 @@ describe("App", () => {
|
||||
await waitFor(() => {
|
||||
expect(screen.getByTestId("lifecycle-explorer")).toBeInTheDocument();
|
||||
});
|
||||
expect(screen.getByLabelText("lda report workflow demo")).toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -10,6 +10,8 @@ import { ConnectionHeader } from "../components/ConnectionHeader.js";
|
||||
import { SourceInventory } from "../components/SourceInventory.js";
|
||||
import { LifecycleExplorer } from "../lifecycle/LifecycleExplorer.js";
|
||||
import { useLifecycleExplorer } from "../lifecycle/useLifecycleExplorer.js";
|
||||
import { LdaReportDemoPanel } from "../demo/LdaReportDemoPanel.js";
|
||||
import { useLdaReportDemo } from "../demo/useLdaReportDemo.js";
|
||||
|
||||
const parseSources = (
|
||||
data: unknown,
|
||||
@@ -54,6 +56,7 @@ export const App = () => {
|
||||
);
|
||||
|
||||
const lifecycleController = useLifecycleExplorer(connectedTarget, recordEvidence);
|
||||
const demoController = useLdaReportDemo(connectedTarget, recordEvidence);
|
||||
|
||||
const loadSources = useCallback(
|
||||
async (target: string) => {
|
||||
@@ -160,6 +163,7 @@ export const App = () => {
|
||||
onSubmit={onSubmit}
|
||||
onDraftChange={(value) => dispatch({ type: "draft_changed", value })}
|
||||
/>
|
||||
{connectedTarget && <LdaReportDemoPanel controller={demoController} />}
|
||||
<SourceInventory
|
||||
sources={state.sources}
|
||||
loading={state.sourcesLoading}
|
||||
|
||||
Reference in New Issue
Block a user