From 859122c153d83cce5157714783f0890e26039351 Mon Sep 17 00:00:00 2001 From: Cezary Piatek Date: Sat, 6 Jan 2024 19:30:31 +0100 Subject: [PATCH 1/4] Fix escaping for wiremockinspector instance name --- .../WireMockServerExtensions.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/WireMock.Net.Extensions.WireMockInspector/WireMockServerExtensions.cs b/src/WireMock.Net.Extensions.WireMockInspector/WireMockServerExtensions.cs index 11da9d2..da2a463 100644 --- a/src/WireMock.Net.Extensions.WireMockInspector/WireMockServerExtensions.cs +++ b/src/WireMock.Net.Extensions.WireMockInspector/WireMockServerExtensions.cs @@ -34,7 +34,7 @@ public static void Inspect(string wireMockUrl, [CallerMemberName] string title = var inspectorProcess = Process.Start(new ProcessStartInfo { FileName = "wiremockinspector", - Arguments = $"attach --adminUrl {wireMockUrl} --autoLoad --instanceName {title}", + Arguments = $"attach --adminUrl {wireMockUrl} --autoLoad --instanceName \"{title}\"", UseShellExecute = false }); From 8b9a15a804025c365f8bdf4e7f165469fe8b6ca4 Mon Sep 17 00:00:00 2001 From: Cezary Piatek Date: Sat, 6 Jan 2024 19:30:53 +0100 Subject: [PATCH 2/4] Add headers for request body diff --- src/WireMockInspector/Views/RequestDetails.axaml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/WireMockInspector/Views/RequestDetails.axaml b/src/WireMockInspector/Views/RequestDetails.axaml index 3de95ce..14641cc 100644 --- a/src/WireMockInspector/Views/RequestDetails.axaml +++ b/src/WireMockInspector/Views/RequestDetails.axaml @@ -258,13 +258,19 @@ - - - + + + - - + + + + + EXPECTED + ACTUAL + + From a18db9814726e4a31f23fabc81d6410e77dda423 Mon Sep 17 00:00:00 2001 From: Cezary Piatek Date: Sat, 6 Jan 2024 19:31:18 +0100 Subject: [PATCH 3/4] Bump up dependencies --- .../WireMockInspector.csproj | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/WireMockInspector/WireMockInspector.csproj b/src/WireMockInspector/WireMockInspector.csproj index 76cb4e0..ad4994b 100644 --- a/src/WireMockInspector/WireMockInspector.csproj +++ b/src/WireMockInspector/WireMockInspector.csproj @@ -40,27 +40,27 @@ - - - - - - + + + + + + - - - - + + + + - - - + + + - - + + From 44f5abe0b8452064f26cbbda73b0659cb9469fad Mon Sep 17 00:00:00 2001 From: Cezary Piatek Date: Sat, 6 Jan 2024 19:50:28 +0100 Subject: [PATCH 4/4] Add option to provide request filters as a command line startup parameter --- .../WireMockServerExtensions.cs | 15 +++++++++++---- src/WireMockInspector/App.axaml.cs | 11 ++++++++--- src/WireMockInspector/Views/MainWindow.axaml.cs | 6 +++++- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/WireMock.Net.Extensions.WireMockInspector/WireMockServerExtensions.cs b/src/WireMock.Net.Extensions.WireMockInspector/WireMockServerExtensions.cs index da2a463..b42fad0 100644 --- a/src/WireMock.Net.Extensions.WireMockInspector/WireMockServerExtensions.cs +++ b/src/WireMock.Net.Extensions.WireMockInspector/WireMockServerExtensions.cs @@ -13,7 +13,7 @@ public static class WireMockServerExtensions /// /// The current thread will be blocked until WireMockInspector process exits. /// - 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"); @@ -21,20 +21,27 @@ public static void Inspect(this IWireMockServer wireMock, [CallerMemberName] str if (wireMock.IsStartedWithAdminInterface == false) throw new InvalidOperationException("WireMock service is not started with Admin interface"); - Inspect(wireMock.Url!, title); + Inspect(wireMock.Url!, title, requestFilters); } /// /// Run WireMockInspector dotnet tool and attach it to existing WireMockServer listening under given url /// - 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 }); diff --git a/src/WireMockInspector/App.axaml.cs b/src/WireMockInspector/App.axaml.cs index 70cc2b9..a5b79b2 100644 --- a/src/WireMockInspector/App.axaml.cs +++ b/src/WireMockInspector/App.axaml.cs @@ -36,16 +36,20 @@ public override void OnFrameworkInitializationCompleted() attachCommand.AddOption(autoLoadOption); var instanceNameOption = new Option("--instanceName") { IsRequired = false }; attachCommand.AddOption(instanceNameOption); + + var requestFiltersOption = new Option("--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); @@ -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; } } } \ No newline at end of file diff --git a/src/WireMockInspector/Views/MainWindow.axaml.cs b/src/WireMockInspector/Views/MainWindow.axaml.cs index db21319..9e3b369 100644 --- a/src/WireMockInspector/Views/MainWindow.axaml.cs +++ b/src/WireMockInspector/Views/MainWindow.axaml.cs @@ -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)