UNPKG

agentsqripts

Version:

Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems

75 lines (67 loc) 2.16 kB
/** * @file Grade Utils test bridge * @description Bridge test file to import from grade-calculation module */ const { testHelpers } = require('qtests'); const { scoreToGrade } = require('./grade-calculation'); /** * qtests test suite for grade calculation utilities */ function getTestSuite() { const { createAssertions } = require('qtests'); const assert = createAssertions(); return { 'Grade calculation converts scores correctly': async () => { await testHelpers.withSavedEnv(async () => { assert.equal(scoreToGrade(95), 'A'); assert.equal(scoreToGrade(85), 'B'); assert.equal(scoreToGrade(75), 'C'); assert.equal(scoreToGrade(65), 'D'); assert.equal(scoreToGrade(55), 'F'); }); }, 'Grade calculation handles edge cases': async () => { await testHelpers.withSavedEnv(async () => { assert.equal(scoreToGrade(100), 'A'); assert.equal(scoreToGrade(90), 'A'); assert.equal(scoreToGrade(89), 'B'); assert.equal(scoreToGrade(0), 'F'); }); }, 'Grade calculation handles boundary values': async () => { await testHelpers.withSavedEnv(async () => { assert.equal(scoreToGrade(89.9), 'B'); assert.equal(scoreToGrade(90.1), 'A'); assert.equal(scoreToGrade(79.9), 'C'); assert.equal(scoreToGrade(80.1), 'B'); }); } }; } module.exports = { getTestSuite }; // Auto-execute when run directly (for qtests-runner compatibility) if (require.main === module) { (async () => { const testSuite = getTestSuite(); let passed = 0; let failed = 0; for (const [testName, testFn] of Object.entries(testSuite)) { try { await testFn(); console.log(`✓ ${testName}`); passed++; } catch (error) { console.log(`✗ ${testName}`); console.error(`Error: ${error.message}`); failed++; } } if (failed > 0) { console.log(`\nSummary: ${passed} passed, ${failed} failed`); process.exit(1); } else { console.log(`\nSummary: ${passed} passed`); process.exit(0); } })(); }