basic info tests

This commit is contained in:
Ben 2024-11-21 14:17:57 +01:00
parent 7c4ad416d4
commit e743a1cd7b
No known key found for this signature in database
GPG Key ID: 0F16E812E736C24B
3 changed files with 74 additions and 2 deletions

View File

@ -32,6 +32,22 @@ namespace CodexPlugin
return mapper.Map(OnCodex(api => api.GetDebugInfoAsync())); return mapper.Map(OnCodex(api => api.GetDebugInfoAsync()));
} }
public string GetSpr()
{
return CrashCheck(() =>
{
var endpoint = GetEndpoint();
var json = endpoint.HttpGetString("spr");
var response = JsonConvert.DeserializeObject<SprResponse>(json);
return response!.Spr;
});
}
private class SprResponse
{
public string Spr { get; set; } = string.Empty;
}
public DebugPeer GetDebugPeer(string peerId) public DebugPeer GetDebugPeer(string peerId)
{ {
// Cannot use openAPI: debug/peer endpoint is not specified there. // Cannot use openAPI: debug/peer endpoint is not specified there.

View File

@ -15,6 +15,7 @@ namespace CodexPlugin
string GetName(); string GetName();
string GetPeerId(); string GetPeerId();
DebugInfo GetDebugInfo(); DebugInfo GetDebugInfo();
string GetSpr();
DebugPeer GetDebugPeer(string peerId); DebugPeer GetDebugPeer(string peerId);
ContentId UploadFile(TrackedFile file); ContentId UploadFile(TrackedFile file);
ContentId UploadFile(TrackedFile file, Action<Failure> onFailure); ContentId UploadFile(TrackedFile file, Action<Failure> onFailure);
@ -130,6 +131,11 @@ namespace CodexPlugin
return debugInfo; return debugInfo;
} }
public string GetSpr()
{
return CodexAccess.GetSpr();
}
public DebugPeer GetDebugPeer(string peerId) public DebugPeer GetDebugPeer(string peerId)
{ {
return CodexAccess.GetDebugPeer(peerId); return CodexAccess.GetDebugPeer(peerId);

View File

@ -1,12 +1,62 @@
using System; using CodexPlugin;
using CodexTests;
using NUnit.Framework;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Utils;
namespace CodexReleaseTests.NodeTests namespace CodexReleaseTests.NodeTests
{ {
internal class BasicInfoTests [TestFixture]
public class BasicInfoTests : CodexDistTest
{ {
[Test]
public void QuotaTest()
{
var size = 3.GB();
var node = StartCodex(s => s.WithStorageQuota(size));
var space = node.Space();
Assert.That(space.QuotaMaxBytes, Is.EqualTo(size.SizeInBytes));
}
[Test]
public void Spr()
{
var node = StartCodex();
var info = node.GetDebugInfo();
Assert.That(!string.IsNullOrEmpty(info.Spr));
var spr = node.GetSpr();
Assert.That(!string.IsNullOrEmpty(spr));
Assert.That(info.Spr, Is.EqualTo(spr));
}
[Test]
public void VersionInfo()
{
var node = StartCodex();
var info = node.GetDebugInfo();
Assert.That(!string.IsNullOrEmpty(info.Version.Version));
Assert.That(!string.IsNullOrEmpty(info.Version.Revision));
}
[Test]
public void AnnounceAddress()
{
var node = StartCodex();
var addr = node.Container.GetInternalAddress(CodexContainerRecipe.ListenPortTag);
var info = node.GetDebugInfo();
Assert.That(info.AnnounceAddresses.Count, Is.GreaterThan(0));
// Ideally we'd assert the pod IP is in the announce address, but we can't access it from here.
}
} }
} }