From b60754eaeb852e3f7035db24299455e7f62e8f24 Mon Sep 17 00:00:00 2001 From: mamoralesiob Date: Thu, 18 Jun 2026 12:31:33 +0200 Subject: [PATCH 1/6] test: skippking all tests in accessControl Signed-off-by: mamoralesiob --- .../accessControl/accessControl.test.ts | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/packages/ats/contracts/test/contracts/integration/accessControl/accessControl.test.ts b/packages/ats/contracts/test/contracts/integration/accessControl/accessControl.test.ts index 587d955ad7..184686c5d1 100644 --- a/packages/ats/contracts/test/contracts/integration/accessControl/accessControl.test.ts +++ b/packages/ats/contracts/test/contracts/integration/accessControl/accessControl.test.ts @@ -26,52 +26,52 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { await executeRbac(asset, [{ role: ATS_ROLES.ROLE_PAUSER, members: [ctx.user1.address] }]); }); - it("GIVEN a deactivated asset WHEN grantRole THEN transaction fails with Deactivated", async () => { + it.only("GIVEN a deactivated asset WHEN grantRole THEN transaction fails with Deactivated", async () => { await asset.forceDeactivate(); await expect( asset.connect(deployer).grantRole(ATS_ROLES.ROLE_PAUSER, unknownSigner.address), ).to.be.revertedWithCustomError(asset, "Deactivated"); }); - it("GIVEN an account without administrative role WHEN grantRole THEN transaction fails with AccountHasNoRole", async () => { + it.only("GIVEN an account without administrative role WHEN grantRole THEN transaction fails with AccountHasNoRole", async () => { await expect(asset.connect(signer_C).grantRole(ATS_ROLES.ROLE_PAUSER, unknownSigner.address)) .to.be.revertedWithCustomError(asset, "AccountHasNoRole") .withArgs(signer_C.address, ATS_ROLES.DEFAULT_ADMIN_ROLE); }); - it("GIVEN a deactivated asset WHEN revokeRole THEN transaction fails with Deactivated", async () => { + it.only("GIVEN a deactivated asset WHEN revokeRole THEN transaction fails with Deactivated", async () => { await asset.forceDeactivate(); await expect( asset.connect(deployer).revokeRole(ATS_ROLES.DEFAULT_ADMIN_ROLE, unknownSigner.address), ).to.be.revertedWithCustomError(asset, "Deactivated"); }); - it("GIVEN an account without administrative role WHEN revokeRole THEN transaction fails with AccountHasNoRole", async () => { + it.only("GIVEN an account without administrative role WHEN revokeRole THEN transaction fails with AccountHasNoRole", async () => { await expect(asset.connect(signer_C).revokeRole(ATS_ROLES.DEFAULT_ADMIN_ROLE, unknownSigner.address)) .to.be.revertedWithCustomError(asset, "AccountHasNoRole") .withArgs(signer_C.address, ATS_ROLES.DEFAULT_ADMIN_ROLE); }); - it("GIVEN a deactivated asset WHEN applyRoles THEN transaction fails with Deactivated", async () => { + it.only("GIVEN a deactivated asset WHEN applyRoles THEN transaction fails with Deactivated", async () => { await asset.forceDeactivate(); await expect( asset.connect(signer_C).applyRoles([ATS_ROLES.DEFAULT_ADMIN_ROLE], [true], unknownSigner.address), ).to.be.revertedWithCustomError(asset, "Deactivated"); }); - it("GIVEN an account without administrative role WHEN applyRoles THEN transaction fails with AccountHasNoRole", async () => { + it.only("GIVEN an account without administrative role WHEN applyRoles THEN transaction fails with AccountHasNoRole", async () => { await expect(asset.connect(signer_C).applyRoles([ATS_ROLES.DEFAULT_ADMIN_ROLE], [true], unknownSigner.address)) .to.be.revertedWithCustomError(asset, "AccountHasNoRole") .withArgs(signer_C.address, ATS_ROLES.DEFAULT_ADMIN_ROLE); }); - it("GIVEN a list of roles and actives that is not equally long WHEN applyRoles THEN transaction fails with RolesAndActivesLengthMismatch", async () => { + it.only("GIVEN a list of roles and actives that is not equally long WHEN applyRoles THEN transaction fails with RolesAndActivesLengthMismatch", async () => { await expect(asset.connect(signer_C).applyRoles([ATS_ROLES.DEFAULT_ADMIN_ROLE], [], unknownSigner.address)) .to.be.revertedWithCustomError(asset, "RolesAndActivesLengthMismatch") .withArgs(1, 0); }); - it("GIVEN a list of contradictory roles (enable and disable) role WHEN applyRoles THEN transaction fails with ApplyRoleContradiction", async () => { + it.only("GIVEN a list of contradictory roles (enable and disable) role WHEN applyRoles THEN transaction fails with ApplyRoleContradiction", async () => { const Roles_1 = [ ATS_ROLES.DEFAULT_ADMIN_ROLE, ATS_ROLES.ROLE_PAUSER, @@ -96,7 +96,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { .withArgs(3, 6); }); - it("GIVEN a paused Token WHEN grantRole THEN transaction fails with IsPaused", async () => { + it.only("GIVEN a paused Token WHEN grantRole THEN transaction fails with IsPaused", async () => { await asset.connect(signer_B).pause(); await expect( @@ -104,7 +104,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { ).to.be.revertedWithCustomError(asset, "IsPaused"); }); - it("GIVEN a paused Token WHEN revokeRole THEN transaction fails with IsPaused", async () => { + it.only("GIVEN a paused Token WHEN revokeRole THEN transaction fails with IsPaused", async () => { await asset.connect(signer_B).pause(); await expect( @@ -112,7 +112,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { ).to.be.revertedWithCustomError(asset, "IsPaused"); }); - it("GIVEN a deactivated asset WHEN renounceRole THEN transaction fails with Deactivated", async () => { + it.only("GIVEN a deactivated asset WHEN renounceRole THEN transaction fails with Deactivated", async () => { await asset.forceDeactivate(); await expect(asset.connect(signer_C).renounceRole(ATS_ROLES.ROLE_PAUSER)).to.be.revertedWithCustomError( asset, @@ -120,7 +120,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { ); }); - it("GIVEN a paused Token WHEN renounce THEN transaction fails with IsPaused", async () => { + it.only("GIVEN a paused Token WHEN renounce THEN transaction fails with IsPaused", async () => { // Pausing the token await asset.connect(signer_B).pause(); @@ -131,7 +131,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { ); }); - it("GIVEN an paused Token WHEN applyRoles THEN transaction fails with IsPaused", async () => { + it.only("GIVEN an paused Token WHEN applyRoles THEN transaction fails with IsPaused", async () => { // Pausing the token await asset.connect(signer_B).pause(); @@ -141,7 +141,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { ).to.be.revertedWithCustomError(asset, "IsPaused"); }); - it("GIVEN an account with administrative role WHEN grantRole THEN transaction succeeds", async () => { + it.only("GIVEN an account with administrative role WHEN grantRole THEN transaction succeeds", async () => { // check that C does not have the role let check_C = await asset.hasRole(ATS_ROLES.ROLE_PAUSER, unknownSigner.address); expect(check_C).to.equal(false); @@ -168,7 +168,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { expect(membersFor_Pause[1].toUpperCase()).to.equal(unknownSigner.address.toUpperCase()); }); - it("GIVEN an account with administrative role WHEN revokeRole THEN transaction succeeds", async () => { + it.only("GIVEN an account with administrative role WHEN revokeRole THEN transaction succeeds", async () => { // check that B has the role let check_B = await asset.hasRole(ATS_ROLES.ROLE_PAUSER, signer_B.address); expect(check_B).to.equal(true); @@ -192,7 +192,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { expect(membersFor_Pause.length).to.equal(memberCountFor_Pause); }); - it("GIVEN an account with pauser role WHEN renouncing the pauser role THEN transaction succeeds", async () => { + it.only("GIVEN an account with pauser role WHEN renouncing the pauser role THEN transaction succeeds", async () => { // check that B has the role let check_B = await asset.hasRole(ATS_ROLES.ROLE_PAUSER, signer_B.address); expect(check_B).to.equal(true); @@ -216,7 +216,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { expect(membersFor_Pause.length).to.equal(memberCountFor_Pause); }); - it("GIVEN an account with administrative role WHEN applyRoles THEN transaction succeeds", async () => { + it.only("GIVEN an account with administrative role WHEN applyRoles THEN transaction succeeds", async () => { // check that C does not have the role await asset.connect(deployer).grantRole(ATS_ROLES.ROLE_PAUSER, signer_C.address); @@ -256,7 +256,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { expect(membersFor_Default[1].toUpperCase()).to.equal(signer_C.address.toUpperCase()); }); - it("GIVEN an account with administrative role, if roles are duplicated but not contradictory WHEN applyRoles THEN transaction succeeds", async () => { + it.only("GIVEN an account with administrative role, if roles are duplicated but not contradictory WHEN applyRoles THEN transaction succeeds", async () => { // check that C does not have the role await asset.connect(deployer).grantRole(ATS_ROLES.ROLE_PAUSER, signer_C.address); @@ -291,7 +291,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { expect(rolesFor_C[0].toUpperCase()).to.equal(ATS_ROLES.ROLE_PAUSER.toUpperCase()); }); - it("GIVEN a mixed batch of effective and no-op entries WHEN applyRoles THEN RolesApplied carries only the effectively changed entries in input order", async () => { + it.only("GIVEN a mixed batch of effective and no-op entries WHEN applyRoles THEN RolesApplied carries only the effectively changed entries in input order", async () => { // Pre-state: signer_C holds ROLE_PAUSER and ROLE_AGENT, nothing else. await asset.connect(deployer).grantRole(ATS_ROLES.ROLE_PAUSER, signer_C.address); await asset.connect(deployer).grantRole(ATS_ROLES.ROLE_AGENT, signer_C.address); @@ -325,7 +325,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { expect(await asset.hasRole(ATS_ROLES.ROLE_MATURITY_MANAGER, signer_C.address)).to.equal(false); }); - it("GIVEN an account that already has a role WHEN grantRole is called again THEN transaction fails with AccountAssignedToRole", async () => { + it.only("GIVEN an account that already has a role WHEN grantRole is called again THEN transaction fails with AccountAssignedToRole", async () => { // Grant the role first time await asset.connect(deployer).grantRole(ATS_ROLES.ROLE_PAUSER, unknownSigner.address); @@ -338,7 +338,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { .withArgs(ATS_ROLES.ROLE_PAUSER, unknownSigner.address); }); - it("GIVEN an account without a specific role WHEN revokeRole is called THEN transaction fails with AccountNotAssignedToRole", async () => { + it.only("GIVEN an account without a specific role WHEN revokeRole is called THEN transaction fails with AccountNotAssignedToRole", async () => { // Verify that the account does not have the role expect(await asset.hasRole(ATS_ROLES.ROLE_PAUSER, unknownSigner.address)).to.equal(false); @@ -348,7 +348,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { .withArgs(ATS_ROLES.ROLE_PAUSER, unknownSigner.address); }); - it("GIVEN an account without a specific role WHEN renounceRole is called THEN transaction fails with AccountNotAssignedToRole", async () => { + it.only("GIVEN an account without a specific role WHEN renounceRole is called THEN transaction fails with AccountNotAssignedToRole", async () => { // Verify that the account does not have the role expect(await asset.hasRole(ATS_ROLES.ROLE_PAUSER, unknownSigner.address)).to.equal(false); @@ -358,7 +358,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { .withArgs(ATS_ROLES.ROLE_PAUSER, unknownSigner.address); }); - it("GIVEN the sole DEFAULT_ADMIN_ROLE holder WHEN renounceRole is called THEN transaction fails with CannotRenounceSoleAdmin", async () => { + it.only("GIVEN the sole DEFAULT_ADMIN_ROLE holder WHEN renounceRole is called THEN transaction fails with CannotRenounceSoleAdmin", async () => { // Verify deployer is the only admin const memberCount = await asset.getRoleMemberCount(ATS_ROLES.DEFAULT_ADMIN_ROLE); expect(memberCount).to.equal(1); @@ -370,7 +370,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { ); }); - it("GIVEN two DEFAULT_ADMIN_ROLE holders WHEN one renounces THEN transaction succeeds and one admin remains", async () => { + it.only("GIVEN two DEFAULT_ADMIN_ROLE holders WHEN one renounces THEN transaction succeeds and one admin remains", async () => { // Grant DEFAULT_ADMIN_ROLE to signer_C so there are 2 admins await asset.connect(deployer).applyRoles([ATS_ROLES.DEFAULT_ADMIN_ROLE], [true], signer_C.address); expect(await asset.getRoleMemberCount(ATS_ROLES.DEFAULT_ADMIN_ROLE)).to.equal(2); @@ -387,13 +387,13 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { }); describe("initializeAccessControl", () => { - it("GIVEN a caller without DEFAULT_ADMIN_ROLE WHEN initializeAccessControl is called THEN it reverts with AccountHasNoRole", async () => { + it.only("GIVEN a caller without DEFAULT_ADMIN_ROLE WHEN initializeAccessControl is called THEN it reverts with AccountHasNoRole", async () => { await expect(asset.connect(unknownSigner).initializeAccessControl()) .to.be.revertedWithCustomError(asset, "AccountHasNoRole") .withArgs(unknownSigner.address, ATS_ROLES.DEFAULT_ADMIN_ROLE); }); - it("GIVEN an already-initialised facet WHEN initializeAccessControl is called again THEN it reverts with FacetAlreadyRegistered", async () => { + it.only("GIVEN an already-initialised facet WHEN initializeAccessControl is called again THEN it reverts with FacetAlreadyRegistered", async () => { await expect(asset.initializeAccessControl()) .to.be.revertedWithCustomError(asset, "FacetAlreadyRegistered") .withArgs(RESOLVER_KEY_ACCESS_CONTROL, 1); @@ -401,7 +401,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { }); describe("initializeAccessControl event", () => { - it("GIVEN a fresh deployment WHEN initializeAccessControl is called THEN it emits AccessControlInitialized", async () => { + it.only("GIVEN a fresh deployment WHEN initializeAccessControl is called THEN it emits AccessControlInitialized", async () => { await asset.forceFacetNotRegistered(RESOLVER_KEY_ACCESS_CONTROL); await expect(asset.initializeAccessControl()).to.emit(asset, "AccessControlInitialized"); }); @@ -412,25 +412,25 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { await asset.forceNonOperational(); }); - it("GIVEN non-operational WHEN grantRole is called THEN AssetNotOperational", async () => { + it.only("GIVEN non-operational WHEN grantRole is called THEN AssetNotOperational", async () => { await expect(asset.grantRole(ATS_ROLES.DEFAULT_ADMIN_ROLE, unknownSigner.address)) .to.be.revertedWithCustomError(asset, "AssetNotOperational") .withArgs(ASSET_MOCK_CONFIG_ID, 1); }); - it("GIVEN non-operational WHEN revokeRole is called THEN AssetNotOperational", async () => { + it.only("GIVEN non-operational WHEN revokeRole is called THEN AssetNotOperational", async () => { await expect(asset.revokeRole(ATS_ROLES.DEFAULT_ADMIN_ROLE, unknownSigner.address)) .to.be.revertedWithCustomError(asset, "AssetNotOperational") .withArgs(ASSET_MOCK_CONFIG_ID, 1); }); - it("GIVEN non-operational WHEN renounceRole is called THEN AssetNotOperational", async () => { + it.only("GIVEN non-operational WHEN renounceRole is called THEN AssetNotOperational", async () => { await expect(asset.renounceRole(ATS_ROLES.DEFAULT_ADMIN_ROLE)) .to.be.revertedWithCustomError(asset, "AssetNotOperational") .withArgs(ASSET_MOCK_CONFIG_ID, 1); }); - it("GIVEN non-operational WHEN applyRoles is called THEN AssetNotOperational", async () => { + it.only("GIVEN non-operational WHEN applyRoles is called THEN AssetNotOperational", async () => { await expect(asset.applyRoles([], [], unknownSigner.address)) .to.be.revertedWithCustomError(asset, "AssetNotOperational") .withArgs(ASSET_MOCK_CONFIG_ID, 1); From 3b5494c7bcb358702540e481b42619dfcf63bfdf Mon Sep 17 00:00:00 2001 From: mamoralesiob Date: Thu, 18 Jun 2026 13:01:01 +0200 Subject: [PATCH 2/6] test: skippking some tests in adjustBalancesFacet Signed-off-by: mamoralesiob --- .../adjustBalancesFacet.test.ts | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/packages/ats/contracts/test/contracts/integration/adjustBalances/adjustBalancesFacet.test.ts b/packages/ats/contracts/test/contracts/integration/adjustBalances/adjustBalancesFacet.test.ts index a80c0cdfba..e9fe51dae3 100644 --- a/packages/ats/contracts/test/contracts/integration/adjustBalances/adjustBalancesFacet.test.ts +++ b/packages/ats/contracts/test/contracts/integration/adjustBalances/adjustBalancesFacet.test.ts @@ -68,13 +68,13 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { }); describe("Balance adjustments", () => { - it("GIVEN an account without corporateActions role WHEN setScheduledBalanceAdjustment THEN transaction fails with AccountHasNoRole", async () => { + it.skip("GIVEN an account without corporateActions role WHEN setScheduledBalanceAdjustment THEN transaction fails with AccountHasNoRole", async () => { await expect( asset.connect(signer_C).setScheduledBalanceAdjustment(balanceAdjustmentData), ).to.be.revertedWithCustomError(asset, "AccountHasNoRole"); }); - it("GIVEN a paused Token WHEN setScheduledBalanceAdjustment THEN transaction fails with IsPaused", async () => { + it.skip("GIVEN a paused Token WHEN setScheduledBalanceAdjustment THEN transaction fails with IsPaused", async () => { await grantRoleAndPauseToken(asset, ATS_ROLES.ROLE_CORPORATE_ACTION, signer_A, signer_B, signer_C.address); await expect( @@ -82,7 +82,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { ).to.be.revertedWithCustomError(asset, "IsPaused"); }); - it("GIVEN an account with corporateActions role WHEN setScheduledBalanceAdjustment with invalid timestamp THEN transaction fails with WrongTimestamp", async () => { + it.skip("GIVEN an account with corporateActions role WHEN setScheduledBalanceAdjustment with invalid timestamp THEN transaction fails with WrongTimestamp", async () => { const currentTimestamp = await asset.blockTimestamp(); await asset.changeSystemTimestamp(currentTimestamp + 100n); await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); @@ -98,7 +98,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { ).to.be.revertedWithCustomError(asset, "WrongTimestamp"); }); - it("GIVEN an account with corporateActions role WHEN setScheduledBalanceAdjustment with zero timestamp THEN transaction fails with InvalidTimestamp", async () => { + it.skip("GIVEN an account with corporateActions role WHEN setScheduledBalanceAdjustment with zero timestamp THEN transaction fails with InvalidTimestamp", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); const zeroTimestampBalanceAdjustmentData = { @@ -112,7 +112,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { ).to.be.revertedWithCustomError(asset, "InvalidTimestamp"); }); - it("GIVEN an account with corporateActions role WHEN setScheduledBalanceAdjustment with invalid factor THEN transaction fails with FactorIsZero", async () => { + it.skip("GIVEN an account with corporateActions role WHEN setScheduledBalanceAdjustment with invalid factor THEN transaction fails with FactorIsZero", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); const invalidBalanceAdjustmentData = { @@ -126,7 +126,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { ).to.be.revertedWithCustomError(asset, "FactorIsZero"); }); - it("GIVEN balance adjustment created WHEN trying to get balance adjustment with wrong ID type THEN transaction fails with WrongIndexForAction", async () => { + it.skip("GIVEN balance adjustment created WHEN trying to get balance adjustment with wrong ID type THEN transaction fails with WrongIndexForAction", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); await asset.connect(signer_C).setScheduledBalanceAdjustment(balanceAdjustmentData); @@ -148,7 +148,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { ); }); - it("GIVEN an account with corporateActions role WHEN setScheduledBalanceAdjustment THEN transaction succeeds", async () => { + it.skip("GIVEN an account with corporateActions role WHEN setScheduledBalanceAdjustment THEN transaction succeeds", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); await expect(asset.connect(signer_C).setScheduledBalanceAdjustment(balanceAdjustmentData)) @@ -173,7 +173,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { }); describe("Cancel Scheduled Balance Adjustment", () => { - it("GIVEN id is zero WHEN cancelScheduledBalanceAdjustment THEN reverts with WrongIndexForAction", async () => { + it.skip("GIVEN id is zero WHEN cancelScheduledBalanceAdjustment THEN reverts with WrongIndexForAction", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); await expect(asset.connect(signer_C).cancelScheduledBalanceAdjustment(0)).to.be.revertedWithCustomError( @@ -182,7 +182,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { ); }); - it("GIVEN an account without corporateActions role WHEN cancelScheduledBalanceAdjustment THEN transaction fails with AccountHasNoRole", async () => { + it.skip("GIVEN an account without corporateActions role WHEN cancelScheduledBalanceAdjustment THEN transaction fails with AccountHasNoRole", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_B.address); await asset.connect(signer_B).setScheduledBalanceAdjustment(balanceAdjustmentData); await expect(asset.connect(signer_C).cancelScheduledBalanceAdjustment(1)).to.be.revertedWithCustomError( @@ -191,7 +191,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { ); }); - it("GIVEN a paused Token WHEN cancelScheduledBalanceAdjustment THEN transaction fails with IsPaused", async () => { + it.skip("GIVEN a paused Token WHEN cancelScheduledBalanceAdjustment THEN transaction fails with IsPaused", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_B.address); await asset.connect(signer_B).setScheduledBalanceAdjustment(balanceAdjustmentData); await asset.connect(signer_B).pause(); @@ -202,7 +202,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { ); }); - it("GIVEN a balance adjustment already executed WHEN cancelScheduledBalanceAdjustment THEN transaction fails with BalanceAdjustmentAlreadyExecuted", async () => { + it.skip("GIVEN a balance adjustment already executed WHEN cancelScheduledBalanceAdjustment THEN transaction fails with BalanceAdjustmentAlreadyExecuted", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); await asset.connect(signer_C).setScheduledBalanceAdjustment(balanceAdjustmentData); @@ -215,7 +215,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { ); }); - it("GIVEN a balance adjustment not yet executed WHEN cancelScheduledBalanceAdjustment THEN transaction succeeds", async () => { + it.skip("GIVEN a balance adjustment not yet executed WHEN cancelScheduledBalanceAdjustment THEN transaction succeeds", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); await asset.connect(signer_C).setScheduledBalanceAdjustment(balanceAdjustmentData); @@ -229,7 +229,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { expect(balanceAdjustment.decimals).to.equal(balanceAdjustmentDecimals); }); - it("GIVEN a non-existent balance adjustment WHEN cancelScheduledBalanceAdjustment THEN transaction fails", async () => { + it.skip("GIVEN a non-existent balance adjustment WHEN cancelScheduledBalanceAdjustment THEN transaction fails", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); await expect(asset.connect(signer_C).cancelScheduledBalanceAdjustment(999)).to.be.revertedWithCustomError( @@ -238,7 +238,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { ); }); - it("GIVEN multiple balance adjustments WHEN cancelScheduledBalanceAdjustment on one THEN only that adjustment is cancelled", async () => { + it.skip("GIVEN multiple balance adjustments WHEN cancelScheduledBalanceAdjustment on one THEN only that adjustment is cancelled", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); await asset.connect(signer_C).setScheduledBalanceAdjustment(balanceAdjustmentData); @@ -264,7 +264,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { expect(balanceAdjustment2.decimals).to.equal(3); }); - it("GIVEN a cancelled balance adjustment WHEN triggerScheduledCrossOrderedTasks is called THEN scheduled task executes but token balance remains unchanged", async () => { + it.skip("GIVEN a cancelled balance adjustment WHEN triggerScheduledCrossOrderedTasks is called THEN scheduled task executes but token balance remains unchanged", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_ISSUER, signer_C.address); @@ -294,7 +294,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { expect(balanceAfterTrigger).to.equal(balanceBeforeAdjustment); }); - it("GIVEN a cancelled balance adjustment WHEN balanceOfAt after its execution date THEN returns unadjusted balance", async () => { + it.skip("GIVEN a cancelled balance adjustment WHEN balanceOfAt after its execution date THEN returns unadjusted balance", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_ISSUER, signer_C.address); @@ -327,7 +327,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { }); describe("Force Cancel Scheduled Balance Adjustment", () => { - it("GIVEN account with ROLE_CORPORATE_ACTION_FORCE_CANCEL WHEN forceCancelScheduledBalanceAdjustment before execution date THEN transaction succeeds and isDisabled is true", async () => { + it.skip("GIVEN account with ROLE_CORPORATE_ACTION_FORCE_CANCEL WHEN forceCancelScheduledBalanceAdjustment before execution date THEN transaction succeeds and isDisabled is true", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION_FORCE_CANCEL, signer_C.address); @@ -340,7 +340,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { expect(isDisabled).to.equal(true); }); - it("GIVEN account with ROLE_CORPORATE_ACTION_FORCE_CANCEL WHEN forceCancelScheduledBalanceAdjustment after execution date THEN transaction succeeds bypassing date guard", async () => { + it.skip("GIVEN account with ROLE_CORPORATE_ACTION_FORCE_CANCEL WHEN forceCancelScheduledBalanceAdjustment after execution date THEN transaction succeeds bypassing date guard", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION_FORCE_CANCEL, signer_C.address); @@ -355,7 +355,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { expect(isDisabled).to.equal(true); }); - it("GIVEN account without ROLE_CORPORATE_ACTION_FORCE_CANCEL WHEN forceCancelScheduledBalanceAdjustment THEN transaction fails with AccountHasNoRole", async () => { + it.skip("GIVEN account without ROLE_CORPORATE_ACTION_FORCE_CANCEL WHEN forceCancelScheduledBalanceAdjustment THEN transaction fails with AccountHasNoRole", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_B.address); await asset.connect(signer_B).setScheduledBalanceAdjustment(balanceAdjustmentData); @@ -366,7 +366,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { ); }); - it("GIVEN paused token WHEN forceCancelScheduledBalanceAdjustment THEN transaction fails with IsPaused", async () => { + it.skip("GIVEN paused token WHEN forceCancelScheduledBalanceAdjustment THEN transaction fails with IsPaused", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_B.address); await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION_FORCE_CANCEL, signer_B.address); From 766f8ea55e2c183ae27d12082e7b6b6459393c69 Mon Sep 17 00:00:00 2001 From: mamoralesiob Date: Thu, 18 Jun 2026 13:20:46 +0200 Subject: [PATCH 3/6] test: reducing coverage to test codecov control Signed-off-by: mamoralesiob --- .../accessControl/accessControl.test.ts | 12 +++--- .../adjustBalancesFacet.test.ts | 40 +++++++++---------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/packages/ats/contracts/test/contracts/integration/accessControl/accessControl.test.ts b/packages/ats/contracts/test/contracts/integration/accessControl/accessControl.test.ts index 184686c5d1..9a7ac68032 100644 --- a/packages/ats/contracts/test/contracts/integration/accessControl/accessControl.test.ts +++ b/packages/ats/contracts/test/contracts/integration/accessControl/accessControl.test.ts @@ -393,7 +393,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { .withArgs(unknownSigner.address, ATS_ROLES.DEFAULT_ADMIN_ROLE); }); - it.only("GIVEN an already-initialised facet WHEN initializeAccessControl is called again THEN it reverts with FacetAlreadyRegistered", async () => { + it("GIVEN an already-initialised facet WHEN initializeAccessControl is called again THEN it reverts with FacetAlreadyRegistered", async () => { await expect(asset.initializeAccessControl()) .to.be.revertedWithCustomError(asset, "FacetAlreadyRegistered") .withArgs(RESOLVER_KEY_ACCESS_CONTROL, 1); @@ -401,7 +401,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { }); describe("initializeAccessControl event", () => { - it.only("GIVEN a fresh deployment WHEN initializeAccessControl is called THEN it emits AccessControlInitialized", async () => { + it("GIVEN a fresh deployment WHEN initializeAccessControl is called THEN it emits AccessControlInitialized", async () => { await asset.forceFacetNotRegistered(RESOLVER_KEY_ACCESS_CONTROL); await expect(asset.initializeAccessControl()).to.emit(asset, "AccessControlInitialized"); }); @@ -412,25 +412,25 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { await asset.forceNonOperational(); }); - it.only("GIVEN non-operational WHEN grantRole is called THEN AssetNotOperational", async () => { + it("GIVEN non-operational WHEN grantRole is called THEN AssetNotOperational", async () => { await expect(asset.grantRole(ATS_ROLES.DEFAULT_ADMIN_ROLE, unknownSigner.address)) .to.be.revertedWithCustomError(asset, "AssetNotOperational") .withArgs(ASSET_MOCK_CONFIG_ID, 1); }); - it.only("GIVEN non-operational WHEN revokeRole is called THEN AssetNotOperational", async () => { + it("GIVEN non-operational WHEN revokeRole is called THEN AssetNotOperational", async () => { await expect(asset.revokeRole(ATS_ROLES.DEFAULT_ADMIN_ROLE, unknownSigner.address)) .to.be.revertedWithCustomError(asset, "AssetNotOperational") .withArgs(ASSET_MOCK_CONFIG_ID, 1); }); - it.only("GIVEN non-operational WHEN renounceRole is called THEN AssetNotOperational", async () => { + it("GIVEN non-operational WHEN renounceRole is called THEN AssetNotOperational", async () => { await expect(asset.renounceRole(ATS_ROLES.DEFAULT_ADMIN_ROLE)) .to.be.revertedWithCustomError(asset, "AssetNotOperational") .withArgs(ASSET_MOCK_CONFIG_ID, 1); }); - it.only("GIVEN non-operational WHEN applyRoles is called THEN AssetNotOperational", async () => { + it("GIVEN non-operational WHEN applyRoles is called THEN AssetNotOperational", async () => { await expect(asset.applyRoles([], [], unknownSigner.address)) .to.be.revertedWithCustomError(asset, "AssetNotOperational") .withArgs(ASSET_MOCK_CONFIG_ID, 1); diff --git a/packages/ats/contracts/test/contracts/integration/adjustBalances/adjustBalancesFacet.test.ts b/packages/ats/contracts/test/contracts/integration/adjustBalances/adjustBalancesFacet.test.ts index e9fe51dae3..a80c0cdfba 100644 --- a/packages/ats/contracts/test/contracts/integration/adjustBalances/adjustBalancesFacet.test.ts +++ b/packages/ats/contracts/test/contracts/integration/adjustBalances/adjustBalancesFacet.test.ts @@ -68,13 +68,13 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { }); describe("Balance adjustments", () => { - it.skip("GIVEN an account without corporateActions role WHEN setScheduledBalanceAdjustment THEN transaction fails with AccountHasNoRole", async () => { + it("GIVEN an account without corporateActions role WHEN setScheduledBalanceAdjustment THEN transaction fails with AccountHasNoRole", async () => { await expect( asset.connect(signer_C).setScheduledBalanceAdjustment(balanceAdjustmentData), ).to.be.revertedWithCustomError(asset, "AccountHasNoRole"); }); - it.skip("GIVEN a paused Token WHEN setScheduledBalanceAdjustment THEN transaction fails with IsPaused", async () => { + it("GIVEN a paused Token WHEN setScheduledBalanceAdjustment THEN transaction fails with IsPaused", async () => { await grantRoleAndPauseToken(asset, ATS_ROLES.ROLE_CORPORATE_ACTION, signer_A, signer_B, signer_C.address); await expect( @@ -82,7 +82,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { ).to.be.revertedWithCustomError(asset, "IsPaused"); }); - it.skip("GIVEN an account with corporateActions role WHEN setScheduledBalanceAdjustment with invalid timestamp THEN transaction fails with WrongTimestamp", async () => { + it("GIVEN an account with corporateActions role WHEN setScheduledBalanceAdjustment with invalid timestamp THEN transaction fails with WrongTimestamp", async () => { const currentTimestamp = await asset.blockTimestamp(); await asset.changeSystemTimestamp(currentTimestamp + 100n); await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); @@ -98,7 +98,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { ).to.be.revertedWithCustomError(asset, "WrongTimestamp"); }); - it.skip("GIVEN an account with corporateActions role WHEN setScheduledBalanceAdjustment with zero timestamp THEN transaction fails with InvalidTimestamp", async () => { + it("GIVEN an account with corporateActions role WHEN setScheduledBalanceAdjustment with zero timestamp THEN transaction fails with InvalidTimestamp", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); const zeroTimestampBalanceAdjustmentData = { @@ -112,7 +112,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { ).to.be.revertedWithCustomError(asset, "InvalidTimestamp"); }); - it.skip("GIVEN an account with corporateActions role WHEN setScheduledBalanceAdjustment with invalid factor THEN transaction fails with FactorIsZero", async () => { + it("GIVEN an account with corporateActions role WHEN setScheduledBalanceAdjustment with invalid factor THEN transaction fails with FactorIsZero", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); const invalidBalanceAdjustmentData = { @@ -126,7 +126,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { ).to.be.revertedWithCustomError(asset, "FactorIsZero"); }); - it.skip("GIVEN balance adjustment created WHEN trying to get balance adjustment with wrong ID type THEN transaction fails with WrongIndexForAction", async () => { + it("GIVEN balance adjustment created WHEN trying to get balance adjustment with wrong ID type THEN transaction fails with WrongIndexForAction", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); await asset.connect(signer_C).setScheduledBalanceAdjustment(balanceAdjustmentData); @@ -148,7 +148,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { ); }); - it.skip("GIVEN an account with corporateActions role WHEN setScheduledBalanceAdjustment THEN transaction succeeds", async () => { + it("GIVEN an account with corporateActions role WHEN setScheduledBalanceAdjustment THEN transaction succeeds", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); await expect(asset.connect(signer_C).setScheduledBalanceAdjustment(balanceAdjustmentData)) @@ -173,7 +173,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { }); describe("Cancel Scheduled Balance Adjustment", () => { - it.skip("GIVEN id is zero WHEN cancelScheduledBalanceAdjustment THEN reverts with WrongIndexForAction", async () => { + it("GIVEN id is zero WHEN cancelScheduledBalanceAdjustment THEN reverts with WrongIndexForAction", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); await expect(asset.connect(signer_C).cancelScheduledBalanceAdjustment(0)).to.be.revertedWithCustomError( @@ -182,7 +182,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { ); }); - it.skip("GIVEN an account without corporateActions role WHEN cancelScheduledBalanceAdjustment THEN transaction fails with AccountHasNoRole", async () => { + it("GIVEN an account without corporateActions role WHEN cancelScheduledBalanceAdjustment THEN transaction fails with AccountHasNoRole", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_B.address); await asset.connect(signer_B).setScheduledBalanceAdjustment(balanceAdjustmentData); await expect(asset.connect(signer_C).cancelScheduledBalanceAdjustment(1)).to.be.revertedWithCustomError( @@ -191,7 +191,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { ); }); - it.skip("GIVEN a paused Token WHEN cancelScheduledBalanceAdjustment THEN transaction fails with IsPaused", async () => { + it("GIVEN a paused Token WHEN cancelScheduledBalanceAdjustment THEN transaction fails with IsPaused", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_B.address); await asset.connect(signer_B).setScheduledBalanceAdjustment(balanceAdjustmentData); await asset.connect(signer_B).pause(); @@ -202,7 +202,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { ); }); - it.skip("GIVEN a balance adjustment already executed WHEN cancelScheduledBalanceAdjustment THEN transaction fails with BalanceAdjustmentAlreadyExecuted", async () => { + it("GIVEN a balance adjustment already executed WHEN cancelScheduledBalanceAdjustment THEN transaction fails with BalanceAdjustmentAlreadyExecuted", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); await asset.connect(signer_C).setScheduledBalanceAdjustment(balanceAdjustmentData); @@ -215,7 +215,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { ); }); - it.skip("GIVEN a balance adjustment not yet executed WHEN cancelScheduledBalanceAdjustment THEN transaction succeeds", async () => { + it("GIVEN a balance adjustment not yet executed WHEN cancelScheduledBalanceAdjustment THEN transaction succeeds", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); await asset.connect(signer_C).setScheduledBalanceAdjustment(balanceAdjustmentData); @@ -229,7 +229,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { expect(balanceAdjustment.decimals).to.equal(balanceAdjustmentDecimals); }); - it.skip("GIVEN a non-existent balance adjustment WHEN cancelScheduledBalanceAdjustment THEN transaction fails", async () => { + it("GIVEN a non-existent balance adjustment WHEN cancelScheduledBalanceAdjustment THEN transaction fails", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); await expect(asset.connect(signer_C).cancelScheduledBalanceAdjustment(999)).to.be.revertedWithCustomError( @@ -238,7 +238,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { ); }); - it.skip("GIVEN multiple balance adjustments WHEN cancelScheduledBalanceAdjustment on one THEN only that adjustment is cancelled", async () => { + it("GIVEN multiple balance adjustments WHEN cancelScheduledBalanceAdjustment on one THEN only that adjustment is cancelled", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); await asset.connect(signer_C).setScheduledBalanceAdjustment(balanceAdjustmentData); @@ -264,7 +264,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { expect(balanceAdjustment2.decimals).to.equal(3); }); - it.skip("GIVEN a cancelled balance adjustment WHEN triggerScheduledCrossOrderedTasks is called THEN scheduled task executes but token balance remains unchanged", async () => { + it("GIVEN a cancelled balance adjustment WHEN triggerScheduledCrossOrderedTasks is called THEN scheduled task executes but token balance remains unchanged", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_ISSUER, signer_C.address); @@ -294,7 +294,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { expect(balanceAfterTrigger).to.equal(balanceBeforeAdjustment); }); - it.skip("GIVEN a cancelled balance adjustment WHEN balanceOfAt after its execution date THEN returns unadjusted balance", async () => { + it("GIVEN a cancelled balance adjustment WHEN balanceOfAt after its execution date THEN returns unadjusted balance", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_ISSUER, signer_C.address); @@ -327,7 +327,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { }); describe("Force Cancel Scheduled Balance Adjustment", () => { - it.skip("GIVEN account with ROLE_CORPORATE_ACTION_FORCE_CANCEL WHEN forceCancelScheduledBalanceAdjustment before execution date THEN transaction succeeds and isDisabled is true", async () => { + it("GIVEN account with ROLE_CORPORATE_ACTION_FORCE_CANCEL WHEN forceCancelScheduledBalanceAdjustment before execution date THEN transaction succeeds and isDisabled is true", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION_FORCE_CANCEL, signer_C.address); @@ -340,7 +340,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { expect(isDisabled).to.equal(true); }); - it.skip("GIVEN account with ROLE_CORPORATE_ACTION_FORCE_CANCEL WHEN forceCancelScheduledBalanceAdjustment after execution date THEN transaction succeeds bypassing date guard", async () => { + it("GIVEN account with ROLE_CORPORATE_ACTION_FORCE_CANCEL WHEN forceCancelScheduledBalanceAdjustment after execution date THEN transaction succeeds bypassing date guard", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_C.address); await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION_FORCE_CANCEL, signer_C.address); @@ -355,7 +355,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { expect(isDisabled).to.equal(true); }); - it.skip("GIVEN account without ROLE_CORPORATE_ACTION_FORCE_CANCEL WHEN forceCancelScheduledBalanceAdjustment THEN transaction fails with AccountHasNoRole", async () => { + it("GIVEN account without ROLE_CORPORATE_ACTION_FORCE_CANCEL WHEN forceCancelScheduledBalanceAdjustment THEN transaction fails with AccountHasNoRole", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_B.address); await asset.connect(signer_B).setScheduledBalanceAdjustment(balanceAdjustmentData); @@ -366,7 +366,7 @@ export function adjustBalancesFacetTests(getCtx: () => AssetMockCtx): void { ); }); - it.skip("GIVEN paused token WHEN forceCancelScheduledBalanceAdjustment THEN transaction fails with IsPaused", async () => { + it("GIVEN paused token WHEN forceCancelScheduledBalanceAdjustment THEN transaction fails with IsPaused", async () => { await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION, signer_B.address); await asset.connect(signer_A).grantRole(ATS_ROLES.ROLE_CORPORATE_ACTION_FORCE_CANCEL, signer_B.address); From 30dbe29cb4764919b779dd67473a64988c99807d Mon Sep 17 00:00:00 2001 From: mamoralesiob Date: Thu, 18 Jun 2026 13:57:40 +0200 Subject: [PATCH 4/6] test: reducing coverage to test codecov control Signed-off-by: mamoralesiob --- .../accessControl/accessControl.test.ts | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/packages/ats/contracts/test/contracts/integration/accessControl/accessControl.test.ts b/packages/ats/contracts/test/contracts/integration/accessControl/accessControl.test.ts index 9a7ac68032..e116406fef 100644 --- a/packages/ats/contracts/test/contracts/integration/accessControl/accessControl.test.ts +++ b/packages/ats/contracts/test/contracts/integration/accessControl/accessControl.test.ts @@ -26,52 +26,52 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { await executeRbac(asset, [{ role: ATS_ROLES.ROLE_PAUSER, members: [ctx.user1.address] }]); }); - it.only("GIVEN a deactivated asset WHEN grantRole THEN transaction fails with Deactivated", async () => { + it("GIVEN a deactivated asset WHEN grantRole THEN transaction fails with Deactivated", async () => { await asset.forceDeactivate(); await expect( asset.connect(deployer).grantRole(ATS_ROLES.ROLE_PAUSER, unknownSigner.address), ).to.be.revertedWithCustomError(asset, "Deactivated"); }); - it.only("GIVEN an account without administrative role WHEN grantRole THEN transaction fails with AccountHasNoRole", async () => { + it("GIVEN an account without administrative role WHEN grantRole THEN transaction fails with AccountHasNoRole", async () => { await expect(asset.connect(signer_C).grantRole(ATS_ROLES.ROLE_PAUSER, unknownSigner.address)) .to.be.revertedWithCustomError(asset, "AccountHasNoRole") .withArgs(signer_C.address, ATS_ROLES.DEFAULT_ADMIN_ROLE); }); - it.only("GIVEN a deactivated asset WHEN revokeRole THEN transaction fails with Deactivated", async () => { + it("GIVEN a deactivated asset WHEN revokeRole THEN transaction fails with Deactivated", async () => { await asset.forceDeactivate(); await expect( asset.connect(deployer).revokeRole(ATS_ROLES.DEFAULT_ADMIN_ROLE, unknownSigner.address), ).to.be.revertedWithCustomError(asset, "Deactivated"); }); - it.only("GIVEN an account without administrative role WHEN revokeRole THEN transaction fails with AccountHasNoRole", async () => { + it("GIVEN an account without administrative role WHEN revokeRole THEN transaction fails with AccountHasNoRole", async () => { await expect(asset.connect(signer_C).revokeRole(ATS_ROLES.DEFAULT_ADMIN_ROLE, unknownSigner.address)) .to.be.revertedWithCustomError(asset, "AccountHasNoRole") .withArgs(signer_C.address, ATS_ROLES.DEFAULT_ADMIN_ROLE); }); - it.only("GIVEN a deactivated asset WHEN applyRoles THEN transaction fails with Deactivated", async () => { + it("GIVEN a deactivated asset WHEN applyRoles THEN transaction fails with Deactivated", async () => { await asset.forceDeactivate(); await expect( asset.connect(signer_C).applyRoles([ATS_ROLES.DEFAULT_ADMIN_ROLE], [true], unknownSigner.address), ).to.be.revertedWithCustomError(asset, "Deactivated"); }); - it.only("GIVEN an account without administrative role WHEN applyRoles THEN transaction fails with AccountHasNoRole", async () => { + it("GIVEN an account without administrative role WHEN applyRoles THEN transaction fails with AccountHasNoRole", async () => { await expect(asset.connect(signer_C).applyRoles([ATS_ROLES.DEFAULT_ADMIN_ROLE], [true], unknownSigner.address)) .to.be.revertedWithCustomError(asset, "AccountHasNoRole") .withArgs(signer_C.address, ATS_ROLES.DEFAULT_ADMIN_ROLE); }); - it.only("GIVEN a list of roles and actives that is not equally long WHEN applyRoles THEN transaction fails with RolesAndActivesLengthMismatch", async () => { + it("GIVEN a list of roles and actives that is not equally long WHEN applyRoles THEN transaction fails with RolesAndActivesLengthMismatch", async () => { await expect(asset.connect(signer_C).applyRoles([ATS_ROLES.DEFAULT_ADMIN_ROLE], [], unknownSigner.address)) .to.be.revertedWithCustomError(asset, "RolesAndActivesLengthMismatch") .withArgs(1, 0); }); - it.only("GIVEN a list of contradictory roles (enable and disable) role WHEN applyRoles THEN transaction fails with ApplyRoleContradiction", async () => { + it("GIVEN a list of contradictory roles (enable and disable) role WHEN applyRoles THEN transaction fails with ApplyRoleContradiction", async () => { const Roles_1 = [ ATS_ROLES.DEFAULT_ADMIN_ROLE, ATS_ROLES.ROLE_PAUSER, @@ -96,7 +96,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { .withArgs(3, 6); }); - it.only("GIVEN a paused Token WHEN grantRole THEN transaction fails with IsPaused", async () => { + it("GIVEN a paused Token WHEN grantRole THEN transaction fails with IsPaused", async () => { await asset.connect(signer_B).pause(); await expect( @@ -104,7 +104,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { ).to.be.revertedWithCustomError(asset, "IsPaused"); }); - it.only("GIVEN a paused Token WHEN revokeRole THEN transaction fails with IsPaused", async () => { + it("GIVEN a paused Token WHEN revokeRole THEN transaction fails with IsPaused", async () => { await asset.connect(signer_B).pause(); await expect( @@ -112,7 +112,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { ).to.be.revertedWithCustomError(asset, "IsPaused"); }); - it.only("GIVEN a deactivated asset WHEN renounceRole THEN transaction fails with Deactivated", async () => { + it("GIVEN a deactivated asset WHEN renounceRole THEN transaction fails with Deactivated", async () => { await asset.forceDeactivate(); await expect(asset.connect(signer_C).renounceRole(ATS_ROLES.ROLE_PAUSER)).to.be.revertedWithCustomError( asset, @@ -120,7 +120,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { ); }); - it.only("GIVEN a paused Token WHEN renounce THEN transaction fails with IsPaused", async () => { + it("GIVEN a paused Token WHEN renounce THEN transaction fails with IsPaused", async () => { // Pausing the token await asset.connect(signer_B).pause(); @@ -131,7 +131,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { ); }); - it.only("GIVEN an paused Token WHEN applyRoles THEN transaction fails with IsPaused", async () => { + it("GIVEN an paused Token WHEN applyRoles THEN transaction fails with IsPaused", async () => { // Pausing the token await asset.connect(signer_B).pause(); @@ -141,7 +141,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { ).to.be.revertedWithCustomError(asset, "IsPaused"); }); - it.only("GIVEN an account with administrative role WHEN grantRole THEN transaction succeeds", async () => { + it("GIVEN an account with administrative role WHEN grantRole THEN transaction succeeds", async () => { // check that C does not have the role let check_C = await asset.hasRole(ATS_ROLES.ROLE_PAUSER, unknownSigner.address); expect(check_C).to.equal(false); @@ -168,7 +168,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { expect(membersFor_Pause[1].toUpperCase()).to.equal(unknownSigner.address.toUpperCase()); }); - it.only("GIVEN an account with administrative role WHEN revokeRole THEN transaction succeeds", async () => { + it("GIVEN an account with administrative role WHEN revokeRole THEN transaction succeeds", async () => { // check that B has the role let check_B = await asset.hasRole(ATS_ROLES.ROLE_PAUSER, signer_B.address); expect(check_B).to.equal(true); @@ -192,7 +192,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { expect(membersFor_Pause.length).to.equal(memberCountFor_Pause); }); - it.only("GIVEN an account with pauser role WHEN renouncing the pauser role THEN transaction succeeds", async () => { + it("GIVEN an account with pauser role WHEN renouncing the pauser role THEN transaction succeeds", async () => { // check that B has the role let check_B = await asset.hasRole(ATS_ROLES.ROLE_PAUSER, signer_B.address); expect(check_B).to.equal(true); @@ -216,7 +216,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { expect(membersFor_Pause.length).to.equal(memberCountFor_Pause); }); - it.only("GIVEN an account with administrative role WHEN applyRoles THEN transaction succeeds", async () => { + it("GIVEN an account with administrative role WHEN applyRoles THEN transaction succeeds", async () => { // check that C does not have the role await asset.connect(deployer).grantRole(ATS_ROLES.ROLE_PAUSER, signer_C.address); @@ -256,7 +256,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { expect(membersFor_Default[1].toUpperCase()).to.equal(signer_C.address.toUpperCase()); }); - it.only("GIVEN an account with administrative role, if roles are duplicated but not contradictory WHEN applyRoles THEN transaction succeeds", async () => { + it("GIVEN an account with administrative role, if roles are duplicated but not contradictory WHEN applyRoles THEN transaction succeeds", async () => { // check that C does not have the role await asset.connect(deployer).grantRole(ATS_ROLES.ROLE_PAUSER, signer_C.address); From 2fe3dfbcb2e0860bbf22f62ba94fdc4a9d3bf1bf Mon Sep 17 00:00:00 2001 From: mamoralesiob Date: Thu, 18 Jun 2026 14:07:01 +0200 Subject: [PATCH 5/6] test: reducing coverage to test codecov control Signed-off-by: mamoralesiob --- .../accessControl/accessControl.test.ts | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/packages/ats/contracts/test/contracts/integration/accessControl/accessControl.test.ts b/packages/ats/contracts/test/contracts/integration/accessControl/accessControl.test.ts index e116406fef..e02f2c63d7 100644 --- a/packages/ats/contracts/test/contracts/integration/accessControl/accessControl.test.ts +++ b/packages/ats/contracts/test/contracts/integration/accessControl/accessControl.test.ts @@ -26,52 +26,52 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { await executeRbac(asset, [{ role: ATS_ROLES.ROLE_PAUSER, members: [ctx.user1.address] }]); }); - it("GIVEN a deactivated asset WHEN grantRole THEN transaction fails with Deactivated", async () => { + it.skip("GIVEN a deactivated asset WHEN grantRole THEN transaction fails with Deactivated", async () => { await asset.forceDeactivate(); await expect( asset.connect(deployer).grantRole(ATS_ROLES.ROLE_PAUSER, unknownSigner.address), ).to.be.revertedWithCustomError(asset, "Deactivated"); }); - it("GIVEN an account without administrative role WHEN grantRole THEN transaction fails with AccountHasNoRole", async () => { + it.skip("GIVEN an account without administrative role WHEN grantRole THEN transaction fails with AccountHasNoRole", async () => { await expect(asset.connect(signer_C).grantRole(ATS_ROLES.ROLE_PAUSER, unknownSigner.address)) .to.be.revertedWithCustomError(asset, "AccountHasNoRole") .withArgs(signer_C.address, ATS_ROLES.DEFAULT_ADMIN_ROLE); }); - it("GIVEN a deactivated asset WHEN revokeRole THEN transaction fails with Deactivated", async () => { + it.skip("GIVEN a deactivated asset WHEN revokeRole THEN transaction fails with Deactivated", async () => { await asset.forceDeactivate(); await expect( asset.connect(deployer).revokeRole(ATS_ROLES.DEFAULT_ADMIN_ROLE, unknownSigner.address), ).to.be.revertedWithCustomError(asset, "Deactivated"); }); - it("GIVEN an account without administrative role WHEN revokeRole THEN transaction fails with AccountHasNoRole", async () => { + it.skip("GIVEN an account without administrative role WHEN revokeRole THEN transaction fails with AccountHasNoRole", async () => { await expect(asset.connect(signer_C).revokeRole(ATS_ROLES.DEFAULT_ADMIN_ROLE, unknownSigner.address)) .to.be.revertedWithCustomError(asset, "AccountHasNoRole") .withArgs(signer_C.address, ATS_ROLES.DEFAULT_ADMIN_ROLE); }); - it("GIVEN a deactivated asset WHEN applyRoles THEN transaction fails with Deactivated", async () => { + it.skip("GIVEN a deactivated asset WHEN applyRoles THEN transaction fails with Deactivated", async () => { await asset.forceDeactivate(); await expect( asset.connect(signer_C).applyRoles([ATS_ROLES.DEFAULT_ADMIN_ROLE], [true], unknownSigner.address), ).to.be.revertedWithCustomError(asset, "Deactivated"); }); - it("GIVEN an account without administrative role WHEN applyRoles THEN transaction fails with AccountHasNoRole", async () => { + it.skip("GIVEN an account without administrative role WHEN applyRoles THEN transaction fails with AccountHasNoRole", async () => { await expect(asset.connect(signer_C).applyRoles([ATS_ROLES.DEFAULT_ADMIN_ROLE], [true], unknownSigner.address)) .to.be.revertedWithCustomError(asset, "AccountHasNoRole") .withArgs(signer_C.address, ATS_ROLES.DEFAULT_ADMIN_ROLE); }); - it("GIVEN a list of roles and actives that is not equally long WHEN applyRoles THEN transaction fails with RolesAndActivesLengthMismatch", async () => { + it.skip("GIVEN a list of roles and actives that is not equally long WHEN applyRoles THEN transaction fails with RolesAndActivesLengthMismatch", async () => { await expect(asset.connect(signer_C).applyRoles([ATS_ROLES.DEFAULT_ADMIN_ROLE], [], unknownSigner.address)) .to.be.revertedWithCustomError(asset, "RolesAndActivesLengthMismatch") .withArgs(1, 0); }); - it("GIVEN a list of contradictory roles (enable and disable) role WHEN applyRoles THEN transaction fails with ApplyRoleContradiction", async () => { + it.skip("GIVEN a list of contradictory roles (enable and disable) role WHEN applyRoles THEN transaction fails with ApplyRoleContradiction", async () => { const Roles_1 = [ ATS_ROLES.DEFAULT_ADMIN_ROLE, ATS_ROLES.ROLE_PAUSER, @@ -96,7 +96,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { .withArgs(3, 6); }); - it("GIVEN a paused Token WHEN grantRole THEN transaction fails with IsPaused", async () => { + it.skip("GIVEN a paused Token WHEN grantRole THEN transaction fails with IsPaused", async () => { await asset.connect(signer_B).pause(); await expect( @@ -104,7 +104,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { ).to.be.revertedWithCustomError(asset, "IsPaused"); }); - it("GIVEN a paused Token WHEN revokeRole THEN transaction fails with IsPaused", async () => { + it.skip("GIVEN a paused Token WHEN revokeRole THEN transaction fails with IsPaused", async () => { await asset.connect(signer_B).pause(); await expect( @@ -112,7 +112,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { ).to.be.revertedWithCustomError(asset, "IsPaused"); }); - it("GIVEN a deactivated asset WHEN renounceRole THEN transaction fails with Deactivated", async () => { + it.skip("GIVEN a deactivated asset WHEN renounceRole THEN transaction fails with Deactivated", async () => { await asset.forceDeactivate(); await expect(asset.connect(signer_C).renounceRole(ATS_ROLES.ROLE_PAUSER)).to.be.revertedWithCustomError( asset, @@ -120,7 +120,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { ); }); - it("GIVEN a paused Token WHEN renounce THEN transaction fails with IsPaused", async () => { + it.skip("GIVEN a paused Token WHEN renounce THEN transaction fails with IsPaused", async () => { // Pausing the token await asset.connect(signer_B).pause(); @@ -131,7 +131,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { ); }); - it("GIVEN an paused Token WHEN applyRoles THEN transaction fails with IsPaused", async () => { + it.skip("GIVEN an paused Token WHEN applyRoles THEN transaction fails with IsPaused", async () => { // Pausing the token await asset.connect(signer_B).pause(); @@ -141,7 +141,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { ).to.be.revertedWithCustomError(asset, "IsPaused"); }); - it("GIVEN an account with administrative role WHEN grantRole THEN transaction succeeds", async () => { + it.skip("GIVEN an account with administrative role WHEN grantRole THEN transaction succeeds", async () => { // check that C does not have the role let check_C = await asset.hasRole(ATS_ROLES.ROLE_PAUSER, unknownSigner.address); expect(check_C).to.equal(false); @@ -168,7 +168,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { expect(membersFor_Pause[1].toUpperCase()).to.equal(unknownSigner.address.toUpperCase()); }); - it("GIVEN an account with administrative role WHEN revokeRole THEN transaction succeeds", async () => { + it.skip("GIVEN an account with administrative role WHEN revokeRole THEN transaction succeeds", async () => { // check that B has the role let check_B = await asset.hasRole(ATS_ROLES.ROLE_PAUSER, signer_B.address); expect(check_B).to.equal(true); @@ -192,7 +192,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { expect(membersFor_Pause.length).to.equal(memberCountFor_Pause); }); - it("GIVEN an account with pauser role WHEN renouncing the pauser role THEN transaction succeeds", async () => { + it.skip("GIVEN an account with pauser role WHEN renouncing the pauser role THEN transaction succeeds", async () => { // check that B has the role let check_B = await asset.hasRole(ATS_ROLES.ROLE_PAUSER, signer_B.address); expect(check_B).to.equal(true); @@ -216,7 +216,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { expect(membersFor_Pause.length).to.equal(memberCountFor_Pause); }); - it("GIVEN an account with administrative role WHEN applyRoles THEN transaction succeeds", async () => { + it.skip("GIVEN an account with administrative role WHEN applyRoles THEN transaction succeeds", async () => { // check that C does not have the role await asset.connect(deployer).grantRole(ATS_ROLES.ROLE_PAUSER, signer_C.address); @@ -256,7 +256,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { expect(membersFor_Default[1].toUpperCase()).to.equal(signer_C.address.toUpperCase()); }); - it("GIVEN an account with administrative role, if roles are duplicated but not contradictory WHEN applyRoles THEN transaction succeeds", async () => { + it.skip("GIVEN an account with administrative role, if roles are duplicated but not contradictory WHEN applyRoles THEN transaction succeeds", async () => { // check that C does not have the role await asset.connect(deployer).grantRole(ATS_ROLES.ROLE_PAUSER, signer_C.address); @@ -291,7 +291,7 @@ export function accessControlTests(getCtx: () => AssetMockCtx): void { expect(rolesFor_C[0].toUpperCase()).to.equal(ATS_ROLES.ROLE_PAUSER.toUpperCase()); }); - it.only("GIVEN a mixed batch of effective and no-op entries WHEN applyRoles THEN RolesApplied carries only the effectively changed entries in input order", async () => { + it.skip("GIVEN a mixed batch of effective and no-op entries WHEN applyRoles THEN RolesApplied carries only the effectively changed entries in input order", async () => { // Pre-state: signer_C holds ROLE_PAUSER and ROLE_AGENT, nothing else. await asset.connect(deployer).grantRole(ATS_ROLES.ROLE_PAUSER, signer_C.address); await asset.connect(deployer).grantRole(ATS_ROLES.ROLE_AGENT, signer_C.address); From f336fde50bf2b635b615ec16a2b6dd4571fddc78 Mon Sep 17 00:00:00 2001 From: mamoralesiob Date: Thu, 18 Jun 2026 16:05:39 +0200 Subject: [PATCH 6/6] fix: change codecov configuration Signed-off-by: mamoralesiob --- .github/workflows/100-flow-ats-test.yaml | 49 ++++++++++++++++++++++++ codecov.yml | 3 ++ 2 files changed, 52 insertions(+) diff --git a/.github/workflows/100-flow-ats-test.yaml b/.github/workflows/100-flow-ats-test.yaml index 10950b2c62..59e84c76a4 100644 --- a/.github/workflows/100-flow-ats-test.yaml +++ b/.github/workflows/100-flow-ats-test.yaml @@ -8,6 +8,7 @@ on: - "packages/ats/**" - "apps/ats/**" - "package.json" + - "codecov.yml" - ".github/workflows/*ats*.yaml" workflow_dispatch: @@ -17,6 +18,7 @@ defaults: permissions: contents: read + statuses: read # gate step reads the codecov/project commit status jobs: test-ats: @@ -99,3 +101,50 @@ jobs: - name: Upload coverage report if: ${{ steps.generate_coverage.outcome == 'success' }} uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v5.4.0 + + # TEMPORARY DIAGNOSTIC (non-blocking). + # The prior enforcement step only read commit *statuses* and never found + # `codecov/project` (state='' for 5 min), producing a false failure. + # Codecov may instead report via the *check-runs* API, post under a + # different SHA, or not post at all. This step dumps BOTH commit statuses + # and check-runs for the PR head SHA each poll so the next run shows + # exactly what Codecov posts and where. It NEVER fails the job — re-enable + # enforcement once we know the reporting mechanism. + - name: Diagnose Codecov status/check-run posting + if: ${{ github.event_name == 'pull_request' && steps.generate_coverage.outcome == 'success' }} + env: + GH_TOKEN: ${{ github.token }} + HEAD_SHA: ${{ github.event.pull_request.head.sha }} + REPO: ${{ github.repository }} + run: | + echo "Inspecting Codecov reporting for head SHA ${HEAD_SHA} in ${REPO}" + for attempt in $(seq 1 30); do + echo "----- attempt ${attempt}/30 -----" + + echo "[commit statuses]" + gh api "repos/${REPO}/commits/${HEAD_SHA}/statuses" \ + --jq '.[] | " status: \(.context) = \(.state)"' \ + || echo " (statuses query failed)" + + echo "[check runs]" + gh api "repos/${REPO}/commits/${HEAD_SHA}/check-runs" \ + --jq '.check_runs[] | " check : \(.name) = status:\(.status) conclusion:\(.conclusion // "n/a")"' \ + || echo " (check-runs query failed)" + + # Stop early once anything Codecov-related has posted in either place. + found=$( + { + gh api "repos/${REPO}/commits/${HEAD_SHA}/statuses" --jq '.[].context' 2>/dev/null + gh api "repos/${REPO}/commits/${HEAD_SHA}/check-runs" --jq '.check_runs[].name' 2>/dev/null + } | grep -i codecov || true + ) + if [ -n "${found}" ]; then + echo "✓ Found Codecov entries (note whether they are statuses or checks above):" + echo "${found}" | sed 's/^/ /' + break + fi + + echo " no codecov entry yet — waiting 10s" + sleep 10 + done + echo "Diagnostic complete (non-blocking; job will not fail here)." diff --git a/codecov.yml b/codecov.yml index 797fc46c32..eeabda4e95 100644 --- a/codecov.yml +++ b/codecov.yml @@ -10,10 +10,13 @@ coverage: default: target: auto threshold: 0% + if_ci_failed: error project: default: target: auto threshold: 0% + if_ci_failed: error # don't report success if the test job itself failed + informational: false # blocking status, not advisory (this is the default — explicit here) ignore: - "packages/*/dist"