unqommented
Version:
A Node.js utility that quickly identifies files with uncommented code in your codebase. Designed for developers who want to efficiently tell LLMs exactly which files need comments added.
51 lines (42 loc) • 2.04 kB
JavaScript
require('qtests/setup');
const { test, expect, describe, beforeAll, afterAll } = require('@jest/globals');
const fs = require('fs');
const path = require('path');
const os = require('os');
const utils = require('../utils');
let tmpDir;
beforeAll(() => {
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'unqommented-nested-'));
fs.writeFileSync(path.join(tmpDir, 'uncommented.js'), 'const root = 1;');
fs.writeFileSync(path.join(tmpDir, 'commented.js'), '// root comment');
const subDir = path.join(tmpDir, 'src', 'sub');
fs.mkdirSync(subDir, { recursive: true });
fs.writeFileSync(path.join(subDir, 'nestedUncommented.js'), 'const nested = 2;');
fs.writeFileSync(path.join(subDir, 'nestedCommented.js'), '// nested comment');
const deepDir = path.join(tmpDir, 'src2', 'inner', 'deep');
fs.mkdirSync(deepDir, { recursive: true });
fs.writeFileSync(path.join(deepDir, 'deepUncommented.js'), 'const deep = 3;');
const ignoredNodeModules = path.join(tmpDir, 'node_modules');
fs.mkdirSync(ignoredNodeModules, { recursive: true });
fs.writeFileSync(path.join(ignoredNodeModules, 'ignored.js'), 'const ignore = 4;');
const ignoredTests = path.join(tmpDir, 'tests');
fs.mkdirSync(ignoredTests, { recursive: true });
fs.writeFileSync(path.join(ignoredTests, 'ignoredTest.js'), 'const testIgnore = 5;');
});
afterAll(() => {
fs.rmSync(tmpDir, { recursive: true, force: true });
});
describe('findUncommentedFiles nested directories', () => {
test('includes nested files and excludes ignored directories', async () => {
const result = await utils.findUncommentedFiles(tmpDir);
const files = result.uncommentedFiles;
const expected = [
'uncommented.js',
path.join('src', 'sub', 'nestedUncommented.js'),
path.join('src2', 'inner', 'deep', 'deepUncommented.js'),
];
expect(files.sort()).toEqual(expected.sort());
expect(files).not.toContain(path.join('node_modules', 'ignored.js'));
expect(files).not.toContain(path.join('tests', 'ignoredTest.js'));
});
});