const AchievementSystem = require('./lib/achievementSystem'); async function testAchievements() { console.log('=== Testing Achievement System ==='); const achievementSystem = new AchievementSystem(); const playerId = '08476bfc-5f48-486c-9f0b-90b81e5ccd8d'; try { // Test 1: Load achievements console.log('\n1. Loading achievements...'); await achievementSystem.loadAchievements(); console.log(`✅ Loaded ${achievementSystem.achievements.size} achievements`); // Test 2: Load player achievements console.log('\n2. Loading player achievements...'); await achievementSystem.loadPlayerAchievements(playerId); const playerAchievements = achievementSystem.playerAchievements.get(playerId); console.log(`✅ Player has ${playerAchievements ? playerAchievements.size : 0} achievements`); // Test 3: Check first time achievement console.log('\n3. Checking first time achievement...'); const firstTimeAchievement = Array.from(achievementSystem.achievements.values()) .find(a => a.category === 'consistency' && a.condition_type === 'first_time'); console.log('First time achievement:', firstTimeAchievement ? firstTimeAchievement.name : 'NOT FOUND'); // Test 4: Check September achievement console.log('\n4. Checking September achievement...'); const septemberAchievement = Array.from(achievementSystem.achievements.values()) .find(a => a.category === 'monthly' && a.condition_type === 'september'); console.log('September achievement:', septemberAchievement ? septemberAchievement.name : 'NOT FOUND'); // Test 5: Check immediate achievements console.log('\n5. Running immediate achievement check...'); const newAchievements = await achievementSystem.checkImmediateAchievements(playerId); console.log(`✅ Found ${newAchievements.length} new achievements`); newAchievements.forEach(achievement => { console.log(` 🏆 ${achievement.name} (+${achievement.points} points)`); }); } catch (error) { console.error('❌ Error:', error); } } testAchievements();