Files
Ninjaserver/test-achievements.js
2025-09-15 23:52:59 +02:00

47 lines
2.2 KiB
JavaScript

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();