Skip to content

Commit 6038eb1

Browse files
authored
Fix beta HA versions (#888)
* Handle beta versions of ha * Update HomeAssistantClient.cs * Update GlobalUsings.cs * add test and helper
1 parent e843d37 commit 6038eb1

File tree

4 files changed

+37
-4
lines changed

4 files changed

+37
-4
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
namespace NetDaemon.HassClient.Tests.HelperTest;
2+
3+
public class VersionHelperTests
4+
{
5+
[Theory]
6+
[InlineData("2022.8.12", "2022.8.12")]
7+
[InlineData("2022.8.0b7", "2022.8.0")]
8+
[InlineData("2022.9.0", "2022.9.0")]
9+
[InlineData("2022.9.0b1", "2022.9.0")]
10+
public void WithoutBeta_ValidInput_ReturnsExpectedVersion(string input, string expectedOutput)
11+
{
12+
// Arrange
13+
var expectedVersion = new Version(expectedOutput);
14+
15+
// Act
16+
var parsedVersion = VersionHelper.ReplaceBeta(input);
17+
18+
// Assert
19+
Assert.Equal(expectedVersion, parsedVersion);
20+
}
21+
}

src/Client/NetDaemon.HassClient/GlobalUsings.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
global using System.Text;
1111
global using System.Text.Json;
1212
global using System.Text.Json.Serialization;
13+
global using System.Text.RegularExpressions;
1314
global using System.Threading.Tasks;
1415
global using System.Reactive.Subjects;
1516
global using System.Reactive.Linq;
@@ -33,4 +34,4 @@
3334
[assembly: InternalsVisibleTo("NetDaemon.HassClient.Tests")]
3435
[assembly: InternalsVisibleTo("NetDaemon.HassModel.Tests")]
3536
[assembly: InternalsVisibleTo("NetDaemon.Runtime.Tests")]
36-
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
37+
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
namespace NetDaemon.Client.Internal.Helpers;
2+
3+
internal static partial class VersionHelper
4+
{
5+
public static Version ReplaceBeta(string version)
6+
=> Version.Parse(BetaVersion().Replace(version, ".0"));
7+
8+
9+
[GeneratedRegex("\\.0b\\d+$")]
10+
private static partial Regex BetaVersion();
11+
}

src/Client/NetDaemon.HassClient/Internal/HomeAssistantClient.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ public async Task<IHomeAssistantConnection> ConnectAsync(string host, int port,
4040

4141
var transportPipeline = _transportPipelineFactory.New(ws);
4242

43-
var hassVersionInfo = await HandleAuthorizationSequenceAndReturnHassVersionInfo(token, transportPipeline, cancelToken).ConfigureAwait(false);
43+
var hassVersionInfo = await HandleAuthorizationSequenceAndReturnHassVersionInfo(token, transportPipeline, cancelToken).ConfigureAwait(false);
4444

45-
if (Version.Parse(hassVersionInfo) >= new Version(2022, 9))
45+
if (VersionHelper.ReplaceBeta(hassVersionInfo) >= new Version(2022, 9))
4646
{
4747
await AddCoalesceSupport(transportPipeline, cancelToken).ConfigureAwait(false);
4848
}
@@ -140,4 +140,4 @@ await transportPipeline.SendMessageAsync(
140140
throw new ApplicationException($"Unexpected response ({authResultMessage.Single().Type})");
141141
}
142142
}
143-
}
143+
}

0 commit comments

Comments
 (0)