|
1 | 1 | #! /usr/bin/env node
|
2 | 2 | /* eslint-disable-next-line no-unused-vars */
|
3 |
| -import { argv } from "node:process"; |
4 | 3 | import serve from "./server.mjs";
|
5 | 4 | import { Builder, Capabilities } from "selenium-webdriver";
|
6 | 5 | import commandLineArgs from "command-line-args";
|
@@ -71,22 +70,56 @@ const server = serve(PORT);
|
71 | 70 |
|
72 | 71 | let driver;
|
73 | 72 |
|
| 73 | +function printTree(node) { |
| 74 | + console.log(node.title); |
| 75 | + |
| 76 | + for (const test of node.tests) { |
| 77 | + console.group(); |
| 78 | + if (test.state === "passed") { |
| 79 | + console.log("\x1b[32m✓", `\x1b[0m${test.title}`); |
| 80 | + } else { |
| 81 | + console.log("\x1b[31m✖", `\x1b[0m${test.title}`); |
| 82 | + console.group(); |
| 83 | + console.log(`\x1b[31m${test.error.name}: ${test.error.message}`); |
| 84 | + console.groupEnd(); |
| 85 | + } |
| 86 | + console.groupEnd(); |
| 87 | + } |
| 88 | + |
| 89 | + for (const suite of node.suites) { |
| 90 | + console.group(); |
| 91 | + printTree(suite); |
| 92 | + console.groupEnd(); |
| 93 | + } |
| 94 | +} |
| 95 | + |
74 | 96 | async function test() {
|
75 | 97 | driver = await new Builder().withCapabilities(capabilities).build();
|
76 | 98 |
|
77 | 99 | try {
|
78 | 100 | await driver.get(`http://localhost:${PORT}/tests/index.html`);
|
79 |
| - console.log("Waiting for tests to finish"); |
80 |
| - const stats = await driver.executeAsyncScript(function (callback) { |
81 |
| - window.addEventListener("complete", () => callback(window.mochaResults.stats), { once: true }); |
| 101 | + const result = await driver.executeAsyncScript(function (callback) { |
| 102 | + window.addEventListener( |
| 103 | + "test-complete", |
| 104 | + () => |
| 105 | + callback({ |
| 106 | + stats: window.mochaResults.stats, |
| 107 | + suite: window.suite, |
| 108 | + }), |
| 109 | + { once: true } |
| 110 | + ); |
| 111 | + const event = new Event("start-test"); |
| 112 | + window.dispatchEvent(event); |
82 | 113 | });
|
83 |
| - console.log("stats", stats); |
84 |
| - console.log("Checking for passed tests"); |
85 |
| - assert(stats.passes > 0); |
86 |
| - console.log("Checking for failed tests"); |
87 |
| - assert(stats.failures === 0); |
| 114 | + |
| 115 | + printTree(result.suite); |
| 116 | + |
| 117 | + console.log("\nChecking for passed tests..."); |
| 118 | + assert(result.stats.passes > 0); |
| 119 | + console.log("Checking for failed tests..."); |
| 120 | + assert(result.stats.failures === 0); |
88 | 121 | } finally {
|
89 |
| - console.log("Tests complete"); |
| 122 | + console.log("\nTests complete!"); |
90 | 123 | driver.quit();
|
91 | 124 | server.close();
|
92 | 125 | }
|
|
0 commit comments