feat: complete legacy parity and modernize operator UI
This commit is contained in:
@@ -50,6 +50,51 @@ public sealed class LegacyRowDoubleClickBridgeTests
|
||||
out _));
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(true)]
|
||||
[InlineData(false)]
|
||||
public void Named_playlist_save_carries_only_the_success_dialog_choice(bool showSavedAlert)
|
||||
{
|
||||
var json = JsonSerializer.Serialize(new
|
||||
{
|
||||
type = "save-current-named-playlist-to",
|
||||
payload = new
|
||||
{
|
||||
definitionId = "named-definition-AAAAAAAAAAAB",
|
||||
showSavedAlert
|
||||
}
|
||||
});
|
||||
|
||||
Assert.True(LegacyBridgeProtocol.TryParseIntent(json, out var parsed, out _));
|
||||
var save = Assert.IsType<LegacySaveCurrentNamedPlaylistToIntent>(parsed);
|
||||
Assert.Equal(showSavedAlert, save.ShowSavedAlert);
|
||||
|
||||
Assert.False(LegacyBridgeProtocol.TryParseIntent(
|
||||
"{\"type\":\"save-current-named-playlist-to\",\"payload\":{" +
|
||||
"\"definitionId\":\"named-definition-AAAAAAAAAAAB\"," +
|
||||
"\"showSavedAlert\":\"yes\"}}",
|
||||
out _,
|
||||
out _));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Named_playlist_load_rejects_save_dialog_metadata()
|
||||
{
|
||||
Assert.True(LegacyBridgeProtocol.TryParseIntent(
|
||||
"{\"type\":\"load-named-playlist-by-id\",\"payload\":{" +
|
||||
"\"definitionId\":\"named-definition-AAAAAAAAAAEF\"}}",
|
||||
out var parsed,
|
||||
out _));
|
||||
Assert.IsType<LegacyLoadNamedPlaylistByIdIntent>(parsed);
|
||||
|
||||
Assert.False(LegacyBridgeProtocol.TryParseIntent(
|
||||
"{\"type\":\"load-named-playlist-by-id\",\"payload\":{" +
|
||||
"\"definitionId\":\"named-definition-AAAAAAAAAAEF\"," +
|
||||
"\"showSavedAlert\":false}}",
|
||||
out _,
|
||||
out _));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Projection_exposes_only_closed_command_receipt_and_opaque_target()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user