import React, { useState, useContext } from "react";
import { useNavigate } from "react-router-dom";
import { usePipelineMappings } from "../../Queries.jsx";
import StoreContext from "../../ctx/StoreContext.jsx";
import JobContext from "../../ctx/JobContext.jsx";
import Accordion from "@mui/material/Accordion";
import AccordionDetails from "@mui/material/AccordionDetails";
import AccordionSummary from "@mui/material/AccordionSummary";
import Typography from "@mui/material/Typography";
import IconButton from "@mui/material/IconButton";
import PlayArrowIcon from "@mui/icons-material/PlayArrow";
import Box from "@mui/material/Box";
import Stack from "@mui/material/Stack";
import {
selectBranch,
asTree,
asBranches,
as1d,
} from "../../../lib/jobs/pipelines.js";
export default function CatalogBox(props) {
const { catalogTest } = props;
const {
name: testName,
class: testClass,
repo: testRepo,
isPipeline,
type: testType,
} = catalogTest;
const navigate = useNavigate();
const { data: pipelineMappings, isLoading } = usePipelineMappings();
const { state: store, updateStore } = useContext(StoreContext);
const { state: jobState, jobFactory } = useContext(JobContext);
const [open, setOpen] = useState(false);
const toggleOpen = () => setOpen(!open);
const runTest = (e) => {
e.preventDefault();
e.stopPropagation();
console.log(catalogTest);
if (isPipeline) return runPipelineTest();
const jobId = jobFactory({ testNames: [testName] });
if (store.focusJob) navigate(`/qualiteer/jobs#${jobId}`);
};
const runPipelineTest = () => {
const primaries = pipelineMappings.filter((m) => m.includes(testName));
const builderCache = {
branches: asBranches(primaries),
tree: asTree(primaries),
selectedBranches: as1d(primaries),
isTriage: true,
};
const pipeline = jobFactory(builderCache);
if (store.focusJob) navigate(`/qualiteer/jobs#p${pipeline.id}`);
};
function Actions() {
return (
);
}
return (
{`${testClass}#`}
{testName}
{JSON.stringify(catalogTest)}
);
}