Spaces:
Paused
Paused
| import "dotenv/config"; | |
| import { services } from "../processing/service-config.js"; | |
| import { extract } from "../processing/url.js"; | |
| import match from "../processing/match.js"; | |
| import { loadJSON } from "../misc/load-from-fs.js"; | |
| import { normalizeRequest } from "../processing/request.js"; | |
| import { env } from "../config.js"; | |
| env.apiURL = 'http://localhost:9000' | |
| let tests = loadJSON('./src/util/tests.json'); | |
| let noTest = []; | |
| let failed = []; | |
| let success = 0; | |
| function addToFail(service, testName, url, status, response) { | |
| failed.push({ | |
| service: service, | |
| name: testName, | |
| url: url, | |
| status: status, | |
| response: response | |
| }) | |
| } | |
| for (let i in services) { | |
| if (tests[i]) { | |
| console.log(`\nRunning tests for ${i}...\n`) | |
| for (let k = 0; k < tests[i].length; k++) { | |
| let test = tests[i][k]; | |
| console.log(`Running test ${k+1}: ${test.name}`); | |
| console.log('params:'); | |
| let params = {...{url: test.url}, ...test.params}; | |
| console.log(params); | |
| let chck = await normalizeRequest(params); | |
| if (chck.success) { | |
| chck = chck.data; | |
| const parsed = extract(chck.url); | |
| if (parsed === null) { | |
| throw `Invalid URL: ${chck.url}` | |
| } | |
| let j = await match({ | |
| host: parsed.host, | |
| patternMatch: parsed.patternMatch, | |
| params: chck, | |
| }); | |
| console.log('\nReceived:'); | |
| console.log(j) | |
| if (j.status === test.expected.code && j.body.status === test.expected.status) { | |
| console.log("\n✅ Success.\n"); | |
| success++ | |
| } else { | |
| console.log(`\n❌ Fail. Expected: ${test.expected.code} & ${test.expected.status}, received: ${j.status} & ${j.body.status}\n`); | |
| addToFail(i, test.name, test.url, j.body.status, j) | |
| } | |
| } else { | |
| console.log("\n❌ couldn't validate the request JSON.\n"); | |
| addToFail(i, test.name, test.url, "unknown", {}) | |
| } | |
| } | |
| console.log("\n\n") | |
| } else { | |
| console.warn(`No tests found for ${i}.`); | |
| noTest.push(i) | |
| } | |
| } | |
| console.log(`✅ ${success} tests succeeded.`); | |
| console.log(`❌ ${failed.length} tests failed.`); | |
| console.log(`❔ ${noTest.length} services weren't tested.`); | |
| if (failed.length > 0) { | |
| console.log(`\nFailed tests:`); | |
| console.log(failed) | |
| } | |
| if (noTest.length > 0) { | |
| console.log(`\nMissing tests:`); | |
| console.log(noTest) | |
| } | |