- Move external URL checks to its own module under `tests/`. This separates them from integration test, addressing long runs and frequent failures that led to ignoring test results. - Move `check-desktop-runtime-errors` to `tests/checks` to keep all test-related checks into one directory. - Replace `ts-node` with `vite` for running `check-desktop-runtime-errors` to maintain a consistent execution environment across checks. - Implement a timeout for each fetch call. - Be nice to external sources, wait 5 seconds before sending another request to an URL under same domain. This solves rate-limiting issues. - Instead of running test on every push/pull request, run them only weekly. - Do not run tests on each commit/PR but only scheduled (weekly) to minimize noise. - Fix URLs are not captured correctly inside backticks or parenthesis.
22 lines
546 B
TypeScript
22 lines
546 B
TypeScript
import { readdir, access } from 'fs/promises';
|
|
import { constants } from 'fs';
|
|
|
|
export async function exists(path: string): Promise<boolean> {
|
|
if (!path) { throw new Error('Missing path'); }
|
|
try {
|
|
await access(path, constants.F_OK);
|
|
return true;
|
|
} catch {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
export async function isDirMissingOrEmpty(dir: string): Promise<boolean> {
|
|
if (!dir) { throw new Error('Missing directory'); }
|
|
if (!await exists(dir)) {
|
|
return true;
|
|
}
|
|
const contents = await readdir(dir);
|
|
return contents.length === 0;
|
|
}
|