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
JavaScript
/**
* @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);
}
})();
}