Repository: IntersectMBO/govtool
Pull request #3186: Fix: report 352 test issue
Author: login: kneerose
Created: 2025-03-12T09:25:30Z | Merged: 2025-03-12T11:11:34Z

## List of changes

- Update dRep directory delegated ada format
- Skip bootstraping test
- Fixed dRep form payment address validation issue due to block by wallet connect popup
- Increased some assertion timeout

## Checklist

- [related issue](https://github.com/IntersectMBO/govtool/issues/)
- [x] My changes generate no new warnings
- [x] My code follows the [style guidelines](https://github.com/IntersectMBO/govtool/tree/main/docs/style-guides) of this project
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the [changelog](https://github.com/IntersectMBO/govtool/blob/main/CHANGELOG.md)
- [ ] I have added tests that prove my fix is effective or that my feature works



Diff:
diff --git a/tests/govtool-frontend/playwright/lib/forms/dRepForm.ts b/tests/govtool-frontend/playwright/lib/forms/dRepForm.ts
index da80eed4d..e129edab9 100644
--- a/tests/govtool-frontend/playwright/lib/forms/dRepForm.ts
+++ b/tests/govtool-frontend/playwright/lib/forms/dRepForm.ts
@@ -205,7 +205,7 @@ export default class DRepForm {
       message:
         isPaymentAddressErrorVisible &&
         `${dRepInfo.paymentAddress} is an invalid paymentAddress`,
-    }).toBeHidden();
+    }).toBeHidden({ timeout: 60_000 });
     await expect(this.continueBtn).toBeEnabled();
   }
 
diff --git a/tests/govtool-frontend/playwright/lib/helpers/adaFormat.ts b/tests/govtool-frontend/playwright/lib/helpers/adaFormat.ts
index 5a3521511..3082c39af 100644
--- a/tests/govtool-frontend/playwright/lib/helpers/adaFormat.ts
+++ b/tests/govtool-frontend/playwright/lib/helpers/adaFormat.ts
@@ -29,3 +29,10 @@ export const correctDelegatedVoteAdaFormat = (ada: number | undefined) => {
   }
   return "0";
 };
+
+export const correctDRepDirectoryFormat = (ada: number | undefined) => {
+  if (ada) {
+    return Number(ada.toFixed(0))?.toLocaleString("en-US");
+  }
+  return "0";
+};
diff --git a/tests/govtool-frontend/playwright/lib/pages/dRepDirectoryPage.ts b/tests/govtool-frontend/playwright/lib/pages/dRepDirectoryPage.ts
index 6bf65cd4d..83dae3ba1 100644
--- a/tests/govtool-frontend/playwright/lib/pages/dRepDirectoryPage.ts
+++ b/tests/govtool-frontend/playwright/lib/pages/dRepDirectoryPage.ts
@@ -217,7 +217,7 @@ export default class DRepDirectoryPage {
         !isEmptyContainerVisible &&
         `DRep with id ${dRepId} is found in the list`,
     }).toBeVisible({
-      timeout: 20_000,
+      timeout: 60_000,
     });
   }
 }
