mirror of
https://github.com/bitwarden/server.git
synced 2024-11-21 12:05:42 +01:00
Fix json only serializing base properties (#1840)
* Fix json only serializing base properties * Run formatting * Switch to returning concrete type * Update method name
This commit is contained in:
parent
f56d2ecae5
commit
b1cd42e394
@ -71,7 +71,7 @@ namespace Bit.Api.Models.Request
|
||||
existingSend.Data = JsonSerializer.Serialize(fileData, JsonHelpers.IgnoreWritingNull);
|
||||
break;
|
||||
case SendType.Text:
|
||||
existingSend.Data = JsonSerializer.Serialize(ToSendData(), JsonHelpers.IgnoreWritingNull);
|
||||
existingSend.Data = JsonSerializer.Serialize(ToSendTextData(), JsonHelpers.IgnoreWritingNull);
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentException("Unsupported type: " + nameof(Type) + ".");
|
||||
@ -128,7 +128,7 @@ namespace Bit.Api.Models.Request
|
||||
return existingSend;
|
||||
}
|
||||
|
||||
private SendData ToSendData()
|
||||
private SendTextData ToSendTextData()
|
||||
{
|
||||
return new SendTextData(Name, Notes, Text.Text, Text.Hidden);
|
||||
}
|
||||
|
61
test/Api.Test/Models/Request/SendRequestModelTests.cs
Normal file
61
test/Api.Test/Models/Request/SendRequestModelTests.cs
Normal file
@ -0,0 +1,61 @@
|
||||
using System;
|
||||
using System.Text.Json;
|
||||
using Bit.Api.Models;
|
||||
using Bit.Api.Models.Request;
|
||||
using Bit.Core.Enums;
|
||||
using Bit.Core.Services;
|
||||
using Bit.Test.Common.Helpers;
|
||||
using NSubstitute;
|
||||
using Xunit;
|
||||
|
||||
namespace Bit.Api.Test.Models.Request
|
||||
{
|
||||
public class SendRequestModelTests
|
||||
{
|
||||
[Fact]
|
||||
public void ToSend_Text_Success()
|
||||
{
|
||||
var deletionDate = DateTime.UtcNow.AddDays(5);
|
||||
var sendRequest = new SendRequestModel
|
||||
{
|
||||
DeletionDate = deletionDate,
|
||||
Disabled = false,
|
||||
ExpirationDate = null,
|
||||
HideEmail = false,
|
||||
Key = "encrypted_key",
|
||||
MaxAccessCount = null,
|
||||
Name = "encrypted_name",
|
||||
Notes = null,
|
||||
Password = "Password",
|
||||
Text = new SendTextModel()
|
||||
{
|
||||
Hidden = false,
|
||||
Text = "encrypted_text"
|
||||
},
|
||||
Type = SendType.Text,
|
||||
};
|
||||
|
||||
var sendService = Substitute.For<ISendService>();
|
||||
sendService.HashPassword(Arg.Any<string>())
|
||||
.Returns((info) => $"hashed_{(string)info[0]}");
|
||||
|
||||
var send = sendRequest.ToSend(Guid.NewGuid(), sendService);
|
||||
|
||||
Assert.Equal(deletionDate, send.DeletionDate);
|
||||
Assert.False(send.Disabled);
|
||||
Assert.Null(send.ExpirationDate);
|
||||
Assert.False(send.HideEmail);
|
||||
Assert.Equal("encrypted_key", send.Key);
|
||||
Assert.Equal("hashed_Password", send.Password);
|
||||
|
||||
using var jsonDocument = JsonDocument.Parse(send.Data);
|
||||
var root = jsonDocument.RootElement;
|
||||
var text = AssertHelper.AssertJsonProperty(root, "Text", JsonValueKind.String).GetString();
|
||||
Assert.Equal("encrypted_text", text);
|
||||
AssertHelper.AssertJsonProperty(root, "Hidden", JsonValueKind.False);
|
||||
Assert.False(root.TryGetProperty("Notes", out var _));
|
||||
var name = AssertHelper.AssertJsonProperty(root, "Name", JsonValueKind.String).GetString();
|
||||
Assert.Equal("encrypted_name", name);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user