test(app): add docker and main window view model tests
This commit is contained in:
1 parent
1f1b78e50b
commit
36fbba0250
3 files changed
+179
No files matched your search
@@ -0,0 +1,62 @@
|
||||
using Vantage.App.Tests.Fakes;
|
||||
using Vantage.App.ViewModels;
|
||||
using Vantage.Core.Models;
|
||||
using Xunit;
|
||||
|
||||
namespace Vantage.App.Tests;
|
||||
|
||||
public class ViewModelBindingTests
|
||||
{
|
||||
[Fact]
|
||||
public void HostViewModel_ApplyMetricsUpdatesTextsAndHistory()
|
||||
{
|
||||
var host = new HostViewModel(new HostConfig { Name = "node", Address = "10.0.0.5", Username = "root", Port = 22 }, historyLength: 10);
|
||||
|
||||
host.ApplyMetrics(new HostMetrics
|
||||
{
|
||||
CpuUsagePercent = 42.5,
|
||||
MemoryUsedBytes = 4L * 1024 * 1024 * 1024,
|
||||
MemoryTotalBytes = 8L * 1024 * 1024 * 1024,
|
||||
DiskUsedBytes = 50L * 1024 * 1024 * 1024,
|
||||
DiskTotalBytes = 100L * 1024 * 1024 * 1024,
|
||||
Load1 = 0.8,
|
||||
Load5 = 0.6,
|
||||
Load15 = 0.4,
|
||||
Uptime = TimeSpan.FromHours(50)
|
||||
});
|
||||
|
||||
Assert.Equal(42.5, host.CpuUsagePercent);
|
||||
Assert.Equal(50.0, host.MemoryUsedPercent);
|
||||
Assert.Single(host.CpuPoints);
|
||||
Assert.Equal("4.0 GiB / 8.0 GiB", host.MemoryText);
|
||||
Assert.True(host.IsOnline);
|
||||
Assert.Equal("node", host.Name);
|
||||
Assert.Equal("root@10.0.0.5:22", host.Endpoint);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HostViewModel_ApplyErrorMarksOffline()
|
||||
{
|
||||
var host = new HostViewModel(new HostConfig { Name = "node" }, historyLength: 10);
|
||||
|
||||
host.ApplyError("connection refused");
|
||||
|
||||
Assert.False(host.IsOnline);
|
||||
Assert.Equal("connection refused", host.LastError);
|
||||
Assert.Equal("Unreachable", host.StatusText);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task HealthCheckViewModel_RunAppliesResult()
|
||||
{
|
||||
var config = new HealthCheckConfig { Name = "web", Kind = HealthKind.Http, Target = "https://x" };
|
||||
var checker = new FakeHealthChecker(HealthCheckResult.Up(12.4, "HTTP 200 OK"));
|
||||
var viewModel = new HealthCheckViewModel(config, checker);
|
||||
|
||||
await viewModel.RunCommand.ExecuteAsync(null);
|
||||
|
||||
Assert.Equal(HealthStatus.Up, viewModel.Status);
|
||||
Assert.StartsWith("Up", viewModel.StatusText);
|
||||
Assert.Equal("12 ms", viewModel.LatencyText);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user