diff --git a/tests/govtool-frontend/playwright/tests/2-delegation/delegation.drep.spec.ts b/tests/govtool-frontend/playwright/tests/2-delegation/delegation.drep.spec.ts
index 104ad40fa..01bc92533 100644
--- a/tests/govtool-frontend/playwright/tests/2-delegation/delegation.drep.spec.ts
+++ b/tests/govtool-frontend/playwright/tests/2-delegation/delegation.drep.spec.ts
@@ -56,6 +56,8 @@ test("2N. Should show DRep information on details page", async ({
     },
   ];
 
+  await expect(dRepPage.getByTestId("alert-success")).not.toBeVisible();
+
   await dRepRegistrationPage.register({
     name,
     objectives,
@@ -71,7 +73,7 @@ test("2N. Should show DRep information on details page", async ({
   // Add an assertion to prevent clicking on "View Your dRep Details".
   await expect(
     dRepPage.getByTestId("dRep-id-display-card-dashboard")
-  ).toContainText(wallet.dRepId, { timeout: 20_000 });
+  ).toContainText(wallet.dRepId, { timeout: 60_000 });
   await dRepPage.getByTestId("view-drep-details-button").click();
 
   // Verification
@@ -79,7 +81,10 @@ test("2N. Should show DRep information on details page", async ({
     wallet.dRepId
   );
   await expect(dRepPage.getByTestId("copy-payment-address-button")).toHaveText(
-    paymentAddress
+    paymentAddress,
+    {
+      timeout: 60_000,
+    }
   );
   await expect(dRepPage.getByTestId("Active-pill")).toHaveText("Active");
   await expect(dRepPage.getByTestId("voting-power")).toHaveText("₳ 0");
diff --git a/tests/govtool-frontend/playwright/tests/2-delegation/delegationFunctionality.delegation.spec.ts b/tests/govtool-frontend/playwright/tests/2-delegation/delegationFunctionality.delegation.spec.ts
index aa824c536..9f71eefa2 100644
--- a/tests/govtool-frontend/playwright/tests/2-delegation/delegationFunctionality.delegation.spec.ts
+++ b/tests/govtool-frontend/playwright/tests/2-delegation/delegationFunctionality.delegation.spec.ts
@@ -11,7 +11,10 @@ import {
 } from "@constants/staticWallets";
 import { createTempDRepAuth } from "@datafactory/createAuth";
 import { test } from "@fixtures/walletExtension";
-import { correctDelegatedVoteAdaFormat } from "@helpers/adaFormat";
+import {
+  correctDelegatedVoteAdaFormat,
+  correctDRepDirectoryFormat,
+} from "@helpers/adaFormat";
 import { setAllureEpic } from "@helpers/allure";
 import { skipIfMainnet, skipIfNotHardFork } from "@helpers/cardano";
 import { createNewPageWithWallet } from "@helpers/page";
@@ -265,7 +268,7 @@ test.describe("Abstain delegation", () => {
 
     await expect(
       page.getByText(
-        `You have delegated ₳${correctDelegatedVoteAdaFormat(balance)}`
+        `You have delegated ₳${correctDRepDirectoryFormat(balance)}`
       )
     ).toBeVisible({
       timeout: 60_000,
@@ -296,7 +299,7 @@ test.describe("No confidence delegation", () => {
     const balance = await kuberService.getBalance(adaHolder04Wallet.address);
     await expect(
       page.getByText(
-        `You have delegated ₳${correctDelegatedVoteAdaFormat(balance)}`
+        `You have delegated ₳${correctDRepDirectoryFormat(balance)}`
       )
     ).toBeVisible({
       timeout: 60_000,
@@ -325,7 +328,7 @@ test.describe("Delegated ADA visibility", () => {
     );
     await expect(
       page.getByText(
-        `You have delegated ₳ ${correctDelegatedVoteAdaFormat(adaHolderVotingPower)}`
+        `You have delegated ₳ ${correctDRepDirectoryFormat(adaHolderVotingPower)}`
       )
     ).toBeVisible({ timeout: 60_000 });
 
diff --git a/tests/govtool-frontend/playwright/tests/3-drep-registration/dRepRegistration.dRep.spec.ts b/tests/govtool-frontend/playwright/tests/3-drep-registration/dRepRegistration.dRep.spec.ts
index 9b87b0669..504248997 100644
--- a/tests/govtool-frontend/playwright/tests/3-drep-registration/dRepRegistration.dRep.spec.ts
+++ b/tests/govtool-frontend/playwright/tests/3-drep-registration/dRepRegistration.dRep.spec.ts
@@ -147,7 +147,7 @@ test.describe("Temporary DReps", () => {
     await dRepRegistrationPage.confirmBtn.click();
 
     await expect(dRepPage.getByTestId("d-rep-in-progress")).not.toBeVisible({
-      timeout: 20_000,
+      timeout: 60_000,
     });
 
     // connected state
diff --git a/tests/govtool-frontend/playwright/tests/3-drep-registration/dRepRegistration.loggedin.spec.ts b/tests/govtool-frontend/playwright/tests/3-drep-registration/dRepRegistration.loggedin.spec.ts
index 63592c0a1..2a19d17c0 100644
--- a/tests/govtool-frontend/playwright/tests/3-drep-registration/dRepRegistration.loggedin.spec.ts
+++ b/tests/govtool-frontend/playwright/tests/3-drep-registration/dRepRegistration.loggedin.spec.ts
@@ -59,6 +59,8 @@ test.describe("Validation of dRep Registration Form", () => {
     const dRepRegistrationPage = new DRepRegistrationPage(page);
     await dRepRegistrationPage.goto();
 
+    await expect(page.getByTestId("alert-success")).not.toBeVisible();
+
     for (let i = 0; i < 100; i++) {
       await dRepRegistrationPage.validateForm({
         name: mockValid.name(),
@@ -102,6 +104,7 @@ test.describe("Validation of dRep Registration Form", () => {
 
     const dRepRegistrationPage = new DRepRegistrationPage(page);
     await dRepRegistrationPage.goto();
+    await expect(page.getByTestId("alert-success")).not.toBeVisible();
 
     for (let i = 0; i < 100; i++) {
       await dRepRegistrationPage.inValidateForm({
diff --git a/tests/govtool-frontend/playwright/tests/3-drep-registration/editDRep.dRep.spec.ts b/tests/govtool-frontend/playwright/tests/3-drep-registration/editDRep.dRep.spec.ts
index 16a622102..873755f55 100644
--- a/tests/govtool-frontend/playwright/tests/3-drep-registration/editDRep.dRep.spec.ts
+++ b/tests/govtool-frontend/playwright/tests/3-drep-registration/editDRep.dRep.spec.ts
@@ -25,7 +25,7 @@ test.describe("Validation of edit dRep Form", () => {
     await editDRepPage.goto();
 
     // wait until wallet alert close
-    await page.waitForTimeout(5_000);
+    await expect(page.getByTestId("alert-success")).not.toBeVisible();
 
     for (let i = 0; i < 100; i++) {
       await editDRepPage.validateForm({
@@ -73,7 +73,7 @@ test.describe("Validation of edit dRep Form", () => {
     const editDRepPage = new EditDRepPage(page);
     await editDRepPage.goto();
 
-    await expect(editDRepPage.nameInput).toBeVisible({ timeout: 60_000 }); // assert to wait for the page to load
+    await expect(page.getByTestId("alert-success")).not.toBeVisible();
 
     for (let i = 0; i < 100; i++) {
       await editDRepPage.inValidateForm({
diff --git a/tests/govtool-frontend/playwright/tests/5-proposal-functionality/proposalFunctionality.dRep.spec.ts b/tests/govtool-frontend/playwright/tests/5-proposal-functionality/proposalFunctionality.dRep.spec.ts
index dd4f8e5a4..3f7e7e838 100644
--- a/tests/govtool-frontend/playwright/tests/5-proposal-functionality/proposalFunctionality.dRep.spec.ts
+++ b/tests/govtool-frontend/playwright/tests/5-proposal-functionality/proposalFunctionality.dRep.spec.ts
@@ -17,6 +17,7 @@ import GovernanceActionsPage from "@pages/governanceActionsPage";
 import { Page, expect } from "@playwright/test";
 import kuberService from "@services/kuberService";
 import { BootstrapGovernanceActionType, GovernanceActionType } from "@types";
+import { allure } from "allure-playwright";
 import walletManager from "lib/walletManager";
 
 test.beforeEach(async () => {
@@ -188,6 +189,9 @@ test.describe("Perform voting", () => {
 
     govActionDetailsPage = await governanceActionsPage.viewFirstVotedProposal();
     await govActionDetailsPage.reVote();
+
+    await dRepPage.reload();
+
     await governanceActionsPage.votedTab.click();
 
     const isNoVoteVisible = await govActionDetailsPage.currentPage
@@ -269,66 +273,3 @@ test.describe("Check voting power", () => {
     expect(balance, "Retirement deposit not returned").toBeGreaterThan(500);
   });
 });
-
-test.describe("Bootstrap phase", () => {
-  test("5L. Should restrict dRep votes to Info Governance actions During Bootstrapping Phase", async ({
-    browser,
-  }) => {
-    const voteBlacklistOptions = Object.keys(
-      BootstrapGovernanceActionType
-    ).filter((option) => option !== GovernanceActionType.InfoAction);
-
-    await Promise.all(
-      voteBlacklistOptions.map(async (voteBlacklistOption) => {
-        const dRepPage = await createNewPageWithWallet(browser, {
-          storageState: ".auth/dRep01.json",
-          wallet: dRep01Wallet,
-        });
-
-        await dRepPage.route("**/epoch/params", async (route) => {
-          // Fetch the original response from the server
-          const response = await route.fetch();
-          const json = await response.json();
-
-          // update protocol major version
-          json["protocol_major"] = 9;
-          await route.fulfill({
-            status: 200,
-            contentType: "application/json",
-            body: JSON.stringify(json),
-          });
-        });
-
-        const governanceActionsPage = new GovernanceActionsPage(dRepPage);
-        await governanceActionsPage.goto();
-
-        // assert to wait until proposal cards are visible
-        await expect(dRepPage.getByTestId("voting-power-chips")).toBeVisible({
-          timeout: 60_000,
-        });
-        // wait until the loading button is hidden
-        await expect(dRepPage.getByTestId("to-vote-tab")).toBeVisible({
-          timeout: 60_000,
-        });
-
-        const governanceActionDetailsPage =
-          await governanceActionsPage.viewFirstProposalByGovernanceAction(
-            voteBlacklistOption as GovernanceActionType
-          );
-
-        if (governanceActionDetailsPage) {
-          await expect(
-            dRepPage.getByTestId("governance-action-details-card-header")
-          ).toBeVisible({ timeout: 60_000 });
-          await expect(
-            governanceActionDetailsPage.yesVoteRadio
-          ).not.toBeVisible();
-          await expect(
-            governanceActionDetailsPage.contextBtn
-          ).not.toBeVisible();
-          await expect(governanceActionDetailsPage.voteBtn).not.toBeVisible();
-        }
-      })
-    );
-  });
-});
diff --git a/tests/govtool-frontend/playwright/tests/6-miscellaneous/miscellaneous.spec.ts b/tests/govtool-frontend/playwright/tests/6-miscellaneous/miscellaneous.spec.ts
index ca88fb50b..ad97b87d1 100644
--- a/tests/govtool-frontend/playwright/tests/6-miscellaneous/miscellaneous.spec.ts
+++ b/tests/govtool-frontend/playwright/tests/6-miscellaneous/miscellaneous.spec.ts
@@ -13,6 +13,7 @@ import { test } from "@fixtures/walletExtension";
 import { setAllureEpic } from "@helpers/allure";
 import { isMobile, openDrawer } from "@helpers/mobile";
 import { expect, Page } from "@playwright/test";
+import { allure } from "allure-playwright";
 import environments from "lib/constants/environments";
 
 test.beforeEach(async () => {
@@ -102,40 +103,6 @@ test("6M. Should navigate between footer links", async ({ page, context }) => {
   await expect(helpUrl).toHaveURL(HELP_DOC_URL);
 });
 
-test("6N. Should Warn users that they are in bootstrapping phase via banner", async ({
-  page,
-  context,
-}) => {
-  await page.route("**/epoch/params", async (route) => {
-    // Fetch the original response from the server
-    const response = await route.fetch();
-    const json = await response.json();
-
-    // update protocol major version
-    json["protocol_major"] = 9;
-    await route.fulfill({
-      status: 200,
-      contentType: "application/json",
-      body: JSON.stringify(json),
-    });
-  });
-
-  const responsePromise = page.waitForResponse("**/epoch/params");
-  await page.goto("/");
-
-  await responsePromise;
-
-  await expect(page.getByTestId("system-bootstrapping-warning")).toBeVisible({
-    timeout: 60_000,
-  });
-
-  const [bootstrap] = await Promise.all([
-    context.waitForEvent("page"),
-    page.getByTestId("system-bootstrapping-warning-link").click(),
-  ]);
-  await expect(bootstrap).toHaveURL(BOOTSTRAP_DOC_URL);
-});
-
 test("6O. Should display proper network name", async ({ page }) => {
   await page.route("**/network/metrics", async (route) => {
     // Fetch the original response from the server


Reviews:
user: login: mesudip
body: Overall looks good.
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-12T11:08:48Z
user: login: kneerose
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-12T11:11:01Z
user: login: kneerose
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-12T11:11:11Z

Review comments:
diff_hunk: @@ -274,6 +278,10 @@ test.describe("Bootstrap phase", () => {
   test("5L. Should restrict dRep votes to Info Governance actions During Bootstrapping Phase", async ({
     browser,
   }) => {
+    await allure.description(
path: tests/govtool-frontend/playwright/tests/5-proposal-functionality/proposalFunctionality.dRep.spec.ts
user: login: mesudip
body: Let's remove these tests. I don't see any future usefulness of these tests
created_at: 2025-03-12T11:07:58Z
author_association: CONTRIBUTOR
diff_hunk: @@ -106,6 +107,10 @@ test("6N. Should Warn users that they are in bootstrapping phase via banner", as
   page,
   context,
 }) => {
+  await allure.description(
path: tests/govtool-frontend/playwright/tests/6-miscellaneous/miscellaneous.spec.ts
user: login: mesudip
body: Remove the test.
created_at: 2025-03-12T11:08:16Z
author_association: CONTRIBUTOR
diff_hunk: @@ -274,6 +278,10 @@ test.describe("Bootstrap phase", () => {
   test("5L. Should restrict dRep votes to Info Governance actions During Bootstrapping Phase", async ({
     browser,
   }) => {
+    await allure.description(
path: tests/govtool-frontend/playwright/tests/5-proposal-functionality/proposalFunctionality.dRep.spec.ts
user: login: kneerose
body: done
created_at: 2025-03-12T11:11:01Z
author_association: CONTRIBUTOR
diff_hunk: @@ -106,6 +107,10 @@ test("6N. Should Warn users that they are in bootstrapping phase via banner", as
   page,
   context,
 }) => {
+  await allure.description(
path: tests/govtool-frontend/playwright/tests/6-miscellaneous/miscellaneous.spec.ts
user: login: kneerose
body: done
created_at: 2025-03-12T11:11:11Z
author_association: CONTRIBUTOR

PR comments:
user: login: github-actions[bot]
created_at: 2025-03-12T09:27:07Z
body: :white_check_mark: All checks succeeded
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T09:27:42Z
body: :white_check_mark: All checks succeeded
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T09:29:11Z
body: :white_check_mark: All checks succeeded
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T09:49:14Z
body: :white_check_mark: All checks succeeded
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T09:50:36Z
body: :white_check_mark: All checks succeeded
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T09:52:01Z
body: :white_check_mark: All checks succeeded
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T11:11:44Z
body: :white_check_mark: All checks succeeded
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T11:12:47Z
body: :white_check_mark: All checks succeeded
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T11:14:14Z
body: :white_check_mark: All checks succeeded
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T11:58:47Z
body: @kneerose
This PR is in the tag: develop-cbad1110fd35b548a9ff870c3c6a04312a8e2a49-13 , for govtool-metadata-validation service
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T11:58:51Z
body: @kneerose
This PR is in the tag: develop-cbad1110fd35b548a9ff870c3c6a04312a8e2a49-13 , for govtool-metadata-validation service
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T11:58:56Z
body: @kneerose
This PR is in the tag: develop-cbad1110fd35b548a9ff870c3c6a04312a8e2a49-13 , for govtool-metadata-validation service
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T11:59:22Z
body: @kneerose
This PR is in the tag: develop-cbad1110fd35b548a9ff870c3c6a04312a8e2a49-13 , for govtool-metadata-validation service
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T11:59:28Z
body: @kneerose
This PR is in the tag: develop-cbad1110fd35b548a9ff870c3c6a04312a8e2a49-13 , for govtool-metadata-validation service
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T11:59:33Z
body: @kneerose
This PR is in the tag: develop-cbad1110fd35b548a9ff870c3c6a04312a8e2a49-13 , for govtool-metadata-validation service
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T11:59:49Z
body: @kneerose
This PR is in the tag: develop-cbad1110fd35b548a9ff870c3c6a04312a8e2a49-13 , for govtool-metadata-validation service
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T12:00:29Z
body: @kneerose
This PR is in the tag: develop-cbad1110fd35b548a9ff870c3c6a04312a8e2a49-13 , for govtool-frontend service
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T12:00:35Z
body: @kneerose
This PR is in the tag: develop-cbad1110fd35b548a9ff870c3c6a04312a8e2a49-13 , for govtool-frontend service
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T12:00:35Z
body: @kneerose
This PR is in the tag: develop-cbad1110fd35b548a9ff870c3c6a04312a8e2a49-13 , for govtool-frontend service
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T12:00:42Z
body: @kneerose
This PR is in the tag: develop-cbad1110fd35b548a9ff870c3c6a04312a8e2a49-13 , for govtool-frontend service
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T12:00:43Z
body: @kneerose
This PR is in the tag: develop-cbad1110fd35b548a9ff870c3c6a04312a8e2a49-13 , for govtool-frontend service
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T12:00:44Z
body: @kneerose
This PR is in the tag: develop-cbad1110fd35b548a9ff870c3c6a04312a8e2a49-13 , for govtool-frontend service
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T12:00:55Z
body: @kneerose
This PR is in the tag: develop-cbad1110fd35b548a9ff870c3c6a04312a8e2a49-13 , for govtool-frontend service
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T12:01:09Z
body: @kneerose
This PR is in the tag: develop-cbad1110fd35b548a9ff870c3c6a04312a8e2a49-13 , for govtool-backend service
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T12:01:09Z
body: @kneerose
This PR is in the tag: develop-cbad1110fd35b548a9ff870c3c6a04312a8e2a49-13 , for govtool-backend service
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T12:01:14Z
body: @kneerose
This PR is in the tag: develop-cbad1110fd35b548a9ff870c3c6a04312a8e2a49-13 , for govtool-backend service
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T12:01:23Z
body: @kneerose
This PR is in the tag: develop-cbad1110fd35b548a9ff870c3c6a04312a8e2a49-13 , for govtool-backend service
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T12:01:40Z
body: @kneerose
This PR is in the tag: develop-cbad1110fd35b548a9ff870c3c6a04312a8e2a49-13 , for govtool-backend service
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T12:01:41Z
body: @kneerose
This PR is in the tag: develop-cbad1110fd35b548a9ff870c3c6a04312a8e2a49-13 , for govtool-backend service
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-12T12:01:52Z
body: @kneerose
This PR is in the tag: develop-cbad1110fd35b548a9ff870c3c6a04312a8e2a49-13 , for govtool-backend service
author_association: CONTRIBUTOR