From 3e4e2d32ade34668f31b4c544a27078453cd91f9 Mon Sep 17 00:00:00 2001
From: Andre Hofmeister <9199345+HofmeisterAn@users.noreply.github.com>
Date: Thu, 13 Feb 2025 19:23:55 +0100
Subject: [PATCH] fix: Check replica set init status
---
Directory.Packages.props | 2 +-
src/Testcontainers.MongoDb/MongoDbBuilder.cs | 2 +-
src/Testcontainers.MongoDb/MongoDbContainer.cs | 1 +
tests/Testcontainers.MongoDb.Tests/MongoDbContainerTest.cs | 2 +-
4 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/Directory.Packages.props b/Directory.Packages.props
index cae45c862..cc102df63 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -58,7 +58,7 @@
-
+
diff --git a/src/Testcontainers.MongoDb/MongoDbBuilder.cs b/src/Testcontainers.MongoDb/MongoDbBuilder.cs
index 1a806c7a8..786c401cd 100644
--- a/src/Testcontainers.MongoDb/MongoDbBuilder.cs
+++ b/src/Testcontainers.MongoDb/MongoDbBuilder.cs
@@ -190,7 +190,7 @@ private sealed class WaitInitiateReplicaSet : IWaitUntil
/// The container configuration.
public WaitInitiateReplicaSet(MongoDbConfiguration configuration)
{
- _scriptContent = $"try{{rs.status().ok}}catch(e){{rs.initiate({{'_id':'{configuration.ReplicaSetName}',members:[{{'_id':1,'host':'127.0.0.1:27017'}}]}}).ok}}";
+ _scriptContent = $"try{{rs.status()}}catch(e){{rs.initiate({{_id:'{configuration.ReplicaSetName}',members:[{{_id:0,host:'127.0.0.1:27017'}}]}});throw e;}}";
}
///
diff --git a/src/Testcontainers.MongoDb/MongoDbContainer.cs b/src/Testcontainers.MongoDb/MongoDbContainer.cs
index 25e3531b4..10404d62c 100644
--- a/src/Testcontainers.MongoDb/MongoDbContainer.cs
+++ b/src/Testcontainers.MongoDb/MongoDbContainer.cs
@@ -26,6 +26,7 @@ public string GetConnectionString()
var endpoint = new UriBuilder("mongodb", Hostname, GetMappedPublicPort(MongoDbBuilder.MongoDbPort));
endpoint.UserName = Uri.EscapeDataString(_configuration.Username);
endpoint.Password = Uri.EscapeDataString(_configuration.Password);
+ endpoint.Query = "?directConnection=true";
return endpoint.ToString();
}
diff --git a/tests/Testcontainers.MongoDb.Tests/MongoDbContainerTest.cs b/tests/Testcontainers.MongoDb.Tests/MongoDbContainerTest.cs
index 0b7b66a42..96fb09217 100644
--- a/tests/Testcontainers.MongoDb.Tests/MongoDbContainerTest.cs
+++ b/tests/Testcontainers.MongoDb.Tests/MongoDbContainerTest.cs
@@ -73,7 +73,7 @@ public async Task ReplicaSetStatus()
}
else
{
- Assert.Equal(1L, execResult.ExitCode);
+ Assert.True(1L.Equals(execResult.ExitCode), execResult.Stdout);
Assert.Equal("MongoServerError: not running with --replSet\n", execResult.Stderr);
}
}