Skip to content

Commit

Permalink
Add option to provide request filters as a command line startup param…
Browse files Browse the repository at this point in the history
…eter
  • Loading branch information
cezarypiatek committed Jan 6, 2024
1 parent c18caf7 commit b814797
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,28 +13,35 @@ public static class WireMockServerExtensions
/// <remarks>
/// The current thread will be blocked until WireMockInspector process exits.
/// </remarks>
public static void Inspect(this IWireMockServer wireMock, [CallerMemberName] string title = "")
public static void Inspect(this IWireMockServer wireMock, [CallerMemberName] string title = "", string requestFilters = "")
{
if (wireMock.IsStarted == false)
throw new InvalidOperationException("WireMock server is not started");

if (wireMock.IsStartedWithAdminInterface == false)
throw new InvalidOperationException("WireMock service is not started with Admin interface");

Inspect(wireMock.Url!, title);
Inspect(wireMock.Url!, title, requestFilters);
}

/// <summary>
/// Run WireMockInspector dotnet tool and attach it to existing WireMockServer listening under given url
/// </summary>
public static void Inspect(string wireMockUrl, [CallerMemberName] string title = "")
public static void Inspect(string wireMockUrl, [CallerMemberName] string title = "", string requestFilters = "")
{
//request.header.traceparent:*0fd18063ed68b122d3e659ecbb4e6f0d*
try
{
var arguments = $"attach --adminUrl {wireMockUrl} --autoLoad --instanceName \"{title}\"";
if (string.IsNullOrWhiteSpace(requestFilters) == false)
{
arguments += $" --requestFilters \"{requestFilters}\"";
}

var inspectorProcess = Process.Start(new ProcessStartInfo
{
FileName = "wiremockinspector",
Arguments = $"attach --adminUrl {wireMockUrl} --autoLoad --instanceName \"{title}\"",
Arguments = arguments,
UseShellExecute = false
});

Expand Down
11 changes: 8 additions & 3 deletions src/WireMockInspector/App.axaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,16 +36,20 @@ public override void OnFrameworkInitializationCompleted()
attachCommand.AddOption(autoLoadOption);
var instanceNameOption = new Option<string>("--instanceName") { IsRequired = false };
attachCommand.AddOption(instanceNameOption);

var requestFiltersOption = new Option<string>("--requestFilters") { IsRequired = false };
attachCommand.AddOption(requestFiltersOption);

attachCommand.SetHandler((adminUrl, autoLoad, instanceName) =>
attachCommand.SetHandler((adminUrl, autoLoad, instanceName, requestFilters) =>
{
mainWindow.Settings = new StartupSettings
{
AdminUrl = adminUrl,
InstanceName = instanceName,
AutoLoad = autoLoad
AutoLoad = autoLoad,
RequestFilters = requestFilters
};
}, adminUrlOption, autoLoadOption, instanceNameOption);
}, adminUrlOption, autoLoadOption, instanceNameOption, requestFiltersOption);
rootCommand.AddCommand(attachCommand);
rootCommand.SetHandler(() => { });
rootCommand.Invoke(args);
Expand All @@ -63,5 +67,6 @@ public class StartupSettings
public string AdminUrl { get; set; }
public bool AutoLoad { get; set; }
public string InstanceName { get; set; }
public string RequestFilters { get; set; }
}
}
6 changes: 5 additions & 1 deletion src/WireMockInspector/Views/MainWindow.axaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,13 @@ public MainWindow()
if (Settings != null)
{
ViewModel.AdminUrl = Settings.AdminUrl;
if (Settings.AutoLoad)
{
ViewModel.LoadRequestsCommand.Execute().Subscribe().DisposeWith(disposables);
ViewModel.LoadRequestsCommand.Execute().ObserveOn(RxApp.MainThreadScheduler).Subscribe(_ =>
{
ViewModel.RequestSearchTerm = Settings.RequestFilters;
}).DisposeWith(disposables);
}
if (string.IsNullOrWhiteSpace(Settings.InstanceName) == false)
Expand Down

0 comments on commit b814797

Please sign in to comment.