diff --git a/src/portalbackend/PortalBackend.DBAccess/Repositories/ServiceAccountRepository.cs b/src/portalbackend/PortalBackend.DBAccess/Repositories/ServiceAccountRepository.cs index 00bd547861..f3c9c4799f 100644 --- a/src/portalbackend/PortalBackend.DBAccess/Repositories/ServiceAccountRepository.cs +++ b/src/portalbackend/PortalBackend.DBAccess/Repositories/ServiceAccountRepository.cs @@ -218,7 +218,7 @@ public Task CheckActiveServiceAccountExistsForCompanyAsync(Guid technicalU portalDbContext.CompanyServiceAccounts .Where(sa => sa.Id == technicalUserId && - sa.Identity!.UserStatusId == UserStatusId.ACTIVE && + (sa.Identity!.UserStatusId == UserStatusId.ACTIVE || sa.Identity!.UserStatusId == UserStatusId.PENDING) && sa.Identity.CompanyId == companyId) .AnyAsync(); diff --git a/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/company_service_accounts.test.json b/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/company_service_accounts.test.json index 4b719c50a2..8634a1379e 100644 --- a/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/company_service_accounts.test.json +++ b/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/company_service_accounts.test.json @@ -86,5 +86,14 @@ "company_service_account_kind_id": 2, "offer_subscription_id": "ed4de48d-fd4b-4384-a72f-ecae3c6cc5ba", "client_client_id": "sa-os-external" + }, + { + "id": "4ce1b774-3d00-4e07-9a53-ae1f64193394", + "name": "sa-pending-0", + "description": "pending service account", + "company_service_account_type_id": 2, + "company_service_account_kind_id": 1, + "offer_subscription_id": null, + "client_client_id": "sa-x-4" } ] diff --git a/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/identities.test.json b/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/identities.test.json index ed4b43ebce..9452ad2e9f 100644 --- a/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/identities.test.json +++ b/tests/portalbackend/PortalBackend.DBAccess.Tests/Seeder/Data/identities.test.json @@ -185,5 +185,14 @@ "user_entity_id": null, "identity_type_id": 2, "last_editor_id":"8b42e6de-7b59-4217-a63c-198e83d93777" + }, + { + "id": "4ce1b774-3d00-4e07-9a53-ae1f64193394", + "date_created": "2024-08-08 18:01:33.439000 +00:00", + "company_id": "2dc4249f-b5ca-4d42-bef1-7a7a950a4f87", + "user_status_id": 4, + "user_entity_id": null, + "identity_type_id": 2, + "last_editor_id":"8b42e6de-7b59-4217-a63c-198e83d93777" } ] diff --git a/tests/portalbackend/PortalBackend.DBAccess.Tests/ServiceAccountRespotitoryTests.cs b/tests/portalbackend/PortalBackend.DBAccess.Tests/ServiceAccountRespotitoryTests.cs index 9f56c0f2f1..288d30ef80 100644 --- a/tests/portalbackend/PortalBackend.DBAccess.Tests/ServiceAccountRespotitoryTests.cs +++ b/tests/portalbackend/PortalBackend.DBAccess.Tests/ServiceAccountRespotitoryTests.cs @@ -439,6 +439,32 @@ public async Task CheckActiveServiceAccountExistsForCompanyAsync_ReturnsExpected result.Should().BeTrue(); } + [Fact] + public async Task CheckActiveServiceAccountExistsForCompanyAsyncForPendingStatus_ReturnsExpectedResult() + { + // Arrange + var (sut, _) = await CreateSut(); + + // Act + var result = await sut.CheckActiveServiceAccountExistsForCompanyAsync(new Guid("4ce1b774-3d00-4e07-9a53-ae1f64193394"), new Guid("2dc4249f-b5ca-4d42-bef1-7a7a950a4f87")); + + // Assert + result.Should().BeTrue(); + } + + [Fact] + public async Task CheckActiveServiceAccountExistsForCompanyAsyncForInactiveStatus_ReturnsExpectedResult() + { + // Arrange + var (sut, _) = await CreateSut(); + + // Act + var result = await sut.CheckActiveServiceAccountExistsForCompanyAsync(new Guid("38c92162-6328-40ce-80f3-22e3f3e9b94d"), new Guid("2dc4249f-b5ca-4d42-bef1-7a7a950a4f87")); + + // Assert + result.Should().BeFalse(); + } + #endregion #region CreateDimCompanyServiceAccount