mirror of
https://github.com/bitwarden/server.git
synced 2024-12-04 14:13:28 +01:00
1053f49fb1
* Swap to sqlite in-memory for integration tests * Fix integration tests * Remove EF Core in-memory dependency
74 lines
2.6 KiB
C#
74 lines
2.6 KiB
C#
using Bit.Api.IntegrationTest.Factories;
|
|
using Bit.Api.IntegrationTest.Helpers;
|
|
using Bit.Core.Entities;
|
|
using Bit.Core.Enums;
|
|
using Bit.Core.Repositories;
|
|
|
|
namespace Bit.Api.IntegrationTest.SecretsManager;
|
|
|
|
public class SecretsManagerOrganizationHelper
|
|
{
|
|
private readonly ApiApplicationFactory _factory;
|
|
private readonly string _ownerEmail;
|
|
private readonly IOrganizationRepository _organizationRepository;
|
|
private readonly IOrganizationUserRepository _organizationUserRepository;
|
|
|
|
public Organization _organization = null!;
|
|
public OrganizationUser _owner = null!;
|
|
|
|
public SecretsManagerOrganizationHelper(ApiApplicationFactory factory, string ownerEmail)
|
|
{
|
|
_factory = factory;
|
|
_organizationRepository = factory.GetService<IOrganizationRepository>();
|
|
_organizationUserRepository = factory.GetService<IOrganizationUserRepository>();
|
|
|
|
_ownerEmail = ownerEmail;
|
|
}
|
|
|
|
public async Task<(Organization organization, OrganizationUser owner)> Initialize(bool useSecrets, bool ownerAccessSecrets, bool organizationEnabled)
|
|
{
|
|
(_organization, _owner) = await OrganizationTestHelpers.SignUpAsync(_factory, ownerEmail: _ownerEmail, billingEmail: _ownerEmail);
|
|
|
|
if (useSecrets || !organizationEnabled)
|
|
{
|
|
if (useSecrets)
|
|
{
|
|
_organization.UseSecretsManager = true;
|
|
}
|
|
|
|
if (!organizationEnabled)
|
|
{
|
|
_organization.Enabled = false;
|
|
}
|
|
|
|
await _organizationRepository.ReplaceAsync(_organization);
|
|
}
|
|
|
|
if (ownerAccessSecrets)
|
|
{
|
|
_owner.AccessSecretsManager = ownerAccessSecrets;
|
|
await _organizationUserRepository.ReplaceAsync(_owner);
|
|
}
|
|
|
|
return (_organization, _owner);
|
|
}
|
|
|
|
public async Task<Organization> CreateSmOrganizationAsync()
|
|
{
|
|
var email = $"integration-test{Guid.NewGuid()}@bitwarden.com";
|
|
await _factory.LoginWithNewAccount(email);
|
|
var (organization, owner) =
|
|
await OrganizationTestHelpers.SignUpAsync(_factory, ownerEmail: email, billingEmail: email);
|
|
return organization;
|
|
}
|
|
|
|
public async Task<(string email, OrganizationUser orgUser)> CreateNewUser(OrganizationUserType userType, bool accessSecrets)
|
|
{
|
|
var email = $"integration-test{Guid.NewGuid()}@bitwarden.com";
|
|
await _factory.LoginWithNewAccount(email);
|
|
var orgUser = await OrganizationTestHelpers.CreateUserAsync(_factory, _organization.Id, email, userType, accessSecrets);
|
|
|
|
return (email, orgUser);
|
|
}
|
|
}
|