mirror of
https://github.com/bitwarden/server.git
synced 2025-06-30 15:42:48 -05:00
[PM-19883] Add untrust devices endpoint (#5619)
* Add untrust devices endpoint * Fix tests * Update src/Core/Auth/UserFeatures/DeviceTrust/UntrustDevicesCommand.cs Co-authored-by: Jared Snider <116684653+JaredSnider-Bitwarden@users.noreply.github.com> * Fix whitespace --------- Co-authored-by: Jared Snider <116684653+JaredSnider-Bitwarden@users.noreply.github.com>
This commit is contained in:
@ -0,0 +1,55 @@
|
||||
using Bit.Core.Auth.UserFeatures.DeviceTrust;
|
||||
using Bit.Core.Entities;
|
||||
using Bit.Core.Repositories;
|
||||
using Bit.Test.Common.AutoFixture;
|
||||
using Bit.Test.Common.AutoFixture.Attributes;
|
||||
using NSubstitute;
|
||||
using Xunit;
|
||||
|
||||
namespace Bit.Core.Test.Auth.UserFeatures.WebAuthnLogin;
|
||||
|
||||
[SutProviderCustomize]
|
||||
public class UntrustDevicesCommandTests
|
||||
{
|
||||
[Theory, BitAutoData]
|
||||
public async Task SetsKeysToNull(SutProvider<UntrustDevicesCommand> sutProvider, User user)
|
||||
{
|
||||
var deviceId = Guid.NewGuid();
|
||||
// Arrange
|
||||
sutProvider.GetDependency<IDeviceRepository>()
|
||||
.GetManyByUserIdAsync(user.Id)
|
||||
.Returns([new Device
|
||||
{
|
||||
Id = deviceId,
|
||||
EncryptedPrivateKey = "encryptedPrivateKey",
|
||||
EncryptedPublicKey = "encryptedPublicKey",
|
||||
EncryptedUserKey = "encryptedUserKey"
|
||||
}]);
|
||||
|
||||
// Act
|
||||
await sutProvider.Sut.UntrustDevices(user, new List<Guid> { deviceId });
|
||||
|
||||
// Assert
|
||||
await sutProvider.GetDependency<IDeviceRepository>()
|
||||
.Received()
|
||||
.UpsertAsync(Arg.Is<Device>(d =>
|
||||
d.Id == deviceId &&
|
||||
d.EncryptedPrivateKey == null &&
|
||||
d.EncryptedPublicKey == null &&
|
||||
d.EncryptedUserKey == null));
|
||||
}
|
||||
|
||||
[Theory, BitAutoData]
|
||||
public async Task RejectsWrongUser(SutProvider<UntrustDevicesCommand> sutProvider, User user)
|
||||
{
|
||||
var deviceId = Guid.NewGuid();
|
||||
// Arrange
|
||||
sutProvider.GetDependency<IDeviceRepository>()
|
||||
.GetManyByUserIdAsync(user.Id)
|
||||
.Returns([]);
|
||||
|
||||
// Act
|
||||
await Assert.ThrowsAsync<UnauthorizedAccessException>(async () =>
|
||||
await sutProvider.Sut.UntrustDevices(user, new List<Guid> { deviceId }));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user