From fb9bbeacb43f86dfb0123ecfe8240c086039e9ce Mon Sep 17 00:00:00 2001 From: Rory& Date: Wed, 8 Jul 2026 20:59:22 +0200 Subject: [PATCH] Add webhook message delete test --- .../Extensions/AssertHttpExtensions.cs | 7 ++++++ .../Spacebar.Tests/Tests/WebhookTests.cs | 24 ++++++++++++------- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/extra/admin-api/Tests/Spacebar.Tests/Extensions/AssertHttpExtensions.cs b/extra/admin-api/Tests/Spacebar.Tests/Extensions/AssertHttpExtensions.cs index f5e99dc98..f6d1db5aa 100644 --- a/extra/admin-api/Tests/Spacebar.Tests/Extensions/AssertHttpExtensions.cs +++ b/extra/admin-api/Tests/Spacebar.Tests/Extensions/AssertHttpExtensions.cs @@ -28,6 +28,13 @@ public static class AssertHttpExtensions { return res; } + public static async Task SuccessfullyHttpDeleteAsync(string url) { + var res = await Hc.DeleteAsync(url); + if (!res.IsSuccessStatusCode) + Assert.True(res.IsSuccessStatusCode, $"Could not DELETE {url}: {(int)res.StatusCode} {res.StatusCode}\n{await GetFormattedErrorDetails(res)}"); + return res; + } + public static async Task HttpSuccess(HttpResponseMessage res) { if (!res.IsSuccessStatusCode) Assert.True(res.IsSuccessStatusCode, diff --git a/extra/admin-api/Tests/Spacebar.Tests/Tests/WebhookTests.cs b/extra/admin-api/Tests/Spacebar.Tests/Tests/WebhookTests.cs index edd5f7af9..ac17b76a4 100644 --- a/extra/admin-api/Tests/Spacebar.Tests/Tests/WebhookTests.cs +++ b/extra/admin-api/Tests/Spacebar.Tests/Tests/WebhookTests.cs @@ -41,7 +41,7 @@ public class WebhookTests(ITestOutputHelper testOutputHelper, TestFixture fixtur Assert.Equal("test", c.Result.Name); Channel = Client.GetChannel(c.Result.Id); }); - + if (Webhook is null) await Channel!.CreateWebhookAsync(new() { Name = "meow" @@ -50,8 +50,7 @@ public class WebhookTests(ITestOutputHelper testOutputHelper, TestFixture fixtur Assert.StringNotNullOrWhitespace(w.Result.Url); Webhook = w.Result; }); - - + if (WebhookMessage is null) WebhookMessage = await (await Assert.SuccessfullyHttpPostAsJsonAsync(Webhook.Url + "?wait=true", new JsonObject() { { "content", "meow" } @@ -67,7 +66,7 @@ public class WebhookTests(ITestOutputHelper testOutputHelper, TestFixture fixtur Assert.Equal("meow", wh.Name); Assert.StringNotNullOrWhitespace(wh.Url); } - + [Fact] public async Task DeleteWebhookByToken() { var wh = await Channel!.CreateWebhookAsync(new() { @@ -78,7 +77,7 @@ public class WebhookTests(ITestOutputHelper testOutputHelper, TestFixture fixtur Assert.StringNotNullOrWhitespace(wh.Url); await Assert.HttpSuccess(await Client.ApiHttpClient.DeleteAsync(wh.Url, TestContext.Current.CancellationToken)); } - + [Fact] public async Task DeleteWebhook() { var wh = await Channel!.CreateWebhookAsync(new() { @@ -157,7 +156,7 @@ public class WebhookTests(ITestOutputHelper testOutputHelper, TestFixture fixtur if (avatarUrl != null) payload.Add("avatar_url", avatarUrl); if (tts != null) payload.Add("tts", tts); if (flags != null) payload.Add("flags", flags); - + await Assert.SuccessfullyHttpPostAsJsonAsync(Webhook.Url + "?wait=true", payload); } @@ -173,7 +172,16 @@ public class WebhookTests(ITestOutputHelper testOutputHelper, TestFixture fixtur public async Task GetWebhookMessageById() { var msg = await Assert.SuccessfullyHttpGetAsync(Webhook.Url + "/messages/" + WebhookMessage.Id); } - + + [Fact] + public async Task DeleteWebhookMessageById() { + var msg = await Assert.SuccessfullyHttpPostAsJsonAsync(Webhook.Url + "?wait=true", new JsonObject() { + { "content", "meow" }, + }); + var actualMsg = await msg.Content.ReadFromJsonAsync(); + await Assert.SuccessfullyHttpDeleteAsync(Webhook.Url + "/messages/" + actualMsg!.Id); + } + [Theory] [MemberData(nameof(WebhookExecuteCombinations))] public async Task EditWebhookMessageByIdWithData(string content, string? username, string? avatarUrl, bool? tts, int? flags) { @@ -184,7 +192,7 @@ public class WebhookTests(ITestOutputHelper testOutputHelper, TestFixture fixtur if (avatarUrl != null) payload.Add("avatar_url", avatarUrl); if (tts != null) payload.Add("tts", tts); if (flags != null) payload.Add("flags", flags); - + await Assert.SuccessfullyHttpPostAsJsonAsync(Webhook.Url + "?wait=true", payload); } } \ No newline at end of file