Skip to content

Commit 26f5ec9

Browse files
committed
perf(tests): add RetryDelaySleepDurationProvider override in ConnectionService to skip retry delays in tests
1 parent f1a362e commit 26f5ec9

2 files changed

Lines changed: 7 additions & 3 deletions

File tree

src/ByteSync.Client/Services/Communications/ConnectionService.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using System.Net.Http;
1+
using System.Net.Http;
22
using System.Reactive.Linq;
33
using System.Reactive.Subjects;
44
using System.Threading;
@@ -65,13 +65,15 @@ public ConnectionService(IConnectionFactory connectionFactory, IAuthenticationTo
6565
public ByteSyncEndpoint? CurrentEndPoint { get; set; }
6666

6767
public string? ClientInstanceId => CurrentEndPoint?.ClientInstanceId;
68+
69+
public Func<int, TimeSpan>? RetryDelaySleepDurationProvider { get; set; }
6870

6971
public async Task StartConnectionAsync()
7072
{
7173
var retryPolicy = Policy
7274
.Handle<Exception>(ex => !(ex is BuildConnectionException bce && bce.InitialConnectionStatus == InitialConnectionStatus.VersionNotAllowed))
7375
.WaitAndRetryForeverAsync(
74-
retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)),
76+
retryAttempt => RetryDelaySleepDurationProvider?.Invoke(retryAttempt) ?? TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)),
7577
(exception, _, _) =>
7678
{
7779
ConnectionStatusSubject.OnNext(ConnectionStatuses.NotConnected);

tests/ByteSync.Client.UnitTests/Services/Communications/ConnectionServiceTests.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using ByteSync.Business.Communications;
1+
using ByteSync.Business.Communications;
22
using ByteSync.Common.Business.Auth;
33
using ByteSync.Common.Business.EndPoints;
44
using ByteSync.Exceptions;
@@ -33,6 +33,8 @@ public void SetUp()
3333
_mockAuthenticationTokensRepository.Object,
3434
_mockLogger.Object
3535
);
36+
37+
_connectionService.RetryDelaySleepDurationProvider = _ => TimeSpan.Zero;
3638
}
3739

3840
[Test]

0 commit comments

Comments
 (0)