Make sure BTCPay is operational before starting tests

This commit is contained in:
nicolas.dorier 2019-05-14 18:35:22 +09:00
parent 7b69e334d7
commit 00e24ab249
No known key found for this signature in database
GPG Key ID: 6618763EF09186FE
2 changed files with 31 additions and 6 deletions

View File

@ -37,6 +37,7 @@ using Xunit;
using BTCPayServer.Services; using BTCPayServer.Services;
using System.Net.Http; using System.Net.Http;
using Microsoft.AspNetCore.Hosting.Server.Features; using Microsoft.AspNetCore.Hosting.Server.Features;
using System.Threading.Tasks;
namespace BTCPayServer.Tests namespace BTCPayServer.Tests
{ {
@ -158,11 +159,6 @@ namespace BTCPayServer.Tests
InvoiceRepository = (InvoiceRepository)_Host.Services.GetService(typeof(InvoiceRepository)); InvoiceRepository = (InvoiceRepository)_Host.Services.GetService(typeof(InvoiceRepository));
StoreRepository = (StoreRepository)_Host.Services.GetService(typeof(StoreRepository)); StoreRepository = (StoreRepository)_Host.Services.GetService(typeof(StoreRepository));
Networks = (BTCPayNetworkProvider)_Host.Services.GetService(typeof(BTCPayNetworkProvider)); Networks = (BTCPayNetworkProvider)_Host.Services.GetService(typeof(BTCPayNetworkProvider));
var dashBoard = (NBXplorerDashboard)_Host.Services.GetService(typeof(NBXplorerDashboard));
while(!dashBoard.IsFullySynched())
{
Thread.Sleep(10);
}
if (MockRates) if (MockRates)
{ {
@ -223,6 +219,35 @@ namespace BTCPayServer.Tests
}); });
rateProvider.Providers.Add("bittrex", bittrex); rateProvider.Providers.Add("bittrex", bittrex);
} }
WaitSiteIsOperational().GetAwaiter().GetResult();
}
private async Task WaitSiteIsOperational()
{
var synching = WaitIsFullySynched();
var accessingHomepage = WaitCanAccessHomepage();
await Task.WhenAll(synching, accessingHomepage).ConfigureAwait(false);
}
private async Task WaitCanAccessHomepage()
{
var resp = await HttpClient.GetAsync("/").ConfigureAwait(false);
while (resp.StatusCode != HttpStatusCode.OK)
{
await Task.Delay(10).ConfigureAwait(false);
}
}
private async Task WaitIsFullySynched()
{
var dashBoard = GetService<NBXplorerDashboard>();
while (!dashBoard.IsFullySynched())
{
await Task.Delay(10).ConfigureAwait(false);
}
} }
private string FindBTCPayServerDirectory() private string FindBTCPayServerDirectory()

View File

@ -19,7 +19,6 @@ namespace BTCPayServer.Tests
public static SeleniumTester Create([CallerMemberNameAttribute] string scope = null) public static SeleniumTester Create([CallerMemberNameAttribute] string scope = null)
{ {
var server = ServerTester.Create(scope); var server = ServerTester.Create(scope);
return new SeleniumTester() return new SeleniumTester()
{ {
@ -45,6 +44,7 @@ namespace BTCPayServer.Tests
} }
Logs.Tester.LogInformation("Selenium: Browsing to " + Server.PayTester.ServerUri); Logs.Tester.LogInformation("Selenium: Browsing to " + Server.PayTester.ServerUri);
Driver.Navigate().GoToUrl(Server.PayTester.ServerUri); Driver.Navigate().GoToUrl(Server.PayTester.ServerUri);
Driver.AssertNoError();
} }