Add Git overlay, operation tools, and virtualized preview so large folders stay responsive.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -10,6 +10,13 @@ namespace Explorer.Application.Tests;
|
||||
|
||||
public class CloudProviderTests
|
||||
{
|
||||
[Fact]
|
||||
public async Task Quota_returns_null_when_provider_throws()
|
||||
{
|
||||
var registry = new StorageProviderRegistry([new QuotaThrowingProvider()], NullLogger<StorageProviderRegistry>.Instance);
|
||||
Assert.Null(await registry.TryGetQuotaAsync(@"C:\OneDrive"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Enrich_passes_through_when_provider_throws()
|
||||
{
|
||||
@@ -246,6 +253,19 @@ file sealed class ThrowingProvider : IStorageProvider
|
||||
=> throw new InvalidOperationException("quota failed");
|
||||
}
|
||||
|
||||
file sealed class QuotaThrowingProvider : IStorageProvider
|
||||
{
|
||||
public ProviderManifest Manifest { get; } = new("onedrive", "OneDrive", "1", ProviderIsolation.InProcess);
|
||||
public ProviderCapability GetCapabilities() => ProviderCapability.Quota;
|
||||
public bool TryMatchRoot(string path) => path.Contains("OneDrive", StringComparison.OrdinalIgnoreCase);
|
||||
public Task<IReadOnlyList<ProviderItemState>> GetItemStatesAsync(IReadOnlyList<string> paths, CancellationToken cancellationToken = default)
|
||||
=> Task.FromResult<IReadOnlyList<ProviderItemState>>([]);
|
||||
public Task<ProviderActionResult> TryInvokeAsync(ProviderActionRequest request, CancellationToken cancellationToken = default)
|
||||
=> Task.FromResult(new ProviderActionResult(ProviderActionStatus.Unsupported));
|
||||
public Task<ProviderQuota?> TryGetQuotaAsync(string rootPath, CancellationToken cancellationToken = default)
|
||||
=> throw new InvalidOperationException("quota failed");
|
||||
}
|
||||
|
||||
file sealed class StubProvider : IStorageProvider
|
||||
{
|
||||
public ProviderManifest Manifest { get; } = new("onedrive", "OneDrive", "1", ProviderIsolation.InProcess);
|
||||
|
||||
Reference in New Issue
Block a user