run-final-test.jsā¢2.69 kB
import { AccessibilityTester } from './dist/accessibility/tester.js';
import { FileOutputManager } from './dist/utils/fileOutput.js';
import { ConfigValidator } from './dist/utils/validation.js';
import path from 'path';
async function runFinalAccessibilityTest() {
console.log('š Initiating Final Accessibility Test...\\n');
const tester = new AccessibilityTester();
const fileManager = new FileOutputManager();
// 1. Define and validate test configuration as per project conventions
const testConfig = ConfigValidator.validateTestConfiguration({
browser: 'chromium',
wcagLevel: 'AA',
wcagVersion: '2.1',
includeScreenshot: true,
timeout: 45000 // Increased timeout for reliability
});
const targetUrl = 'https://www.aut.ac.nz';
try {
// 2. Initialize browser - following the required workflow
console.log(`š§ Initializing browser: ${testConfig.browser}...`);
await tester.initialize(testConfig.browser);
console.log('ā
Browser initialized.');
// 3. Run the accessibility test using the configured engine
console.log(`š Running accessibility scan on: ${targetUrl}`);
const testResult = await tester.testAccessibility({
url: targetUrl,
...testConfig
});
console.log(`ā
Scan complete. Found ${testResult.summary.violations} violations.`);
// 4. Save results using the corrected FileOutputManager
console.log('\\nš¾ Saving test results to the "outputs" directory...');
const textFilePath = await fileManager.saveTestResult(testResult);
const jsonFilePath = await fileManager.saveRawResults(testResult);
if (textFilePath && jsonFilePath) {
console.log(`š Text report saved: ${path.basename(textFilePath)}`);
console.log(`š JSON data saved: ${path.basename(jsonFilePath)}`);
}
// 5. List all files in the directory to confirm they were written
console.log('\\nš Verifying files in output directory...');
const allFiles = await fileManager.listTestResults();
if (allFiles.length > 0) {
console.log(`ā
Success! Found ${allFiles.length} report(s) in the outputs directory:`);
allFiles.forEach((file, index) => {
console.log(` ${index + 1}. ${file}`);
});
} else {
console.error('ā Verification failed: No report files found in the output directory.');
}
} catch (error) {
console.error('\\nā An error occurred during the test run:', error);
} finally {
// 6. Clean up browser resources - a critical step in the workflow
await tester.close();
console.log('\\nš Browser resources cleaned up. Test finished.');
}
}
runFinalAccessibilityTest();