This commit is contained in:
Louis Seubert 2026-05-16 23:04:09 +02:00
commit 797a1d3721
Signed by: louis9902
GPG key ID: 4B9DB28F826553BD
14 changed files with 1377 additions and 987 deletions

View file

@ -1,6 +1,8 @@
// Copyright (c) The Geekeey Authors
// SPDX-License-Identifier: EUPL-1.2
using System.Text;
namespace Geekeey.SemVer.Tests;
internal sealed class SemanticVersionRangeTests
@ -152,7 +154,7 @@ internal sealed class SemanticVersionRangeTests
[Test]
public async Task I_can_serialize_to_json()
{
var r = SemanticVersionRange.Parse("^1.2.3");
var r = SemanticVersionRange.Parse("[1.2.3,2.0.0)");
var json = System.Text.Json.JsonSerializer.Serialize(r);
await Assert.That(json).IsEqualTo("\"^1.2.3\"");
}
@ -165,4 +167,37 @@ internal sealed class SemanticVersionRangeTests
await Assert.That(r.ToString()).IsEqualTo("^1.2.3");
await Assert.That(r.Satisfies(new SemanticVersion(1, 2, 4))).IsTrue();
}
[Test]
public async Task I_use_npm_short_format_by_default()
{
var value = SemanticVersionRange.Parse("[1.2.3,2.0.0)");
await Assert.That(value.ToString()).IsEqualTo("^1.2.3");
}
[Test]
[Arguments("^1.2.3", "m", "[1.2.3,2.0.0)")]
[Arguments("~1.2.3", "m", "[1.2.3,1.3.0)")]
[Arguments("1.2.3", "m", "[1.2.3]")]
[Arguments("[1.2.3,2.0.0)", "n", ">=1.2.3 <2.0.0")]
[Arguments("[1.2.3,2.0.0)", "ns", "^1.2.3")]
[Arguments("[1.2.3,1.3.0)", "ns", "~1.2.3")]
[Arguments("[1.2,1.3],[1.5,)", "n", ">=1.2.0 <=1.3.0 || >=1.5.0")]
[Arguments("*", "m", "(,)")]
public async Task I_can_convert_range_formats(string range, string format, string expected)
{
var value = SemanticVersionRange.Parse(range);
await Assert.That(value.ToString(format, null)).IsEqualTo(expected);
}
[Test]
public async Task I_can_format_ranges_to_chars()
{
var value = SemanticVersionRange.Parse("[1.2.3,2.0.0)");
var destination = new char[32];
var success = value.TryFormat(destination, out var charsWritten, "ns", null);
await Assert.That(success).IsTrue();
await Assert.That(new string(destination[..charsWritten])).IsEqualTo("^1.2.3");
}
}