Add Metrics test

This commit is contained in:
Timothy Baldridge 2020-04-08 16:28:50 -06:00
parent ccb6f93901
commit b1909a0851
5 changed files with 40 additions and 4 deletions

View File

@ -0,0 +1,34 @@
using System;
using System.Linq;
using System.Threading.Tasks;
using Dapper;
using Wabbajack.BuildServer.Model.Models;
using Wabbajack.Common;
using Wabbajack.Lib;
using Xunit;
using Xunit.Abstractions;
namespace Wabbajack.BuildServer.Test
{
public class MetricsTests : ABuildServerSystemTest
{
public MetricsTests(ITestOutputHelper output, SingletonAdaptor<BuildServerFixture> fixture) : base(output, fixture)
{
}
[Fact]
public async Task CanSendMetrics()
{
var action = "action_" + Guid.NewGuid().ToString();
var subject = "subject_" + Guid.NewGuid().ToString();
await Metrics.Send(action, subject);
var sql = Fixture.GetService<SqlService>();
var conn = await sql.Open();
var result = await conn.QueryFirstOrDefaultAsync<string>("SELECT Subject FROM dbo.Metrics WHERE Action = @Action",
new {Action = action});
Assert.Equal(subject, result);
}
}
}

View File

@ -39,6 +39,7 @@ namespace Wabbajack.BuildServer.Test
[Fact]
public async Task CanValidateModLists()
{
await ClearJobQueue();
var modlists = await MakeModList();
Consts.ModlistMetadataURL = modlists.ToString();
Utils.Log("Updating modlists");

View File

@ -1,7 +1,9 @@
using System;
using Wabbajack.Common.Serialization.Json;
namespace Wabbajack.BuildServer.Models.JobQueue
{
[JsonName("JobResult")]
public class JobResult
{
public JobResultType ResultType { get; set; }

View File

@ -30,7 +30,7 @@ namespace Wabbajack.BuildServer.Model.Models
}
private async Task<SqlConnection> Open()
public async Task<SqlConnection> Open()
{
var conn = new SqlConnection(_settings.SqlConnection);
await conn.OpenAsync();
@ -201,8 +201,7 @@ namespace Wabbajack.BuildServer.Model.Models
new {
job.Id,
Success = job.Result.ResultType == JobResultType.Success,
ResultPayload = job.Result.ToJson()
ResultContent = job.Result.ToJson()
});
if (job.OnSuccess != null)

View File

@ -33,7 +33,7 @@ namespace Wabbajack.Common
{
client.DefaultRequestHeaders.Add(Consts.MetricsKeyHeader,
Utils.FromEncryptedJson<string>(Consts.MetricsKeyHeader));
await client.GetAsync($"http://build.wabbajack.org/metrics/{action}/{value}");
await client.GetAsync($"{Consts.WabbajackBuildServerUri}metrics/{action}/{value}");
}
catch (Exception)
{