diff --git a/BTCPayServer.Tests/SeleniumTester.cs b/BTCPayServer.Tests/SeleniumTester.cs index fc07aca12..3e742ea0e 100644 --- a/BTCPayServer.Tests/SeleniumTester.cs +++ b/BTCPayServer.Tests/SeleniumTester.cs @@ -109,12 +109,14 @@ namespace BTCPayServer.Tests return (usr, Driver.FindElement(By.Id("Id")).GetAttribute("value")); } - public string GenerateWallet(string cryptoCode = "BTC", string seed = "") + public string GenerateWallet(string cryptoCode = "BTC", string seed = "", bool importkeys = false, bool privkeys = false) { Driver.FindElement(By.Id($"Modify{cryptoCode}")).ForceClick(); Driver.FindElement(By.Id("import-from-btn")).ForceClick(); Driver.FindElement(By.Id("nbxplorergeneratewalletbtn")).ForceClick(); Driver.FindElement(By.Id("ExistingMnemonic")).SendKeys(seed); + SetCheckbox(Driver.FindElement(By.Id("SavePrivateKeys")), privkeys); + SetCheckbox(Driver.FindElement(By.Id("ImportKeysToRPC")), importkeys); Driver.FindElement(By.Id("btn-generate")).ForceClick(); AssertHappyMessage(); if (string.IsNullOrEmpty(seed)) diff --git a/BTCPayServer.Tests/SeleniumTests.cs b/BTCPayServer.Tests/SeleniumTests.cs index cf5d439be..79e7a50c7 100644 --- a/BTCPayServer.Tests/SeleniumTests.cs +++ b/BTCPayServer.Tests/SeleniumTests.cs @@ -412,13 +412,23 @@ namespace BTCPayServer.Tests // In this test, we try to spend from a manual seed. We import the xpub 49'/0'/0', then try to use the seed // to sign the transaction - var mnemonic = s.GenerateWallet("BTC", ""); - - var root = new Mnemonic(mnemonic).DeriveExtKey(); + var mnemonic = s.GenerateWallet("BTC", "", true, false); + var invoiceId = s.CreateInvoice(storeId.storeId); var invoice = await s.Server.PayTester.InvoiceRepository.GetInvoice( invoiceId); var address = invoice.EntityToDTO().Addresses["BTC"]; + + var result = await s.Server.ExplorerNode.GetAddressInfoAsync(BitcoinAddress.Create(address, Network.RegTest)); + Assert.True(result.IsWatchOnly); + s.GoToStore(storeId.storeId); + mnemonic = s.GenerateWallet("BTC", "", true, true); + var root = new Mnemonic(mnemonic).DeriveExtKey(); + invoiceId = s.CreateInvoice(storeId.storeId); + invoice = await s.Server.PayTester.InvoiceRepository.GetInvoice( invoiceId); + address = invoice.EntityToDTO().Addresses["BTC"]; + result = await s.Server.ExplorerNode.GetAddressInfoAsync(BitcoinAddress.Create(address, Network.RegTest)); + Assert.False(result.IsWatchOnly); var tx = s.Server.ExplorerNode.SendToAddress(BitcoinAddress.Create(address, Network.RegTest), Money.Coins(3.0m)); s.Server.ExplorerNode.Generate(1);