diff --git a/localtests/lowercase.js b/localtests/lowercase.js new file mode 100644 index 00000000..14fe1a41 --- /dev/null +++ b/localtests/lowercase.js @@ -0,0 +1,32 @@ +const fs = require('fs'); +const path = require('path'); + +const domainsDir = path.join(__dirname, '../domains'); + +function lowercaseFilenames() { + fs.readdir(domainsDir, (err, files) => { + if (err) { + console.error(`Error reading directory: ${err.message}`); + return; + } + + files.forEach(file => { + const currentPath = path.join(domainsDir, file); + const lowerCaseFile = file.toLowerCase(); + const lowerCasePath = path.join(domainsDir, lowerCaseFile); + + if (file !== lowerCaseFile) { + fs.rename(currentPath, lowerCasePath, err => { + if (err) { + console.error(`Error renaming file ${file}: ${err.message}`); + } else { + console.log(`Renamed: ${file} → ${lowerCaseFile}`); + } + }); + } + }); + }); +} + +// Run the renamer +lowercaseFilenames(); diff --git a/localtests/test.js b/localtests/test.js index 87c1b8e2..52165650 100644 --- a/localtests/test.js +++ b/localtests/test.js @@ -13,7 +13,8 @@ const sectionMap = { 1: 'Non-JSON file detection', 2: 'JSON syntax validation', 3: 'Owner property validation', - 4: 'Filename format validation' + 4: 'Filename format validation', + 5: 'Filename content match validation' }; function askQuestion(query) { @@ -182,4 +183,38 @@ function askQuestion(query) { }); }); } + + //==================== SECTION 5: FILENAME CONTENT MATCH VALIDATION ====================// + if (selectedSections.includes(5)) { + fs.readdir(domainsDir, (err, files) => { + if (err) { + console.error(`Error reading directory: ${err.message}`); + return; + } + + files + .filter(file => file.endsWith('.json')) + .forEach(file => { + const filePath = path.join(domainsDir, file); + fs.readFile(filePath, 'utf8', (err, data) => { + if (err) { + console.error(`Error reading file ${file}: ${err.message}`); + return; + } + + try { + const parsed = JSON.parse(data); + const expectedFileName = `${parsed.subdomain}.${parsed.domain}.json`; + + if (file !== expectedFileName) { + console.warn(`❌ Filename mismatch in: ${file}`); + console.warn(` ↪ Expected: ${expectedFileName}`); + } + } catch (e) { + console.log(`❌ Cannot parse JSON in: ${file}`); + } + }); + }); + }); + } })(); \ No newline at end of file diff --git a/package.json b/package.json index d7e38992..53fabf10 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "scripts": { "test": "npx ava tests/*.test.js", "lt": "node ./localtests/test.js", - "format": "node ./localtests/format.js" + "format": "node ./localtests/format.js", + "lowercase": "node ./localtests/lowercase.js" } }