31 lines
912 B
JavaScript
31 lines
912 B
JavaScript
/**
|
|
* Test Setup — Handle platform-specific issues gracefully
|
|
*
|
|
* This file runs before tests to handle:
|
|
* - Platform mismatches (macOS binaries in Linux environment)
|
|
* - Native module loading failures (better-sqlite3, esbuild)
|
|
* - Environment-specific test skipping
|
|
*/
|
|
|
|
const canLoadNativeModules = () => {
|
|
try {
|
|
require('better-sqlite3');
|
|
return true;
|
|
} catch (err) {
|
|
if (err.code === 'ERR_MODULE_NOT_FOUND' || err.message.includes('wrong platform')) {
|
|
return false;
|
|
}
|
|
throw err;
|
|
}
|
|
};
|
|
|
|
export const canRunDatabaseTests = canLoadNativeModules();
|
|
|
|
// Set environment variable for test suite
|
|
if (!canRunDatabaseTests) {
|
|
process.env.SKIP_DATABASE_TESTS = 'true';
|
|
console.warn('⚠️ Native modules not available (platform mismatch detected)');
|
|
console.warn(' Skipping database-dependent tests');
|
|
console.warn(' Run tests on macOS or rebuild with: npm ci');
|
|
}
|