Added package cleanup

This commit is contained in:
2026-02-15 02:58:44 +01:00
parent 1764ddcb2b
commit 8586a09cd0
10 changed files with 343 additions and 1797 deletions

View File

@@ -0,0 +1,146 @@
using Moq;
using sh.actions.package_cleanup.Models;
using sh.actions.package_cleanup.Service;
using Xunit;
namespace sh.actions.package_cleanup.Tests.Service;
public class PackageFilterTests
{
private readonly IPackageService _packageService;
private readonly Mock<IGiteaPackageService> _giteaPackageServiceMock = new Mock<IGiteaPackageService>();
private readonly List<GiteaPackage> _packages;
public PackageFilterTests()
{
_packageService = new PackageService(_giteaPackageServiceMock.Object);
_packages = _versions.Select(v => new GiteaPackage
{
Version = v,
Name = $"test-{v}"
}).ToList();
}
[Fact]
public void TestFilterPackagesToDelete()
{
var toDelete = _packageService.FilterPackagesToDelete(_packages);
var toDeleteVersions = toDelete
.Select(x => x.Version)
.OrderByDescending(x => x)
.ToList();
var expected = _expectDeleted.OrderByDescending(x => x).ToList();
Assert.Equal(expected.Count, toDeleteVersions.Count);
Assert.Equal(expected, toDeleteVersions);
}
private readonly List<string> _versions =
[
"0.1.0",
"0.1.1",
"0.1.2",
"1.0",
"1.1",
"1.2",
"2024.8.6.0",
"2024.8.7.0",
"2024.8.8.0",
"2024.8.9.0",
"2024.8.10.0",
"2024.8.11.0",
"latest",
// dev
"0-dev",
"1-dev",
"2-dev",
"1.0-dev",
"1.1-dev",
"1.2-dev",
"0.1.0-dev",
"0.1.1-dev",
"0.1.2-dev",
"2024.8.6.0-dev",
"2024.8.6.1-dev",
"2024.8.7.0-dev",
"2024.8.7.1-dev",
"2024.8.8.0-dev",
"2024.8.8.1-dev",
"2024.8.9.0-dev",
"2024.8.9.1-dev",
"2024.8.10.0-dev",
"2024.8.10.1-dev",
"2024.8.11.0-dev",
"2024.8.11.1-dev",
// test
"0.1.0-test",
"0.1.1-test",
"0.1.2-test",
"2024.8.6.0-test",
"2024.8.6.1-test",
"2024.8.7.0-test",
"2024.8.7.1-test",
"2024.8.8.0-test",
"2024.8.8.1-test",
"2024.8.9.0-test",
"2024.8.9.1-test",
"2024.8.10.0-test",
"2024.8.10.1-test",
"2024.8.11.0-test",
// exp
"0.1.0-exp",
"0.1.1-exp",
"0.1.2-exp",
"2024.8.6.0-exp",
"2024.8.6.1-exp",
"2024.8.7.0-exp",
"2024.8.7.1-exp",
"2024.8.8.0-exp",
"2024.8.8.1-exp",
"2024.8.9.0-exp",
"2024.8.9.1-exp",
"2024.8.10.0-exp",
"2024.8.10.1-exp",
"2024.8.11.0-exp",
"2024.8.11.2-exp"
];
private readonly List<string> _versionsToHold =
[
// prod (no suffix)
"0.1.0",
"0.1.1",
"0.1.2",
"1.0",
"1.1",
"1.2",
"2024.8.6.0",
"2024.8.7.0",
"2024.8.8.0",
"2024.8.9.0",
"2024.8.10.0",
"2024.8.11.0",
"latest",
// dev
"1-dev",
"2-dev",
"1.1-dev",
"1.2-dev",
"0.1.1-dev",
"0.1.2-dev",
"2024.8.11.0-dev",
"2024.8.11.1-dev",
// test
"0.1.1-test",
"0.1.2-test",
"2024.8.10.1-test",
"2024.8.11.0-test",
// exp
"0.1.1-exp",
"0.1.2-exp",
"2024.8.11.0-exp",
"2024.8.11.2-exp"
];
private List<string> _expectDeleted => _versions.Except(_versionsToHold).ToList();
}