1
0
mirror of https://github.com/bitwarden/server.git synced 2025-06-30 07:36:14 -05:00

Incorrect Read only connection string on development self-hosted environment (#5426)

This commit is contained in:
Maciej Zieniuk
2025-02-20 20:21:50 +01:00
committed by GitHub
parent 5bbd905401
commit 93e5f7d0fe
7 changed files with 168 additions and 18 deletions

View File

@ -0,0 +1,134 @@
using Bit.Core.Settings;
using Xunit;
namespace Bit.Core.Test.Settings;
public class GlobalSettingsTests
{
public class SqlSettingsTests
{
private const string _testingConnectionString =
"Server=server;Database=database;User Id=user;Password=password;";
private const string _testingReadOnlyConnectionString =
"Server=server_read;Database=database_read;User Id=user_read;Password=password_read;";
[Fact]
public void ConnectionString_ValueInDoubleQuotes_Stripped()
{
var settings = new GlobalSettings.SqlSettings { ConnectionString = $"\"{_testingConnectionString}\"", };
Assert.Equal(_testingConnectionString, settings.ConnectionString);
}
[Fact]
public void ConnectionString_ValueWithoutDoubleQuotes_TheSameValue()
{
var settings = new GlobalSettings.SqlSettings { ConnectionString = _testingConnectionString };
Assert.Equal(_testingConnectionString, settings.ConnectionString);
}
[Fact]
public void ConnectionString_SetTwice_ReturnsSecondConnectionString()
{
var settings = new GlobalSettings.SqlSettings { ConnectionString = _testingConnectionString };
Assert.Equal(_testingConnectionString, settings.ConnectionString);
var newConnectionString = $"{_testingConnectionString}_new";
settings.ConnectionString = newConnectionString;
Assert.Equal(newConnectionString, settings.ConnectionString);
}
[Fact]
public void ReadOnlyConnectionString_ValueInDoubleQuotes_Stripped()
{
var settings = new GlobalSettings.SqlSettings
{
ReadOnlyConnectionString = $"\"{_testingReadOnlyConnectionString}\"",
};
Assert.Equal(_testingReadOnlyConnectionString, settings.ReadOnlyConnectionString);
}
[Fact]
public void ReadOnlyConnectionString_ValueWithoutDoubleQuotes_TheSameValue()
{
var settings = new GlobalSettings.SqlSettings
{
ReadOnlyConnectionString = _testingReadOnlyConnectionString
};
Assert.Equal(_testingReadOnlyConnectionString, settings.ReadOnlyConnectionString);
}
[Fact]
public void ReadOnlyConnectionString_NotSet_DefaultsToConnectionString()
{
var settings = new GlobalSettings.SqlSettings { ConnectionString = _testingConnectionString };
Assert.Equal(_testingConnectionString, settings.ReadOnlyConnectionString);
}
[Fact]
public void ReadOnlyConnectionString_Set_ReturnsReadOnlyConnectionString()
{
var settings = new GlobalSettings.SqlSettings
{
ConnectionString = _testingConnectionString,
ReadOnlyConnectionString = _testingReadOnlyConnectionString
};
Assert.Equal(_testingReadOnlyConnectionString, settings.ReadOnlyConnectionString);
}
[Fact]
public void ReadOnlyConnectionString_SetTwice_ReturnsSecondReadOnlyConnectionString()
{
var settings = new GlobalSettings.SqlSettings
{
ConnectionString = _testingConnectionString,
ReadOnlyConnectionString = _testingReadOnlyConnectionString
};
Assert.Equal(_testingReadOnlyConnectionString, settings.ReadOnlyConnectionString);
var newReadOnlyConnectionString = $"{_testingReadOnlyConnectionString}_new";
settings.ReadOnlyConnectionString = newReadOnlyConnectionString;
Assert.Equal(newReadOnlyConnectionString, settings.ReadOnlyConnectionString);
}
[Fact]
public void ReadOnlyConnectionString_NotSetAndConnectionStringSetTwice_ReturnsSecondConnectionString()
{
var settings = new GlobalSettings.SqlSettings { ConnectionString = _testingConnectionString };
Assert.Equal(_testingConnectionString, settings.ReadOnlyConnectionString);
var newConnectionString = $"{_testingConnectionString}_new";
settings.ConnectionString = newConnectionString;
Assert.Equal(newConnectionString, settings.ReadOnlyConnectionString);
}
[Fact]
public void ReadOnlyConnectionString_SetAndConnectionStringSetTwice_ReturnsReadOnlyConnectionString()
{
var settings = new GlobalSettings.SqlSettings
{
ConnectionString = _testingConnectionString,
ReadOnlyConnectionString = _testingReadOnlyConnectionString
};
Assert.Equal(_testingReadOnlyConnectionString, settings.ReadOnlyConnectionString);
var newConnectionString = $"{_testingConnectionString}_new";
settings.ConnectionString = newConnectionString;
Assert.Equal(_testingReadOnlyConnectionString, settings.ReadOnlyConnectionString);
}
}
}