feat: prioritize finish meeting tray action
PR and Push Build/Test / build-and-test (push) Successful in 11m8s

This commit is contained in:
2026-08-04 09:55:18 +02:00
parent 5d0ae84426
commit 2f12a96688
8 changed files with 220 additions and 30 deletions
+43 -16
View File
@@ -60,27 +60,54 @@ public sealed class TaskbarIconTests
}
[Fact]
public void RecordingMenuOffersStopAbortAndOtherProfileSwitches()
public void RecordingMenuPrioritizesFinishMeetingInDedicatedSection()
{
var menu = MeetingTaskbarMenuBuilder.Build(
Status(isRecording: true, state: RecordingProcessState.Recording, profile: "default"),
[Profile("default", "Ctrl+Alt+M"), Profile("english", "Ctrl+Alt+L"), Profile("french", "Ctrl+Alt+F")]);
[Profile("default", "Ctrl+Alt+M"), Profile("english", "Ctrl+Alt+L")],
[new MicrophoneDevice("integrated", "integrated microphone")],
"integrated");
Assert.Equal(RecordingProcessState.Recording, menu.State);
Assert.Contains(menu.Items, item => item.Action == MeetingTaskbarAction.StopRecording);
Assert.Contains(menu.Items, item => item.Action == MeetingTaskbarAction.AbortRecording);
Assert.Contains(menu.Items, item =>
item.Action == MeetingTaskbarAction.SwitchProfile &&
item.ProfileName == "english" &&
item.Text == "Switch to english\tCtrl+Alt+L");
Assert.Contains(menu.Items, item =>
item.Action == MeetingTaskbarAction.SwitchProfile &&
item.ProfileName == "french" &&
item.Text == "Switch to french\tCtrl+Alt+F");
Assert.DoesNotContain(menu.Items, item =>
item.Action == MeetingTaskbarAction.SwitchProfile &&
item.ProfileName == "default");
Assert.DoesNotContain(menu.Items, item => item.Action == MeetingTaskbarAction.StartRecording);
Assert.Collection(
menu.Items,
item =>
{
Assert.Equal("Open agent", item.Text);
Assert.Equal(MeetingTaskbarAction.EditRules, item.Action);
Assert.False(item.StartsSection);
},
item =>
{
Assert.Equal("Finish meeting", item.Text);
Assert.Equal(MeetingTaskbarAction.StopRecording, item.Action);
Assert.True(item.StartsSection);
},
item =>
{
Assert.Equal("Microphone", item.Text);
Assert.Equal(MeetingTaskbarAction.OpenSubmenu, item.Action);
Assert.True(item.StartsSection);
},
item =>
{
Assert.Equal("Cancel meeting recording and discard", item.Text);
Assert.Equal(MeetingTaskbarAction.AbortRecording, item.Action);
Assert.False(item.StartsSection);
},
item =>
{
Assert.Equal("Switch to english\tCtrl+Alt+L", item.Text);
Assert.Equal(MeetingTaskbarAction.SwitchProfile, item.Action);
Assert.Equal("english", item.ProfileName);
Assert.False(item.StartsSection);
},
item =>
{
Assert.Equal("Exit", item.Text);
Assert.Equal(MeetingTaskbarAction.Exit, item.Action);
Assert.True(item.StartsSection);
});
}
[Fact]