mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-03-12 10:30:47 +01:00
Fix tests (Fix #5831)
This commit is contained in:
parent
22c6468a5d
commit
f0f698f411
2 changed files with 26 additions and 19 deletions
|
@ -125,7 +125,7 @@ namespace BTCPayServer.Tests
|
||||||
Assert.IsType<RedirectToActionResult>(response);
|
Assert.IsType<RedirectToActionResult>(response);
|
||||||
|
|
||||||
// Setting it again should show the confirmation page
|
// Setting it again should show the confirmation page
|
||||||
response = await controller.UpdateWallet(new WalletSetupViewModel {StoreId = storeId, CryptoCode = cryptoCode, DerivationScheme = oldScheme });
|
response = await controller.UpdateWallet(new WalletSetupViewModel { StoreId = storeId, CryptoCode = cryptoCode, DerivationScheme = oldScheme });
|
||||||
setupVm = (WalletSetupViewModel)Assert.IsType<ViewResult>(response).Model;
|
setupVm = (WalletSetupViewModel)Assert.IsType<ViewResult>(response).Model;
|
||||||
Assert.True(setupVm.Confirmation);
|
Assert.True(setupVm.Confirmation);
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ namespace BTCPayServer.Tests
|
||||||
|
|
||||||
// cobo vault file
|
// cobo vault file
|
||||||
var content = "{\"ExtPubKey\":\"xpub6CEqRFZ7yZxCFXuEWZBAdnC8bdvu9SRHevaoU2SsW9ZmKhrCShmbpGZWwaR15hdLURf8hg47g4TpPGaqEU8hw5LEJCE35AUhne67XNyFGBk\",\"MasterFingerprint\":\"7a7563b5\",\"DerivationPath\":\"M\\/84'\\/0'\\/0'\",\"CoboVaultFirmwareVersion\":\"1.2.0(BTC-Only)\"}";
|
var content = "{\"ExtPubKey\":\"xpub6CEqRFZ7yZxCFXuEWZBAdnC8bdvu9SRHevaoU2SsW9ZmKhrCShmbpGZWwaR15hdLURf8hg47g4TpPGaqEU8hw5LEJCE35AUhne67XNyFGBk\",\"MasterFingerprint\":\"7a7563b5\",\"DerivationPath\":\"M\\/84'\\/0'\\/0'\",\"CoboVaultFirmwareVersion\":\"1.2.0(BTC-Only)\"}";
|
||||||
response = await controller.UpdateWallet(new WalletSetupViewModel {StoreId = storeId, CryptoCode = cryptoCode, WalletFile = TestUtils.GetFormFile("cobovault.json", content)});
|
response = await controller.UpdateWallet(new WalletSetupViewModel { StoreId = storeId, CryptoCode = cryptoCode, WalletFile = TestUtils.GetFormFile("cobovault.json", content) });
|
||||||
setupVm = (WalletSetupViewModel)Assert.IsType<ViewResult>(response).Model;
|
setupVm = (WalletSetupViewModel)Assert.IsType<ViewResult>(response).Model;
|
||||||
Assert.True(setupVm.Confirmation);
|
Assert.True(setupVm.Confirmation);
|
||||||
response = await controller.UpdateWallet(setupVm);
|
response = await controller.UpdateWallet(setupVm);
|
||||||
|
@ -144,7 +144,7 @@ namespace BTCPayServer.Tests
|
||||||
|
|
||||||
// wasabi wallet file
|
// wasabi wallet file
|
||||||
content = "{\r\n \"EncryptedSecret\": \"6PYWBQ1zsukowsnTNA57UUx791aBuJusm7E4egXUmF5WGw3tcdG3cmTL57\",\r\n \"ChainCode\": \"waSIVbn8HaoovoQg/0t8IS1+ZCxGsJRGFT21i06nWnc=\",\r\n \"MasterFingerprint\": \"7a7563b5\",\r\n \"ExtPubKey\": \"xpub6CEqRFZ7yZxCFXuEWZBAdnC8bdvu9SRHevaoU2SsW9ZmKhrCShmbpGZWwaR15hdLURf8hg47g4TpPGaqEU8hw5LEJCE35AUhne67XNyFGBk\",\r\n \"PasswordVerified\": false,\r\n \"MinGapLimit\": 21,\r\n \"AccountKeyPath\": \"84'/0'/0'\",\r\n \"BlockchainState\": {\r\n \"Network\": \"RegTest\",\r\n \"Height\": \"0\"\r\n },\r\n \"HdPubKeys\": []\r\n}";
|
content = "{\r\n \"EncryptedSecret\": \"6PYWBQ1zsukowsnTNA57UUx791aBuJusm7E4egXUmF5WGw3tcdG3cmTL57\",\r\n \"ChainCode\": \"waSIVbn8HaoovoQg/0t8IS1+ZCxGsJRGFT21i06nWnc=\",\r\n \"MasterFingerprint\": \"7a7563b5\",\r\n \"ExtPubKey\": \"xpub6CEqRFZ7yZxCFXuEWZBAdnC8bdvu9SRHevaoU2SsW9ZmKhrCShmbpGZWwaR15hdLURf8hg47g4TpPGaqEU8hw5LEJCE35AUhne67XNyFGBk\",\r\n \"PasswordVerified\": false,\r\n \"MinGapLimit\": 21,\r\n \"AccountKeyPath\": \"84'/0'/0'\",\r\n \"BlockchainState\": {\r\n \"Network\": \"RegTest\",\r\n \"Height\": \"0\"\r\n },\r\n \"HdPubKeys\": []\r\n}";
|
||||||
response = await controller.UpdateWallet(new WalletSetupViewModel {StoreId = storeId, CryptoCode = cryptoCode, WalletFile = TestUtils.GetFormFile("wasabi.json", content)});
|
response = await controller.UpdateWallet(new WalletSetupViewModel { StoreId = storeId, CryptoCode = cryptoCode, WalletFile = TestUtils.GetFormFile("wasabi.json", content) });
|
||||||
setupVm = (WalletSetupViewModel)Assert.IsType<ViewResult>(response).Model;
|
setupVm = (WalletSetupViewModel)Assert.IsType<ViewResult>(response).Model;
|
||||||
Assert.True(setupVm.Confirmation);
|
Assert.True(setupVm.Confirmation);
|
||||||
response = await controller.UpdateWallet(setupVm);
|
response = await controller.UpdateWallet(setupVm);
|
||||||
|
@ -155,13 +155,13 @@ namespace BTCPayServer.Tests
|
||||||
|
|
||||||
// Can we upload coldcard settings? (Should fail, we are giving a mainnet file to a testnet network)
|
// Can we upload coldcard settings? (Should fail, we are giving a mainnet file to a testnet network)
|
||||||
content = "{\"keystore\": {\"ckcc_xpub\": \"xpub661MyMwAqRbcGVBsTGeNZN6QGVHmMHLdSA4FteGsRrEriu4pnVZMZWnruFFFXkMnyoBjyHndD3Qwcfz4MPzBUxjSevweNFQx7SAYZATtcDw\", \"xpub\": \"ypub6WWc2gWwHbdnAAyJDnR4SPL1phRh7REqrPBfZeizaQ1EmTshieRXJC3Z5YoU4wkcdKHEjQGkh6AYEzCQC1Kz3DNaWSwdc1pc8416hAjzqyD\", \"label\": \"Coldcard Import 0x60d1af8b\", \"ckcc_xfp\": 1624354699, \"type\": \"hardware\", \"hw_type\": \"coldcard\", \"derivation\": \"m/49'/0'/0'\"}, \"wallet_type\": \"standard\", \"use_encryption\": false, \"seed_version\": 17}";
|
content = "{\"keystore\": {\"ckcc_xpub\": \"xpub661MyMwAqRbcGVBsTGeNZN6QGVHmMHLdSA4FteGsRrEriu4pnVZMZWnruFFFXkMnyoBjyHndD3Qwcfz4MPzBUxjSevweNFQx7SAYZATtcDw\", \"xpub\": \"ypub6WWc2gWwHbdnAAyJDnR4SPL1phRh7REqrPBfZeizaQ1EmTshieRXJC3Z5YoU4wkcdKHEjQGkh6AYEzCQC1Kz3DNaWSwdc1pc8416hAjzqyD\", \"label\": \"Coldcard Import 0x60d1af8b\", \"ckcc_xfp\": 1624354699, \"type\": \"hardware\", \"hw_type\": \"coldcard\", \"derivation\": \"m/49'/0'/0'\"}, \"wallet_type\": \"standard\", \"use_encryption\": false, \"seed_version\": 17}";
|
||||||
response = await controller.UpdateWallet(new WalletSetupViewModel {StoreId = storeId, CryptoCode = cryptoCode, WalletFile = TestUtils.GetFormFile("coldcard-ypub.json", content)});
|
response = await controller.UpdateWallet(new WalletSetupViewModel { StoreId = storeId, CryptoCode = cryptoCode, WalletFile = TestUtils.GetFormFile("coldcard-ypub.json", content) });
|
||||||
setupVm = (WalletSetupViewModel)Assert.IsType<ViewResult>(response).Model;
|
setupVm = (WalletSetupViewModel)Assert.IsType<ViewResult>(response).Model;
|
||||||
Assert.False(setupVm.Confirmation); // Should fail, we are giving a mainnet file to a testnet network
|
Assert.False(setupVm.Confirmation); // Should fail, we are giving a mainnet file to a testnet network
|
||||||
|
|
||||||
// And with a good file? (upub)
|
// And with a good file? (upub)
|
||||||
content = "{\"keystore\": {\"ckcc_xpub\": \"tpubD6NzVbkrYhZ4YHNiuTdTmHRmbcPRLfqgyneZFCL1mkzkUBjXriQShxTh9HL34FK2mhieasJVk9EzJrUfkFqRNQBjiXgx3n5BhPkxKBoFmaS\", \"xpub\": \"upub5DBYp1qGgsTrkzCptMGZc2x18pquLwGrBw6nS59T4NViZ4cni1mGowQzziy85K8vzkp1jVtWrSkLhqk9KDfvrGeB369wGNYf39kX8rQfiLn\", \"label\": \"Coldcard Import 0x60d1af8b\", \"ckcc_xfp\": 1624354699, \"type\": \"hardware\", \"hw_type\": \"coldcard\", \"derivation\": \"m/49'/0'/0'\"}, \"wallet_type\": \"standard\", \"use_encryption\": false, \"seed_version\": 17}";
|
content = "{\"keystore\": {\"ckcc_xpub\": \"tpubD6NzVbkrYhZ4YHNiuTdTmHRmbcPRLfqgyneZFCL1mkzkUBjXriQShxTh9HL34FK2mhieasJVk9EzJrUfkFqRNQBjiXgx3n5BhPkxKBoFmaS\", \"xpub\": \"upub5DBYp1qGgsTrkzCptMGZc2x18pquLwGrBw6nS59T4NViZ4cni1mGowQzziy85K8vzkp1jVtWrSkLhqk9KDfvrGeB369wGNYf39kX8rQfiLn\", \"label\": \"Coldcard Import 0x60d1af8b\", \"ckcc_xfp\": 1624354699, \"type\": \"hardware\", \"hw_type\": \"coldcard\", \"derivation\": \"m/49'/0'/0'\"}, \"wallet_type\": \"standard\", \"use_encryption\": false, \"seed_version\": 17}";
|
||||||
response = await controller.UpdateWallet(new WalletSetupViewModel {StoreId = storeId, CryptoCode = cryptoCode, WalletFile = TestUtils.GetFormFile("coldcard-upub.json", content)});
|
response = await controller.UpdateWallet(new WalletSetupViewModel { StoreId = storeId, CryptoCode = cryptoCode, WalletFile = TestUtils.GetFormFile("coldcard-upub.json", content) });
|
||||||
setupVm = (WalletSetupViewModel)Assert.IsType<ViewResult>(response).Model;
|
setupVm = (WalletSetupViewModel)Assert.IsType<ViewResult>(response).Model;
|
||||||
Assert.True(setupVm.Confirmation);
|
Assert.True(setupVm.Confirmation);
|
||||||
response = await controller.UpdateWallet(setupVm);
|
response = await controller.UpdateWallet(setupVm);
|
||||||
|
@ -430,6 +430,7 @@ namespace BTCPayServer.Tests
|
||||||
[Fact(Timeout = TestTimeout)]
|
[Fact(Timeout = TestTimeout)]
|
||||||
[Trait("Altcoins", "Altcoins")]
|
[Trait("Altcoins", "Altcoins")]
|
||||||
[Trait("Lightning", "Lightning")]
|
[Trait("Lightning", "Lightning")]
|
||||||
|
[Trait("Integration", "Integration")]
|
||||||
public async Task CanUsePaymentMethodDropdown()
|
public async Task CanUsePaymentMethodDropdown()
|
||||||
{
|
{
|
||||||
using (var s = CreateSeleniumTester())
|
using (var s = CreateSeleniumTester())
|
||||||
|
@ -438,10 +439,10 @@ namespace BTCPayServer.Tests
|
||||||
s.Server.ActivateLightning();
|
s.Server.ActivateLightning();
|
||||||
await s.StartAsync();
|
await s.StartAsync();
|
||||||
s.GoToRegister();
|
s.GoToRegister();
|
||||||
s.RegisterNewUser();
|
s.RegisterNewUser(true);
|
||||||
s.CreateNewStore();
|
s.CreateNewStore();
|
||||||
s.AddDerivationScheme("BTC");
|
s.AddDerivationScheme("BTC");
|
||||||
|
s.EnableCheckout(Client.Models.CheckoutType.V1);
|
||||||
//check that there is no dropdown since only one payment method is set
|
//check that there is no dropdown since only one payment method is set
|
||||||
var invoiceId = s.CreateInvoice(10, "USD", "a@g.com");
|
var invoiceId = s.CreateInvoice(10, "USD", "a@g.com");
|
||||||
s.GoToInvoiceCheckout(invoiceId);
|
s.GoToInvoiceCheckout(invoiceId);
|
||||||
|
@ -454,15 +455,19 @@ namespace BTCPayServer.Tests
|
||||||
invoiceId = s.CreateInvoice(10, "USD", "a@g.com");
|
invoiceId = s.CreateInvoice(10, "USD", "a@g.com");
|
||||||
s.GoToInvoiceCheckout(invoiceId);
|
s.GoToInvoiceCheckout(invoiceId);
|
||||||
var currencyDropdownButton = s.Driver.FindElement(By.ClassName("payment__currencies"));
|
var currencyDropdownButton = s.Driver.FindElement(By.ClassName("payment__currencies"));
|
||||||
Assert.Contains("BTC", currencyDropdownButton.Text);
|
Assert.Contains("Bitcoin", currencyDropdownButton.Text);
|
||||||
|
currencyDropdownButton.Click();
|
||||||
|
IEnumerable<IWebElement> elements = null;
|
||||||
|
TestUtils.Eventually(() =>
|
||||||
|
{
|
||||||
|
elements = s.Driver.FindElement(By.ClassName("vex-content")).FindElements(By.ClassName("vexmenuitem"));
|
||||||
|
Assert.Equal(3, elements.Count());
|
||||||
|
elements.Single(element => element.Text.Contains("Litecoin")).Click();
|
||||||
|
});
|
||||||
|
currencyDropdownButton = s.Driver.FindElement(By.ClassName("payment__currencies"));
|
||||||
|
Assert.Contains("Litecoin", currencyDropdownButton.Text);
|
||||||
currencyDropdownButton.Click();
|
currencyDropdownButton.Click();
|
||||||
|
|
||||||
var elements = s.Driver.FindElement(By.ClassName("vex-content")).FindElements(By.ClassName("vexmenuitem"));
|
|
||||||
Assert.Equal(3, elements.Count);
|
|
||||||
elements.Single(element => element.Text.Contains("LTC")).Click();
|
|
||||||
currencyDropdownButton = s.Driver.FindElement(By.ClassName("payment__currencies"));
|
|
||||||
Assert.Contains("LTC", currencyDropdownButton.Text);
|
|
||||||
currencyDropdownButton.Click();
|
|
||||||
|
|
||||||
elements = s.Driver.FindElement(By.ClassName("vex-content")).FindElements(By.ClassName("vexmenuitem"));
|
elements = s.Driver.FindElement(By.ClassName("vex-content")).FindElements(By.ClassName("vexmenuitem"));
|
||||||
elements.Single(element => element.Text.Contains("Lightning")).Click();
|
elements.Single(element => element.Text.Contains("Lightning")).Click();
|
||||||
|
|
|
@ -1480,6 +1480,7 @@ namespace BTCPayServer.Tests
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
[Trait("Lightning", "Lightning")]
|
[Trait("Lightning", "Lightning")]
|
||||||
|
[Trait("Integration", "Integration")]
|
||||||
public async Task CanSetPaymentMethodLimits()
|
public async Task CanSetPaymentMethodLimits()
|
||||||
{
|
{
|
||||||
using var tester = CreateServerTester();
|
using var tester = CreateServerTester();
|
||||||
|
@ -1515,9 +1516,10 @@ namespace BTCPayServer.Tests
|
||||||
ItemDesc = "Some description",
|
ItemDesc = "Some description",
|
||||||
FullNotifications = true
|
FullNotifications = true
|
||||||
}, Facade.Merchant);
|
}, Facade.Merchant);
|
||||||
|
// LN and LNURL
|
||||||
Assert.Single(invoice.CryptoInfo);
|
Assert.Equal(2, invoice.CryptoInfo.Length);
|
||||||
Assert.Equal(PaymentTypes.LightningLike.ToString(), invoice.CryptoInfo[0].PaymentType);
|
Assert.Contains(invoice.CryptoInfo, c => c.PaymentType == PaymentTypes.LNURLPay.ToString());
|
||||||
|
Assert.Contains(invoice.CryptoInfo, c => c.PaymentType == PaymentTypes.LightningLike.ToString());
|
||||||
|
|
||||||
// Let's replicate https://github.com/btcpayserver/btcpayserver/issues/2963
|
// Let's replicate https://github.com/btcpayserver/btcpayserver/issues/2963
|
||||||
// We allow BTC for more than 5 USD, and LN for less than 150. The default is LN, so the default
|
// We allow BTC for more than 5 USD, and LN for less than 150. The default is LN, so the default
|
||||||
|
|
Loading…
Add table
Reference in a new issue