UNPKG

testeranto

Version:

the AI powered BDD test framework for typescript projects

73 lines (72 loc) 4.38 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProjectsPageView = void 0; const react_1 = __importDefault(require("react")); const react_bootstrap_1 = require("react-bootstrap"); const ProjectsPageView = ({ projects, summaries, configs, loading, error, navigate, }) => { const getStatusIcon = (status) => { switch (status) { case "success": return "✅"; case "failed": return "❌"; case "warning": return "⚠️"; default: return "❓"; } }; if (loading) return react_1.default.createElement("div", null, "Loading projects..."); if (error) return react_1.default.createElement(react_bootstrap_1.Alert, { variant: "danger" }, "Error: ", error); return (react_1.default.createElement("div", { className: "" }, react_1.default.createElement(react_bootstrap_1.Table, { striped: true, bordered: true, hover: true, responsive: true }, react_1.default.createElement("thead", null, react_1.default.createElement("tr", null, react_1.default.createElement("th", null, "Project"), react_1.default.createElement("th", null, "Tests"), react_1.default.createElement("th", null, "Node"), react_1.default.createElement("th", null, "Web"), react_1.default.createElement("th", null, "Pure"))), react_1.default.createElement("tbody", null, projects.map((project) => (react_1.default.createElement("tr", { key: project.name }, react_1.default.createElement("td", null, react_1.default.createElement("a", { href: "#", onClick: (e) => { e.preventDefault(); navigate(`/projects/${project.name}`); } }, project.name)), react_1.default.createElement("td", null, react_1.default.createElement("div", null, summaries[project.name] ? (Object.keys(summaries[project.name]).map((testName) => { var _a, _b, _c; const testData = summaries[project.name][testName]; const runTime = ((_c = (_b = (_a = configs[project.name]) === null || _a === void 0 ? void 0 : _a.tests) === null || _b === void 0 ? void 0 : _b.find((t) => t[0] === testName)) === null || _c === void 0 ? void 0 : _c[1]) || "node"; const hasRuntimeErrors = testData.runTimeErrors > 0; const hasStaticErrors = testData.typeErrors > 0 || testData.staticErrors > 0; return (react_1.default.createElement("div", { key: testName }, react_1.default.createElement("a", { href: `#/projects/${project.name}/tests/${encodeURIComponent(testName)}/${runTime}` }, hasRuntimeErrors ? "❌ " : hasStaticErrors ? "⚠️ " : "", testName.split("/").pop() || testName))); })) : (react_1.default.createElement("div", null, "Loading tests...")))), react_1.default.createElement("td", null, react_1.default.createElement("a", { href: `#/projects/${project.name}#node` }, getStatusIcon(project.nodeStatus), " Node build logs")), react_1.default.createElement("td", null, react_1.default.createElement("a", { href: `#/projects/${project.name}#web` }, getStatusIcon(project.webStatus), " Web build logs")), react_1.default.createElement("td", null, react_1.default.createElement("a", { href: `#/projects/${project.name}#pure` }, getStatusIcon(project.pureStatus), " Pure build logs"))))))))); }; exports.ProjectsPageView = ProjectsPageView;