Fix build and code structure improvements. New but essential UI functionality. CI improvements. Documentation improvements. AI module improvements.
This commit is contained in:
@@ -13,7 +13,8 @@ using Microsoft.IdentityModel.Tokens;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using StellaOps.Notify.Engine;
|
||||
using StellaOps.Notify.Models;
|
||||
|
||||
using Xunit;
|
||||
using Xunit.v3;
|
||||
|
||||
using StellaOps.TestKit;
|
||||
namespace StellaOps.Notify.WebService.Tests;
|
||||
@@ -76,9 +77,9 @@ public sealed class CrudEndpointsTests : IClassFixture<WebApplicationFactory<Pro
|
||||
handler.ValidateToken(token, parameters, out _);
|
||||
}
|
||||
|
||||
public Task InitializeAsync() => Task.CompletedTask;
|
||||
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
|
||||
|
||||
public Task DisposeAsync() => Task.CompletedTask;
|
||||
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
|
||||
|
||||
[Trait("Category", TestCategories.Unit)]
|
||||
[Fact]
|
||||
@@ -188,7 +189,7 @@ public sealed class CrudEndpointsTests : IClassFixture<WebApplicationFactory<Pro
|
||||
""")!;
|
||||
|
||||
var acquireResponse = await PostAsync(client, "/api/v1/notify/locks/acquire", acquirePayload);
|
||||
var acquireContent = JsonNode.Parse(await acquireResponse.Content.ReadAsStringAsync());
|
||||
var acquireContent = JsonNode.Parse(await acquireResponse.Content.ReadAsStringAsync(CancellationToken.None));
|
||||
Assert.True(acquireContent? ["acquired"]?.GetValue<bool>());
|
||||
|
||||
await PostAsync(client, "/api/v1/notify/locks/release", JsonNode.Parse("""
|
||||
@@ -199,7 +200,7 @@ public sealed class CrudEndpointsTests : IClassFixture<WebApplicationFactory<Pro
|
||||
""")!);
|
||||
|
||||
var secondAcquire = await PostAsync(client, "/api/v1/notify/locks/acquire", acquirePayload);
|
||||
var secondContent = JsonNode.Parse(await secondAcquire.Content.ReadAsStringAsync());
|
||||
var secondContent = JsonNode.Parse(await secondAcquire.Content.ReadAsStringAsync(CancellationToken.None));
|
||||
Assert.True(secondContent? ["acquired"]?.GetValue<bool>());
|
||||
}
|
||||
|
||||
@@ -226,7 +227,7 @@ public sealed class CrudEndpointsTests : IClassFixture<WebApplicationFactory<Pro
|
||||
var response = await PostAsync(client, "/api/v1/notify/channels/channel-test/test", payload);
|
||||
Assert.Equal(HttpStatusCode.Accepted, response.StatusCode);
|
||||
|
||||
var json = JsonNode.Parse(await response.Content.ReadAsStringAsync())!.AsObject();
|
||||
var json = JsonNode.Parse(await response.Content.ReadAsStringAsync(CancellationToken.None))!.AsObject();
|
||||
Assert.Equal("tenant-web", json["tenantId"]?.GetValue<string>());
|
||||
Assert.Equal("channel-test", json["channelId"]?.GetValue<string>());
|
||||
Assert.NotNull(json["queuedAt"]);
|
||||
@@ -298,7 +299,6 @@ public sealed class CrudEndpointsTests : IClassFixture<WebApplicationFactory<Pro
|
||||
builder.ConfigureServices(services =>
|
||||
{
|
||||
services.AddSingleton<INotifyChannelTestProvider, FakeSlackTestProvider>();
|
||||
using StellaOps.TestKit;
|
||||
});
|
||||
});
|
||||
|
||||
@@ -321,7 +321,7 @@ using StellaOps.TestKit;
|
||||
var response = await PostAsync(client, "/api/v1/notify/channels/channel-provider/test", payload);
|
||||
Assert.Equal(HttpStatusCode.Accepted, response.StatusCode);
|
||||
|
||||
var json = JsonNode.Parse(await response.Content.ReadAsStringAsync())!.AsObject();
|
||||
var json = JsonNode.Parse(await response.Content.ReadAsStringAsync(CancellationToken.None))!.AsObject();
|
||||
var preview = json["preview"]?.AsObject();
|
||||
Assert.NotNull(preview);
|
||||
Assert.Equal("#ops-alerts", preview?["target"]?.GetValue<string>());
|
||||
@@ -379,7 +379,7 @@ using StellaOps.TestKit;
|
||||
{
|
||||
var response = await SendAsync(client, HttpMethod.Get, path, useOperatorToken);
|
||||
response.EnsureSuccessStatusCode();
|
||||
var content = await response.Content.ReadAsStringAsync();
|
||||
var content = await response.Content.ReadAsStringAsync(CancellationToken.None);
|
||||
return JsonNode.Parse(content) as JsonArray;
|
||||
}
|
||||
|
||||
@@ -387,7 +387,7 @@ using StellaOps.TestKit;
|
||||
{
|
||||
var response = await SendAsync(client, HttpMethod.Get, path, useOperatorToken);
|
||||
response.EnsureSuccessStatusCode();
|
||||
var content = await response.Content.ReadAsStringAsync();
|
||||
var content = await response.Content.ReadAsStringAsync(CancellationToken.None);
|
||||
return JsonNode.Parse(content) as JsonObject;
|
||||
}
|
||||
|
||||
@@ -401,7 +401,7 @@ using StellaOps.TestKit;
|
||||
var response = await SendAsync(client, request, useOperatorToken);
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
var body = await response.Content.ReadAsStringAsync();
|
||||
var body = await response.Content.ReadAsStringAsync(CancellationToken.None);
|
||||
var authHeader = response.Headers.WwwAuthenticate.ToString();
|
||||
throw new InvalidOperationException($"Request to {path} failed with {(int)response.StatusCode} {response.StatusCode}: {body} (WWW-Authenticate: {authHeader})");
|
||||
}
|
||||
@@ -425,7 +425,7 @@ using StellaOps.TestKit;
|
||||
{
|
||||
request.Headers.Add("X-StellaOps-Tenant", "tenant-web");
|
||||
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", useOperatorToken ? _operatorToken : _viewerToken);
|
||||
return client.SendAsync(request);
|
||||
return client.SendAsync(request, CancellationToken.None);
|
||||
}
|
||||
|
||||
private static string CreateToken(params string[] scopes)
|
||||
|
||||
Reference in New Issue
Block a user