- Added a comprehensive manual testing guide for the countdown functionality in `test_countdown_manual.md`. - Developed a detailed Selenium test suite in `test_countdown_selenium.py` to verify countdown behavior, including server accessibility, login, countdown progression, and UI elements. - Created a minimal Selenium test version in `test_countdown_selenium_minimal.py` for quick checks without complex setup. - Introduced a verification script in `test_countdown_verification.py` to analyze code correctness, including server checks, build file existence, and countdown logic.
37 lines
1.6 KiB
JavaScript
37 lines
1.6 KiB
JavaScript
require('dotenv').config();
|
|
const mysql = require('mysql2/promise');
|
|
|
|
(async () => {
|
|
const conn = await mysql.createConnection({
|
|
host: process.env.DB_HOST,
|
|
port: process.env.DB_PORT,
|
|
user: process.env.DB_USER,
|
|
password: process.env.DB_PASSWORD,
|
|
database: process.env.DB_NAME
|
|
});
|
|
|
|
const [packages] = await conn.execute('SELECT id, name, category FROM material_packages WHERE is_active = 1 ORDER BY id');
|
|
const [withMaterials] = await conn.execute('SELECT DISTINCT package_id FROM package_materials');
|
|
const materialPackageIds = new Set(withMaterials.map(r => r.package_id));
|
|
const [withTasks] = await conn.execute('SELECT DISTINCT package_id FROM package_tasks');
|
|
const taskPackageIds = new Set(withTasks.map(r => r.package_id));
|
|
|
|
const pkgsNoMaterials = packages.filter(p => !materialPackageIds.has(p.id));
|
|
const pkgsNoTasks = packages.filter(p => !taskPackageIds.has(p.id));
|
|
const complete = packages.filter(p => materialPackageIds.has(p.id) && taskPackageIds.has(p.id));
|
|
|
|
console.log('❌ PAKKER UDEN MATERIALER:');
|
|
console.log(pkgsNoMaterials.length + ' pakker mangler materialer:\n');
|
|
pkgsNoMaterials.forEach(p => console.log(' ID ' + p.id + ': ' + p.name + ' (' + p.category + ')'));
|
|
|
|
console.log('\n\n❌ PAKKER UDEN OPGAVER:');
|
|
console.log(pkgsNoTasks.length + ' pakker mangler opgaver:\n');
|
|
pkgsNoTasks.forEach(p => console.log(' ID ' + p.id + ': ' + p.name + ' (' + p.category + ')'));
|
|
|
|
console.log('\n\n✅ PAKKER MED BÅDE MATERIALER OG OPGAVER:');
|
|
console.log(complete.length + ' komplette pakker:\n');
|
|
complete.forEach(p => console.log(' ID ' + p.id + ': ' + p.name));
|
|
|
|
await conn.end();
|
|
})();
|