Spaces:
Running
Running
| import{r as s,j as e}from"./react-D_B_5QVd.js";import{n as g,B as j,L as x}from"./index-QBya0NjG.js";import{m as b}from"./marked-CesSW9Du.js";import"./jszip-C9ownNzX.js";import"./react-dom-EAO2-NBm.js";import"./scheduler-DYLXRpC5.js";import"./@google-4tyssLU_.js";import"./idb-Dob3nYDb.js";const y=`export function calculateTotalPrice(items, taxRate) { | |
| const subtotal = items.reduce((sum, item) => sum + item.price * item.quantity, 0); | |
| return subtotal * (1 + taxRate); | |
| }`,G=()=>{const[o,u]=s.useState(y),[a,i]=s.useState(""),[l,d]=s.useState(!1),[n,c]=s.useState(""),[f,m]=s.useState("");s.useEffect(()=>{(async()=>{if(a){const r=await b.parse(a);m(r)}else m("")})()},[a]);const p=s.useCallback(async()=>{if(!o.trim()){c("Please enter some code to generate tests for.");return}d(!0),c(""),i("");try{const t=g(o);let r="";for await(const h of t)r+=h,i(r)}catch(t){const r=t instanceof Error?t.message:"An unknown error occurred.";c(`Failed to generate tests: ${r}`)}finally{d(!1)}},[o]);return e.jsxs("div",{className:"h-full flex flex-col p-4 sm:p-6 lg:p-8",children:[e.jsxs("header",{className:"mb-6",children:[e.jsxs("h1",{className:"text-3xl font-bold text-slate-100 flex items-center",children:[e.jsx(j,{}),e.jsx("span",{className:"ml-3",children:"AI Unit Test Generator"})]}),e.jsx("p",{className:"text-slate-400 mt-1",children:"Provide a function or component and let AI write the tests."})]}),e.jsxs("div",{className:"flex-grow grid grid-cols-1 lg:grid-cols-2 gap-6 h-full overflow-hidden",children:[e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsx("label",{htmlFor:"code-input",className:"text-sm font-medium text-slate-400 mb-2",children:"Source Code"}),e.jsx("textarea",{id:"code-input",value:o,onChange:t=>u(t.target.value),placeholder:"Paste your source code here...",className:"flex-grow p-4 bg-slate-900 border border-slate-700 rounded-md resize-none font-mono text-sm text-cyan-300 focus:ring-2 focus:ring-cyan-500 focus:outline-none"}),e.jsx("button",{onClick:p,disabled:l,className:"mt-4 w-full flex items-center justify-center px-6 py-3 bg-cyan-500 text-slate-900 font-bold rounded-md hover:bg-cyan-400 transition-colors disabled:bg-slate-600 disabled:cursor-not-allowed",children:l?e.jsx(x,{}):"Generate Unit Tests"})]}),e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsx("label",{className:"text-sm font-medium text-slate-400 mb-2",children:"Generated Tests"}),e.jsxs("div",{className:"flex-grow p-1 bg-slate-800/50 border border-slate-700/50 rounded-md overflow-y-auto",children:[l&&e.jsx("div",{className:"flex items-center justify-center h-full",children:e.jsx(x,{})}),n&&e.jsx("p",{className:"p-4 text-red-400",children:n}),a&&!l&&e.jsx("div",{className:"prose prose-sm prose-invert max-w-none prose-pre:bg-transparent prose-pre:p-4 prose-pre:m-0 prose-code:text-cyan-300",dangerouslySetInnerHTML:{__html:f}}),!l&&!a&&!n&&e.jsx("div",{className:"text-slate-500 h-full flex items-center justify-center",children:"The generated tests will appear here."})]})]})]})]})};export{G as AiUnitTestGenerator}; | |
| //# sourceMappingURL=AiUnitTestGenerator-DnqoljB0.js.map | |