UNPKG

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
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')); }); });