Files
hermes-mcp/product/site/verify.mjs
2026-04-29 09:52:53 -04:00

63 lines
1.4 KiB
JavaScript

import { spawn } from "child_process";
const commands = [
{
label: "smoke",
cmd: "node",
args: ["product/site/smoke-test.cjs"],
env: {},
},
{
label: "e2e-desktop",
cmd: "node",
args: ["product/site/e2e-test.mjs"],
env: {
SQUAREMCP_E2E_PROFILE: "desktop",
SQUAREMCP_E2E_SCREENSHOT: "/tmp/squaremcp-e2e-desktop.png",
},
},
{
label: "e2e-mobile",
cmd: "node",
args: ["product/site/e2e-test.mjs"],
env: {
SQUAREMCP_E2E_PROFILE: "mobile",
SQUAREMCP_E2E_SCREENSHOT: "/tmp/squaremcp-e2e-mobile.png",
},
},
];
function runCommand({ label, cmd, args, env }) {
return new Promise((resolve, reject) => {
const child = spawn(cmd, args, {
stdio: "inherit",
env: { ...process.env, ...env },
});
child.on("exit", (code) => {
if (code === 0) {
resolve();
return;
}
reject(new Error(`${label} failed with exit code ${code}`));
});
child.on("error", reject);
});
}
async function main() {
for (const command of commands) {
console.log(`\n==> ${command.label}`);
await runCommand(command);
}
console.log("\nsquaremcp product site verification: PASS");
console.log("desktop_screenshot: /tmp/squaremcp-e2e-desktop.png");
console.log("mobile_screenshot: /tmp/squaremcp-e2e-mobile.png");
}
main().catch((error) => {
console.error(`squaremcp product site verification: FAIL: ${error.message}`);
process.exit(1);
});