mirror of
https://github.com/aljazceru/btcpayserver.git
synced 2025-12-18 14:34:23 +01:00
Fix tests
This commit is contained in:
@@ -11,6 +11,7 @@ using NBitcoin;
|
|||||||
using NBitpayClient;
|
using NBitpayClient;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
using Xunit.Abstractions;
|
using Xunit.Abstractions;
|
||||||
|
using BTCPayServer.Models;
|
||||||
|
|
||||||
namespace BTCPayServer.Tests
|
namespace BTCPayServer.Tests
|
||||||
{
|
{
|
||||||
@@ -70,7 +71,7 @@ namespace BTCPayServer.Tests
|
|||||||
BitcoinAddress.Create(vmLedger.HintChange, user.SupportedNetwork.NBitcoinNetwork);
|
BitcoinAddress.Create(vmLedger.HintChange, user.SupportedNetwork.NBitcoinNetwork);
|
||||||
Assert.NotNull(vmLedger.WebsocketPath);
|
Assert.NotNull(vmLedger.WebsocketPath);
|
||||||
|
|
||||||
var redirectedPSBT = (string)Assert.IsType<RedirectToActionResult>(await walletController.WalletSend(walletId, sendModel, command: "analyze-psbt")).RouteValues["psbt"];
|
string redirectedPSBT = AssertRedirectedPSBT(await walletController.WalletSend(walletId, sendModel, command: "analyze-psbt"));
|
||||||
var vmPSBT = await walletController.WalletPSBT(walletId, new WalletPSBTViewModel() { PSBT = redirectedPSBT }).AssertViewModelAsync<WalletPSBTViewModel>();
|
var vmPSBT = await walletController.WalletPSBT(walletId, new WalletPSBTViewModel() { PSBT = redirectedPSBT }).AssertViewModelAsync<WalletPSBTViewModel>();
|
||||||
var unsignedPSBT = PSBT.Parse(vmPSBT.PSBT, user.SupportedNetwork.NBitcoinNetwork);
|
var unsignedPSBT = PSBT.Parse(vmPSBT.PSBT, user.SupportedNetwork.NBitcoinNetwork);
|
||||||
Assert.NotNull(vmPSBT.Decoded);
|
Assert.NotNull(vmPSBT.Decoded);
|
||||||
@@ -97,9 +98,9 @@ namespace BTCPayServer.Tests
|
|||||||
var combineVM = await walletController.WalletPSBT(walletId, vmPSBT, "combine").AssertViewModelAsync<WalletPSBTCombineViewModel>();
|
var combineVM = await walletController.WalletPSBT(walletId, vmPSBT, "combine").AssertViewModelAsync<WalletPSBTCombineViewModel>();
|
||||||
Assert.Equal(vmPSBT.PSBT, combineVM.OtherPSBT);
|
Assert.Equal(vmPSBT.PSBT, combineVM.OtherPSBT);
|
||||||
combineVM.PSBT = signedPSBT.ToBase64();
|
combineVM.PSBT = signedPSBT.ToBase64();
|
||||||
vmPSBT = await walletController.WalletPSBTCombine(walletId, combineVM).AssertViewModelAsync<WalletPSBTViewModel>();
|
var psbt = AssertRedirectedPSBT(await walletController.WalletPSBTCombine(walletId, combineVM));
|
||||||
|
|
||||||
var signedPSBT2 = PSBT.Parse(vmPSBT.PSBT, user.SupportedNetwork.NBitcoinNetwork);
|
var signedPSBT2 = PSBT.Parse(psbt, user.SupportedNetwork.NBitcoinNetwork);
|
||||||
Assert.True(signedPSBT.TryFinalize(out _));
|
Assert.True(signedPSBT.TryFinalize(out _));
|
||||||
Assert.True(signedPSBT2.TryFinalize(out _));
|
Assert.True(signedPSBT2.TryFinalize(out _));
|
||||||
Assert.Equal(signedPSBT, signedPSBT2);
|
Assert.Equal(signedPSBT, signedPSBT2);
|
||||||
@@ -107,19 +108,27 @@ namespace BTCPayServer.Tests
|
|||||||
// Can use uploaded file?
|
// Can use uploaded file?
|
||||||
combineVM.PSBT = null;
|
combineVM.PSBT = null;
|
||||||
combineVM.UploadedPSBTFile = TestUtils.GetFormFile("signedPSBT", signedPSBT.ToBytes());
|
combineVM.UploadedPSBTFile = TestUtils.GetFormFile("signedPSBT", signedPSBT.ToBytes());
|
||||||
vmPSBT = await walletController.WalletPSBTCombine(walletId, combineVM).AssertViewModelAsync<WalletPSBTViewModel>();
|
psbt = AssertRedirectedPSBT(await walletController.WalletPSBTCombine(walletId, combineVM));
|
||||||
signedPSBT2 = PSBT.Parse(vmPSBT.PSBT, user.SupportedNetwork.NBitcoinNetwork);
|
signedPSBT2 = PSBT.Parse(psbt, user.SupportedNetwork.NBitcoinNetwork);
|
||||||
Assert.True(signedPSBT.TryFinalize(out _));
|
Assert.True(signedPSBT.TryFinalize(out _));
|
||||||
Assert.True(signedPSBT2.TryFinalize(out _));
|
Assert.True(signedPSBT2.TryFinalize(out _));
|
||||||
Assert.Equal(signedPSBT, signedPSBT2);
|
Assert.Equal(signedPSBT, signedPSBT2);
|
||||||
|
|
||||||
var ready = (await walletController.WalletPSBTReady(walletId, signedPSBT.ToBase64())).AssertViewModel<WalletPSBTReadyViewModel>();
|
var ready = (await walletController.WalletPSBTReady(walletId, signedPSBT.ToBase64())).AssertViewModel<WalletPSBTReadyViewModel>();
|
||||||
Assert.Equal(signedPSBT.ToBase64(), ready.PSBT);
|
Assert.Equal(signedPSBT.ToBase64(), ready.PSBT);
|
||||||
redirect = Assert.IsType<RedirectToActionResult>(await walletController.WalletPSBTReady(walletId, ready, command: "analyze-psbt"));
|
psbt = AssertRedirectedPSBT(await walletController.WalletPSBTReady(walletId, ready, command: "analyze-psbt"));
|
||||||
Assert.Equal(signedPSBT.ToBase64(), (string)redirect.RouteValues["psbt"]);
|
Assert.Equal(signedPSBT.ToBase64(), psbt);
|
||||||
redirect = Assert.IsType<RedirectToActionResult>(await walletController.WalletPSBTReady(walletId, ready, command: "broadcast"));
|
redirect = Assert.IsType<RedirectToActionResult>(await walletController.WalletPSBTReady(walletId, ready, command: "broadcast"));
|
||||||
Assert.Equal(nameof(walletController.WalletTransactions), redirect.ActionName);
|
Assert.Equal(nameof(walletController.WalletTransactions), redirect.ActionName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static string AssertRedirectedPSBT(IActionResult view)
|
||||||
|
{
|
||||||
|
var postRedirectView = Assert.IsType<ViewResult>(view);
|
||||||
|
var postRedirectViewModel = Assert.IsType<PostRedirectViewModel>(postRedirectView.Model);
|
||||||
|
var redirectedPSBT = postRedirectViewModel.Parameters.Single(p => p.Key == "psbt").Value;
|
||||||
|
return redirectedPSBT;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -465,7 +465,7 @@ namespace BTCPayServer.Controllers
|
|||||||
|
|
||||||
private IActionResult RedirectToWalletPSBT(WalletId walletId, PSBT psbt, string fileName = null)
|
private IActionResult RedirectToWalletPSBT(WalletId walletId, PSBT psbt, string fileName = null)
|
||||||
{
|
{
|
||||||
var vm = new PostRedictViewModel()
|
var vm = new PostRedirectViewModel()
|
||||||
{
|
{
|
||||||
AspController = "Wallets",
|
AspController = "Wallets",
|
||||||
AspAction = nameof(WalletPSBT),
|
AspAction = nameof(WalletPSBT),
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace BTCPayServer.Models
|
namespace BTCPayServer.Models
|
||||||
{
|
{
|
||||||
public class PostRedictViewModel
|
public class PostRedirectViewModel
|
||||||
{
|
{
|
||||||
public string AspAction { get; set; }
|
public string AspAction { get; set; }
|
||||||
public string AspController { get; set; }
|
public string AspController { get; set; }
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
@model PostRedictViewModel
|
@model PostRedirectViewModel
|
||||||
@{
|
@{
|
||||||
Layout = null;
|
Layout = null;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user