UNPKG

testeranto

Version:

the AI powered BDD test framework for typescript projects

74 lines (73 loc) 4.5 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.MagicRobotModal = void 0; const react_1 = __importDefault(require("react")); const react_bootstrap_1 = require("react-bootstrap"); const useFs_1 = require("../../useFs"); const MagicRobotModal = ({ customMessage, isWebSocketConnected, messageOption, navigate, projectName, runtime, setCustomMessage, setMessageOption, setShowAiderModal, setShowToast, setToastMessage, setToastVariant, showAiderModal, testName, }) => { const fs = (0, useFs_1.useFs)(); const onclick = async () => { try { const promptPath = `testeranto/reports/${projectName}/${testName .split(".") .slice(0, -1) .join(".")}/${runtime}/prompt.txt`; let command = `aider --load ${promptPath}`; if (messageOption === "default") { const messagePath = `testeranto/reports/${projectName}/${testName .split(".") .slice(0, -1) .join(".")}/${runtime}/message.txt`; command += ` --message-file ${messagePath}`; } else { command += ` --message "${customMessage}"`; } // Send command to server via the centralized WebSocket if (isWebSocketConnected) { fs.send(JSON.stringify({ type: "executeCommand", command: command, })); setToastMessage("Command sent to server"); setToastVariant("success"); setShowToast(true); setShowAiderModal(false); // Navigate to process manager page setTimeout(() => { navigate("/processes"); }, 1000); } else { setToastMessage("WebSocket connection not ready"); setToastVariant("danger"); setShowToast(true); } } catch (err) { console.error("WebSocket error:", err); setToastMessage("Error preparing command"); setToastVariant("danger"); setShowToast(true); } }; return (react_1.default.createElement(react_bootstrap_1.Modal, { show: showAiderModal, onHide: () => setShowAiderModal(false), size: "lg", onShow: () => setMessageOption("default") }, react_1.default.createElement(react_bootstrap_1.Modal.Header, { closeButton: true }, react_1.default.createElement(react_bootstrap_1.Modal.Title, null, "Aider")), react_1.default.createElement(react_bootstrap_1.Modal.Body, null, react_1.default.createElement("div", { className: "mb-3" }, react_1.default.createElement("div", { className: "form-check" }, react_1.default.createElement("input", { className: "form-check-input", type: "radio", name: "messageOption", id: "defaultMessage", value: "default", checked: messageOption === "default", onChange: () => setMessageOption("default") }), react_1.default.createElement("label", { className: "form-check-label", htmlFor: "defaultMessage" }, "Use default message.txt")), react_1.default.createElement("div", { className: "form-check" }, react_1.default.createElement("input", { className: "form-check-input", type: "radio", name: "messageOption", id: "customMessage", value: "custom", checked: messageOption === "custom", onChange: () => setMessageOption("custom") }), react_1.default.createElement("label", { className: "form-check-label", htmlFor: "customMessage" }, "Use custom message")), messageOption === "custom" && (react_1.default.createElement("div", { className: "mt-2" }, react_1.default.createElement("textarea", { className: "form-control", rows: 8, placeholder: "Enter your custom message", value: customMessage, onChange: (e) => setCustomMessage(e.target.value), style: { minHeight: "500px" } }))))), react_1.default.createElement(react_bootstrap_1.Modal.Footer, null, react_1.default.createElement(react_bootstrap_1.Button, { variant: "primary", onClick: onclick }, "Run Aider Command")))); }; exports.MagicRobotModal = MagicRobotModal;