Ensure correct access to all manifests + introduce "public" package manifests (#15921)

* Introduce "public" package manifests

* Make sure "all manifests" are available to anyone with backoffice access

* review comments
This commit is contained in:
Kenn Jacobsen
2024-03-21 09:55:30 +01:00
committed by GitHub
parent 129e9004d8
commit e750d29d14
6 changed files with 71 additions and 17 deletions

View File

@@ -22,7 +22,8 @@ public class PackageManifestServiceTests
_readerMock.Setup(r => r.ReadPackageManifestsAsync()).ReturnsAsync(
new[]
{
new PackageManifest { Name = "Test", Extensions = Array.Empty<object>() }
new PackageManifest { Name = "Test", Extensions = Array.Empty<object>(), AllowPublicAccess = false },
new PackageManifest { Name = "Test Public", Extensions = Array.Empty<object>(), AllowPublicAccess = true}
});
_runtimeCache = new ObjectCacheAppCache();
@@ -37,14 +38,14 @@ public class PackageManifestServiceTests
[Test]
public async Task Caches_PackageManifests()
{
var result = await _service.GetPackageManifestsAsync();
Assert.AreEqual(1, result.Count());
var result = await _service.GetAllPackageManifestsAsync();
Assert.AreEqual(2, result.Count());
var result2 = await _service.GetPackageManifestsAsync();
Assert.AreEqual(1, result2.Count());
var result2 = await _service.GetAllPackageManifestsAsync();
Assert.AreEqual(2, result2.Count());
var result3 = await _service.GetPackageManifestsAsync();
Assert.AreEqual(1, result3.Count());
var result3 = await _service.GetAllPackageManifestsAsync();
Assert.AreEqual(2, result3.Count());
_readerMock.Verify(r => r.ReadPackageManifestsAsync(), Times.Exactly(1));
}
@@ -52,18 +53,28 @@ public class PackageManifestServiceTests
[Test]
public async Task Reloads_PackageManifest_After_Cache_Clear()
{
var result = await _service.GetPackageManifestsAsync();
Assert.AreEqual(1, result.Count());
var result = await _service.GetAllPackageManifestsAsync();
Assert.AreEqual(2, result.Count());
_runtimeCache.Clear();
var result2 = await _service.GetPackageManifestsAsync();
Assert.AreEqual(1, result2.Count());
var result2 = await _service.GetAllPackageManifestsAsync();
Assert.AreEqual(2, result2.Count());
_runtimeCache.Clear();
var result3 = await _service.GetPackageManifestsAsync();
Assert.AreEqual(1, result3.Count());
var result3 = await _service.GetAllPackageManifestsAsync();
Assert.AreEqual(2, result3.Count());
_runtimeCache.Clear();
_readerMock.Verify(r => r.ReadPackageManifestsAsync(), Times.Exactly(3));
}
[Test]
public async Task Supports_Public_PackageManifests()
{
var result = await _service.GetPublicPackageManifestsAsync();
Assert.AreEqual(1, result.Count());
result = await _service.GetAllPackageManifestsAsync();
Assert.AreEqual(2, result.Count());
}
}