Persist channel DRED settings
Build and test / test (macos-latest) (push) Canceled after 0s
Build and test / test (ubuntu-24.04) (push) Canceled after 0s
Build and test / test (windows-latest) (push) Canceled after 0s
Build and test / apple-client (push) Canceled after 0s

This commit is contained in:
2026-09-22 14:11:36 +02:00
parent 8471eac363
commit 7c4708c3de
9 changed files with 101 additions and 11 deletions
+29
View File
@@ -54,4 +54,33 @@ public sealed class AccountStoreTests
}
finally { Directory.Delete(directory, true); }
}
[Fact]
public void VersionTwoDatabaseMigratesDredAsDisabled()
{
string directory = Path.Combine(Path.GetTempPath(), "voicecat-v2-" + Guid.NewGuid().ToString("N"));
Directory.CreateDirectory(directory);
string path = Path.Combine(directory, "voicecat.db");
try
{
using (var store = new AccountStore(path)) store.LoadChannels();
using (var connection = new SqliteConnection(new SqliteConnectionStringBuilder { DataSource = path, Pooling = false }.ToString()))
{
connection.Open();
using var command = connection.CreateCommand();
command.CommandText = "ALTER TABLE channels DROP COLUMN audio_dred; UPDATE server_meta SET value='2' WHERE key='schema_version';";
command.ExecuteNonQuery();
}
using (var migrated = new AccountStore(path))
Assert.All(migrated.LoadChannels(), channel => Assert.False(channel.Audio.Dred));
using var verify = new SqliteConnection(new SqliteConnectionStringBuilder { DataSource = path, Pooling = false }.ToString());
verify.Open();
using var query = verify.CreateCommand();
query.CommandText = "SELECT value FROM server_meta WHERE key='schema_version'";
Assert.Equal("3", query.ExecuteScalar());
}
finally { Directory.Delete(directory, true); }
}
}