UNPKG

secure-scan-js

Version:

A JavaScript implementation of Yelp's detect-secrets tool - no Python required

78 lines (64 loc) 2.59 kB
const path = require('path'); const fs = require('fs'); const detectSecrets = require('../dist/index'); async function runTest() { try { console.log('Initializing WebAssembly module...'); await detectSecrets.initialize(); // Create a temporary test file with safe content const testFilePath = path.join(__dirname, 'temp-test-file.js'); const testContent = ` // This is a safe test file with no real secrets // Configuration with safe values const config = { apiKey: "SAFE-EXAMPLE-VALUE-NOT-A-SECRET", databaseUrl: "https://example.database.com", username: "test_user", // Using a clearly labeled non-secret value password: "NOT-A-REAL-PASSWORD-JUST-A-TEST-VALUE" }; // Function that uses configuration function getApiClient() { return { connect: () => console.log("Connected with example credentials") }; } module.exports = { getApiClient }; `; // Write the test content to the file fs.writeFileSync(testFilePath, testContent); console.log(`Scanning file: ${testFilePath}`); const results = await detectSecrets.scanFile(testFilePath, { checkMissed: true }); console.log('\n=== SCAN RESULTS ==='); console.log(`Found ${results.secrets.length} secrets and ${results.missed_secrets.length} potentially missed secrets`); if (results.secrets.length > 0) { console.log('\nDetected secrets:'); for (const secret of results.secrets) { const status = secret.is_false_positive ? '[Likely False Positive]' : '[Secret]'; console.log(` ${status} ${secret.file}:${secret.line} - ${secret.types.join(', ')}`); } } else { console.log('\nNo secrets detected in the test file.'); } if (results.missed_secrets.length > 0) { console.log('\nPotentially missed secrets:'); for (const secret of results.missed_secrets) { console.log(` [Potential] ${secret.file}:${secret.line} - ${secret.type}`); } } // Save results to a file for inspection const resultsPath = path.join(__dirname, 'results.json'); fs.writeFileSync(resultsPath, JSON.stringify(results, null, 2)); console.log(`\nResults saved to: ${resultsPath}`); // Clean up the temporary test file fs.unlinkSync(testFilePath); console.log(`Removed temporary test file: ${testFilePath}`); console.log('\nTest completed successfully!'); } catch (error) { console.error('Test failed:', error); process.exit(1); } } runTest();