Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions tests/Devolutions.Terminal.UI.Tests/AssemblyInfo.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
using Xunit;

// Headless Avalonia shares a dispatcher across test classes; concurrent sessions can initialize it on different threads.
[assembly: CollectionBehavior(DisableTestParallelization = true)]
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,20 @@ namespace Devolutions.Terminal.UI.Tests;

public sealed class WindowActionRegistrationTests
{
private static readonly TerminalWindowActivation SettingsOnlyStartup = new(
null,
null,
null,
null,
TerminalWindowLaunchMode.Default,
[new ActionAndArgs(
ShortcutAction.OpenSettings,
new OpenSettingsArgs(SettingsTarget.SettingsUI))]);

[AvaloniaFact]
public void NewTabDropdownUsesExistingProfileEntriesForCtrlClickLaunch()
{
var window = new MainWindow();
var window = new MainWindow(0, string.Empty, SettingsOnlyStartup);

var menu = window.BuildNewTabMenu();

Expand All @@ -37,7 +47,7 @@ public void NewTabDropdownUsesExistingProfileEntriesForCtrlClickLaunch()
[AvaloniaFact]
public void RegistersMarkColorAndWindowDialogActions()
{
var window = new MainWindow();
var window = new MainWindow(0, string.Empty, SettingsOnlyStartup);

var expected = new[]
{
Expand Down Expand Up @@ -69,7 +79,7 @@ public void RegistersMarkColorAndWindowDialogActions()
[AvaloniaFact]
public async Task OpenSettingsCreatesReusableSettingsTab()
{
var window = new MainWindow();
var window = new MainWindow(0, string.Empty, SettingsOnlyStartup);

var first = await window.ActivateAsync(new TerminalWindowActivation(
null,
Expand Down Expand Up @@ -103,7 +113,7 @@ [new ActionAndArgs(
[AvaloniaFact]
public async Task ClosedSettingsTabIsNotRestoredAsATerminal()
{
var window = new MainWindow();
var window = new MainWindow(0, string.Empty, SettingsOnlyStartup);

await window.ActivateAsync(new TerminalWindowActivation(
null,
Expand Down Expand Up @@ -143,7 +153,7 @@ [new ActionAndArgs(
[AvaloniaFact]
public async Task TerminalOnlyActionsAreUnavailableOnTheSettingsTab()
{
var window = new MainWindow();
var window = new MainWindow(0, string.Empty, SettingsOnlyStartup);

await window.ActivateAsync(new TerminalWindowActivation(
null,
Expand Down Expand Up @@ -193,7 +203,7 @@ await window.ActivateAsync(new TerminalWindowActivation(
[AvaloniaFact]
public async Task ActivatingAfterTheLastTabClosesDoesNotThrow()
{
var window = new MainWindow();
var window = new MainWindow(0, string.Empty, SettingsOnlyStartup);

await window.ActivateAsync(new TerminalWindowActivation(
null,
Expand All @@ -204,6 +214,7 @@ await window.ActivateAsync(new TerminalWindowActivation(
[new ActionAndArgs(
ShortcutAction.OpenSettings,
new OpenSettingsArgs(SettingsTarget.SettingsUI))]));
await window.InitialActivation;
Dispatcher.UIThread.RunJobs();

while (window.Tabs.Count > 0)
Expand Down Expand Up @@ -239,7 +250,7 @@ public async Task RenameWindowUpdatesRoutingIdentityAndRejectsDuplicates()
var window = new MainWindow(
7,
"original",
null,
SettingsOnlyStartup,
windowNameValidator: name => name != "duplicate");

var renamed = await window.ActivateAsync(new TerminalWindowActivation(
Expand Down Expand Up @@ -272,7 +283,7 @@ public async Task RenameWindowRejectsPersistedWorkspaceCollision()
using var temporary = new TemporaryDirectory();
var stateStore = new ApplicationStateStore(temporary.Path);
stateStore.SaveWorkspace("existing", new WindowLayoutState());
var window = new MainWindow(9, "original", null, stateStore: stateStore);
var window = new MainWindow(9, "original", SettingsOnlyStartup, stateStore: stateStore);

var result = await window.ActivateAsync(new TerminalWindowActivation(
null,
Expand Down Expand Up @@ -320,7 +331,7 @@ public async Task WorkspaceActionsListAndRequestNamedWorkspace()
var window = new MainWindow(
1,
string.Empty,
null,
SettingsOnlyStartup,
stateStore: store,
workspaceRequested: name => requested = name);

Expand Down
Loading