#!/usr/bin/env node /** * Simple test script to verify LHCI configuration * This script validates the configuration without running actual tests */ const fs = require('fs'); const path = require('path'); console.log('šŸ” Testing LHCI Configuration...\n'); // Check if .lighthouserc.json exists const configPath = path.join(process.cwd(), '.lighthouserc.json'); if (fs.existsSync(configPath)) { console.log('āœ… .lighthouserc.json found'); try { const config = JSON.parse(fs.readFileSync(configPath, 'utf8')); console.log('āœ… Configuration is valid JSON'); if (config.ci && config.ci.collect && config.ci.assert) { console.log('āœ… Configuration has required sections (collect, assert)'); console.log(`āœ… Testing ${config.ci.collect.numberOfRuns} runs`); console.log(`āœ… URL: ${config.ci.collect.url[0]}`); } else { console.log('āŒ Configuration missing required sections'); } } catch (error) { console.log('āŒ Configuration is not valid JSON:', error.message); } } else { console.log('āŒ .lighthouserc.json not found'); } // Check if @lhci/cli is installed try { const { execSync } = require('child_process'); execSync('npx lhci --version', { stdio: 'pipe' }); console.log('āœ… @lhci/cli package is installed and working'); } catch (error) { console.log('āŒ @lhci/cli package is not working:', error.message); } // Check package.json scripts const packagePath = path.join(process.cwd(), 'package.json'); if (fs.existsSync(packagePath)) { try { const packageJson = JSON.parse(fs.readFileSync(packagePath, 'utf8')); if (packageJson.scripts && packageJson.scripts.lhci) { console.log('āœ… LHCI script found in package.json'); } else { console.log('āŒ LHCI script not found in package.json'); } } catch (error) { console.log('āŒ Error reading package.json:', error.message); } } console.log('\nšŸŽ‰ LHCI Configuration Test Complete!'); console.log('Note: Actual LHCI tests may fail locally due to Node.js architecture issues on macOS.'); console.log('The CI environment should work correctly with the provided configuration.');