testeranto
Version:
the AI powered BDD test framework for typescript projects
100 lines (99 loc) • 4.32 kB
JavaScript
/* eslint-disable @typescript-eslint/no-unused-vars */
/* eslint-disable @typescript-eslint/no-explicit-any */
import React, { useState } from "react";
import { useNavigate } from "react-router-dom";
// import { useWebSocket } from "../../App";
import { ProjectsPageView } from "../pure/ProjectsPageView";
import { useWebSocket } from "../../useWebSocket";
import { useFs } from "../../useFs";
export const ProjectsPage = () => {
// const [projects, setProjects] = useState<any[]>([]);
// const [summaries, setSummaries] = useState<Record<string, ISummary>>({});
const [loading, setLoading] = useState(true);
const [error, setError] = useState(null);
const [configs, setConfigs] = useState({});
const navigate = useNavigate();
const { ws } = useWebSocket();
const fs = useFs();
// const summaries = fs.fs.readFile('./testeranto/projects.json', undefined, () => { });
// useEffect(() => {
// if (!ws) return;
// const handleMessage = (event: MessageEvent) => {
// try {
// const data = JSON.parse(event.data);
// if (data.type === "summaryUpdate") {
// // Update summaries when we receive updates
// setSummaries((prev) => ({ ...prev, ...data.data }));
// }
// } catch (error) {
// console.error("Error parsing WebSocket message:", error);
// }
// };
// ws.addEventListener("message", handleMessage);
// return () => {
// ws.removeEventListener("message", handleMessage);
// };
// }, [ws]);
// useEffect(() => {
// const fetchProjects = async () => {
// try {
// const projectsRes = await fetch(`projects.json`);
// const projectNames = await projectsRes.json();
// const projectsData = await Promise.all(
// projectNames.map(async (name) => {
// const [summaryRes, nodeRes, webRes, pureRes, configRes] =
// await Promise.all([
// fetch(summaryDotJson(name)),
// fetch(`metafiles/node/${name}.json`),
// fetch(`metafiles/web/${name}.json`),
// fetch(`metafiles/pure/${name}.json`),
// fetch(`reports/${name}/config.json`),
// ]);
// const [summary, nodeData, webData, pureData, configData] =
// await Promise.all([
// summaryRes.json(),
// nodeRes.ok
// ? nodeRes.json()
// : { errors: ["Failed to load node build logs"] },
// webRes.ok
// ? webRes.json()
// : { errors: ["Failed to load web build logs"] },
// pureRes.ok
// ? pureRes.json()
// : { errors: ["Failed to load pure build logs"] },
// configRes.json(),
// ]);
// setSummaries((prev) => ({ ...prev, [name]: summary }));
// setConfigs((prev) => ({ ...prev, [name]: configData }));
// return {
// name,
// testCount: Object.keys(summary).length,
// nodeStatus: nodeData.errors?.length
// ? "failed"
// : nodeData.warnings?.length
// ? "warning"
// : "success",
// webStatus: webData.errors?.length
// ? "failed"
// : webData.warnings?.length
// ? "warning"
// : "success",
// pureStatus: pureData.errors?.length
// ? "failed"
// : pureData.warnings?.length
// ? "warning"
// : "success",
// };
// })
// );
// setProjects(projectsData);
// } catch (err) {
// setError(err instanceof Error ? err.message : "Unknown error");
// } finally {
// setLoading(false);
// }
// };
// fetchProjects();
// }, []);
return (React.createElement(ProjectsPageView, { projects: projects, summaries: summaries, configs: configs, loading: loading, error: error, navigate: navigate }));
};