mirror of
https://github.com/bitwarden/server.git
synced 2025-06-30 15:42:48 -05:00
WIP changes for Invite User optimization from Scim
This commit is contained in:
@ -0,0 +1,54 @@
|
||||
using Bit.Core.AdminConsole.OrganizationFeatures.OrganizationUsers.InviteUsers.Models;
|
||||
using Bit.Core.Enums;
|
||||
using Bit.Core.Exceptions;
|
||||
using Bit.Core.Models.Data;
|
||||
using Bit.Test.Common.AutoFixture.Attributes;
|
||||
using Xunit;
|
||||
using static Bit.Core.AdminConsole.OrganizationFeatures.OrganizationUsers.InviteUsers.Models.InviteOrganizationUserErrorMessages;
|
||||
|
||||
namespace Bit.Core.Test.AdminConsole.Models;
|
||||
|
||||
public class InviteOrganizationUserRequestTests
|
||||
{
|
||||
[Theory]
|
||||
[BitAutoData]
|
||||
public void Create_WhenPassedInvalidEmail_ThrowsException(string email,
|
||||
OrganizationUserType type, Permissions permissions, bool accessSecretsManager)
|
||||
{
|
||||
var action = () => OrganizationUserSingleEmailInvite.Create(email, [], type, permissions, accessSecretsManager);
|
||||
|
||||
var exception = Assert.Throws<BadRequestException>(action);
|
||||
|
||||
Assert.Equal(InvalidEmailErrorMessage, exception.Message);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[BitAutoData]
|
||||
public void Create_WhenPassedInvalidCollectionAccessConfiguration_ThrowsException(OrganizationUserType type, Permissions permissions, bool accessSecretsManager)
|
||||
{
|
||||
var validEmail = "test@email.com";
|
||||
|
||||
var invalidCollectionConfiguration = new CollectionAccessSelection { Manage = true, HidePasswords = true };
|
||||
|
||||
var action = () =>
|
||||
OrganizationUserSingleEmailInvite.Create(validEmail, [invalidCollectionConfiguration], type, permissions, accessSecretsManager);
|
||||
|
||||
var exception = Assert.Throws<BadRequestException>(action);
|
||||
|
||||
Assert.Equal(InvalidCollectionConfigurationErrorMessage, exception.Message);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[BitAutoData]
|
||||
public void Create_WhenPassedValidArguments_ReturnsInvite(OrganizationUserType type, Permissions permissions, bool accessSecretsManager)
|
||||
{
|
||||
const string validEmail = "test@email.com";
|
||||
var validCollectionConfiguration = new CollectionAccessSelection { Id = Guid.NewGuid(), Manage = true };
|
||||
|
||||
var invite = OrganizationUserSingleEmailInvite.Create(validEmail, [validCollectionConfiguration], type, permissions, accessSecretsManager);
|
||||
|
||||
Assert.NotNull(invite);
|
||||
Assert.Equal(validEmail, invite.Email);
|
||||
Assert.Contains(validCollectionConfiguration.Id, invite.AccessibleCollections);
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
using Bit.Core.AdminConsole.OrganizationFeatures.OrganizationUsers.InviteUsers.Models;
|
||||
using Bit.Core.Enums;
|
||||
using Bit.Core.Exceptions;
|
||||
using Bit.Core.Models.Data;
|
||||
using Bit.Test.Common.AutoFixture.Attributes;
|
||||
using Xunit;
|
||||
|
||||
using static Bit.Core.AdminConsole.OrganizationFeatures.OrganizationUsers.InviteUsers.Models.InviteOrganizationUserErrorMessages;
|
||||
|
||||
namespace Bit.Core.Test.AdminConsole.Models;
|
||||
|
||||
public class InviteOrganizationUsersRequestTests
|
||||
{
|
||||
[Theory]
|
||||
[BitAutoData]
|
||||
public void Create_WhenPassedInvalidEmails_ThrowsException(string[] emails, OrganizationUserType type, Permissions permissions, string externalId)
|
||||
{
|
||||
var action = () => OrganizationUserInvite.Create(emails, [], type, permissions, externalId, false);
|
||||
|
||||
var exception = Assert.Throws<BadRequestException>(action);
|
||||
|
||||
Assert.Contains(InvalidEmailErrorMessage, exception.Message);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Create_WhenPassedInvalidCollectionAccessConfiguration_ThrowsException()
|
||||
{
|
||||
const string validEmail = "test@email.com";
|
||||
|
||||
var invalidCollectionConfiguration = new CollectionAccessSelection
|
||||
{
|
||||
Manage = true,
|
||||
HidePasswords = true
|
||||
};
|
||||
|
||||
var action = () => OrganizationUserInvite.Create([validEmail], [invalidCollectionConfiguration], default, default, default, false);
|
||||
|
||||
var exception = Assert.Throws<BadRequestException>(action);
|
||||
|
||||
Assert.Equal(InvalidCollectionConfigurationErrorMessage, exception.Message);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Create_WhenPassedValidArguments_ReturnsInvite()
|
||||
{
|
||||
const string validEmail = "test@email.com";
|
||||
var validCollectionConfiguration = new CollectionAccessSelection { Id = Guid.NewGuid(), Manage = true };
|
||||
|
||||
var invite = OrganizationUserInvite.Create([validEmail], [validCollectionConfiguration], default, default, default, false);
|
||||
|
||||
Assert.NotNull(invite);
|
||||
Assert.Contains(validEmail, invite.Emails);
|
||||
Assert.Contains(validCollectionConfiguration.Id, invite.AccessibleCollections);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user