104 lines
3.3 KiB
JavaScript
104 lines
3.3 KiB
JavaScript
import { existsSync } from 'fs';
|
|
import { join, dirname } from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = dirname(__filename);
|
|
|
|
console.log('🔍 Verifying Email Sortierer Setup\n');
|
|
|
|
let allChecksPass = true;
|
|
|
|
// Check 1: .env file exists
|
|
console.log('Check 1: .env file exists');
|
|
const envPath = join(__dirname, '.env');
|
|
if (existsSync(envPath)) {
|
|
console.log('✅ .env file found\n');
|
|
} else {
|
|
console.log('❌ .env file not found');
|
|
console.log(' → Copy .env.example to .env and fill in your credentials\n');
|
|
allChecksPass = false;
|
|
}
|
|
|
|
// Check 2: Required environment variables
|
|
console.log('Check 2: Required environment variables');
|
|
const requiredVars = [
|
|
'APPWRITE_ENDPOINT',
|
|
'APPWRITE_PROJECT_ID',
|
|
'APPWRITE_API_KEY',
|
|
'APPWRITE_DATABASE_ID',
|
|
'STRIPE_SECRET_KEY',
|
|
'STRIPE_WEBHOOK_SECRET'
|
|
];
|
|
|
|
let missingVars = [];
|
|
for (const varName of requiredVars) {
|
|
if (!process.env[varName]) {
|
|
missingVars.push(varName);
|
|
}
|
|
}
|
|
|
|
if (missingVars.length === 0) {
|
|
console.log('✅ All required environment variables are set\n');
|
|
} else {
|
|
console.log('❌ Missing environment variables:');
|
|
missingVars.forEach(v => console.log(` - ${v}`));
|
|
console.log(' → Add these to your .env file\n');
|
|
allChecksPass = false;
|
|
}
|
|
|
|
// Check 3: Node modules installed
|
|
console.log('Check 3: Node modules installed');
|
|
const nodeModulesPath = join(__dirname, 'node_modules');
|
|
if (existsSync(nodeModulesPath)) {
|
|
console.log('✅ node_modules found\n');
|
|
} else {
|
|
console.log('❌ node_modules not found');
|
|
console.log(' → Run: npm install\n');
|
|
allChecksPass = false;
|
|
}
|
|
|
|
// Check 4: Required files exist
|
|
console.log('Check 4: Required files exist');
|
|
const requiredFiles = [
|
|
'index.mjs',
|
|
'bootstrap-appwrite.mjs',
|
|
'e2e-test.mjs',
|
|
'package.json',
|
|
'../public/index.html'
|
|
];
|
|
|
|
let missingFiles = [];
|
|
for (const file of requiredFiles) {
|
|
const filePath = join(__dirname, file);
|
|
if (!existsSync(filePath)) {
|
|
missingFiles.push(file);
|
|
}
|
|
}
|
|
|
|
if (missingFiles.length === 0) {
|
|
console.log('✅ All required files exist\n');
|
|
} else {
|
|
console.log('❌ Missing files:');
|
|
missingFiles.forEach(f => console.log(` - ${f}`));
|
|
console.log('\n');
|
|
allChecksPass = false;
|
|
}
|
|
|
|
// Summary
|
|
console.log('═══════════════════════════════════════════════════════');
|
|
if (allChecksPass) {
|
|
console.log('✅ Setup verification passed!');
|
|
console.log('\nNext steps:');
|
|
console.log('1. Run bootstrap script: npm run bootstrap');
|
|
console.log('2. Update APPWRITE_DATABASE_ID in .env with the database ID from bootstrap');
|
|
console.log('3. Start the server: npm start');
|
|
console.log('4. Run tests: npm test');
|
|
console.log('5. Open browser: http://localhost:3000');
|
|
} else {
|
|
console.log('❌ Setup verification failed');
|
|
console.log('\nPlease fix the issues above and run this script again.');
|
|
console.log('Run: node verify-setup.mjs');
|
|
}
|
|
console.log('═══════════════════════════════════════════════════════');
|