diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index 78984055..b6cef5e8 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -37,6 +37,7 @@ body:
- DNS Made Easy
- Gandi LiveDNS
- GoDaddy
+ - Infomaniak DNS
- Google Cloud DNS
- TransIP DNS
- Other
diff --git a/src/Acmebot.App.Tests/Acmebot.App.Tests.csproj b/src/Acmebot.App.Tests/Acmebot.App.Tests.csproj
new file mode 100644
index 00000000..3f96ba38
--- /dev/null
+++ b/src/Acmebot.App.Tests/Acmebot.App.Tests.csproj
@@ -0,0 +1,24 @@
+
+
+
+ net10.0
+ enable
+ enable
+ nullable
+ false
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
diff --git a/src/Acmebot.App.Tests/InfomaniakProviderTests.cs b/src/Acmebot.App.Tests/InfomaniakProviderTests.cs
new file mode 100644
index 00000000..a45aaa43
--- /dev/null
+++ b/src/Acmebot.App.Tests/InfomaniakProviderTests.cs
@@ -0,0 +1,271 @@
+using System.Net;
+using System.Net.Http.Headers;
+using System.Text;
+using System.Text.Json;
+
+using Acmebot.App.Providers;
+
+using Xunit;
+
+namespace Acmebot.App.Tests;
+
+///
+/// Tests for InfomaniakProvider using a fake HTTP handler — no real domain required.
+/// Each test enqueues mock JSON responses matching the Infomaniak REST API v1 format.
+///
+public sealed class InfomaniakProviderTests
+{
+ // -------------------------------------------------------------------------
+ // Helpers
+ // -------------------------------------------------------------------------
+
+ /// Builds a fake 200 response with an Infomaniak-style success envelope.
+ private static HttpResponseMessage OkJson(object data)
+ {
+ var payload = JsonSerializer.Serialize(new { result = "success", data });
+ return new HttpResponseMessage(HttpStatusCode.OK)
+ {
+ Content = new StringContent(payload, Encoding.UTF8, "application/json")
+ };
+ }
+
+ /// Builds a fake 200 response with an empty data array.
+ private static HttpResponseMessage OkEmpty() => OkJson(Array.Empty