From 2807153a715399a89e6a7c30bb5c7faf7d995e1c Mon Sep 17 00:00:00 2001 From: William Harrison <87287585+wdhdev@users.noreply.github.com> Date: Thu, 6 Mar 2025 20:48:06 +0800 Subject: [PATCH] Update pr.test.js --- tests/pr.test.js | 38 +++++++++++++++----------------------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/tests/pr.test.js b/tests/pr.test.js index f2cf47c2d..8456e1576 100644 --- a/tests/pr.test.js +++ b/tests/pr.test.js @@ -2,17 +2,11 @@ const t = require("ava"); const fs = require("fs-extra"); const path = require("path"); -const domainsPath = path.resolve("domains"); -const files = fs.readdirSync(domainsPath).filter((file) => file.endsWith(".json")); - -const changedFiles = JSON.parse(process.env.CHANGED_FILES); -const prAuthor = process.env.PR_AUTHOR.toLowerCase(); -const prLabels = JSON.parse(process.env.PR_LABELS); const trustedUsers = require("../util/trusted.json").map((u) => u.toLowerCase()); function getDomainData(subdomain) { try { - const data = fs.readJsonSync(path.join(domainsPath, `${subdomain}.json`)); + const data = fs.readJsonSync(path.join(path.resolve("domains"), `${subdomain}.json`)); return data; } catch (error) { throw new Error(`Failed to read JSON for ${subdomain}: ${error.message}`); @@ -21,26 +15,24 @@ function getDomainData(subdomain) { t("Users can only update their own subdomains", (t) => { if (process.env.PR_AUTHOR && process.env.CHANGED_FILES) { + const changedFiles = JSON.parse(process.env.CHANGED_FILES); + const prAuthor = process.env.PR_AUTHOR.toLowerCase(); const changedJSONFiles = changedFiles .filter((file) => file.startsWith("domains/")) - .map((file) => path.basename(file)) - .forEach((file) => file.replace(/\.json$/, "")); + .map((file) => path.basename(file)); - if (trustedUsers.includes(prAuthor) || prLabels.includes("bypass-owner-check")) { - t.pass(); - } else { - files - .filter((file) => changedJSONFiles.includes(file)) - .forEach((file) => { - const subdomain = file.replace(/\.json$/, ""); - const data = getDomainData(subdomain); + if (!changedJSONFiles || trustedUsers.includes(prAuthor)) return t.pass(); + if (process.env.PR_LABELS && process.env.PR_LABELS.includes("bypass-owner-check")) return t.pass(); - t.true( - data.owner.username.toLowerCase() === prAuthor, - `${subdomain}: ${prAuthor} does not own ${subdomain}.is-a.dev` - ); - }); - } + changedJSONFiles.forEach((file) => { + const subdomain = file.replace(/\.json$/, ""); + const data = getDomainData(subdomain); + + t.true( + data.owner.username.toLowerCase() === prAuthor, + `${subdomain}: ${prAuthor} does not own ${subdomain}.is-a.dev` + ); + }); } t.pass();