这是indexloc提供的服务,不要输入任何密码
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
5 changes: 2 additions & 3 deletions Developer-guide.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -307,9 +307,8 @@
"\n",
"var peakyClient = new PeakyClient(new Uri(\"https://localhost:7061/tests\"));\n",
"\n",
"var tests = (await peakyClient.GetTestsAsync(environment: \"Development\")) \n",
" .Where(t => t.Tags.Any(tag => tag == \"kernel\"));\n",
" \n",
"var tests = (await peakyClient.GetTestsAsync()).Where(t => t.Tags.Any(tag => tag == \"self\"));\n",
"\n",
"foreach (var test in tests)\n",
"{\n",
" var result = await test.GetResultAsync();\n",
Expand Down
2 changes: 1 addition & 1 deletion Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="8.0.3" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly" Version="8.0.3" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="8.0.3" />
<PackageVersion Include="Microsoft.DotNet.Interactive.CSharpProject" Version="1.0.0-beta.24217.2" />
<PackageVersion Include="Microsoft.DotNet.Interactive.CSharpProject" Version="1.0.0-beta.24224.2" />
<PackageVersion Include="Microsoft.Playwright" Version="1.42.0" />
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
<PackageVersion Include="peaky.client" Version="4.0.79" />
Expand Down
4 changes: 2 additions & 2 deletions src/Microsoft.TryDotNet.Tests/CommandExecutionTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,10 @@ public async Task can_compile_projects_with_user_code_in_region()

var responseJson = JsonDocument.Parse(await response.Content.ReadAsStringAsync(CancellationToken.None)).RootElement;

var events = responseJson.GetProperty("events").EnumerateArray().Select(KernelEventEnvelope.Deserialize).Select(ee=>ee.Event).ToList();
var events = responseJson.GetProperty("events").EnumerateArray().Select(KernelEventEnvelope.Deserialize).Select(ee => ee.Event).ToList();

using var _ = new AssertionScope();

response.EnsureSuccessStatusCode();

var assemblyProduced = events.OfType<AssemblyProduced>().SingleOrDefault();
Expand Down
47 changes: 47 additions & 0 deletions src/Microsoft.TryDotNet/KernelDiagnostics.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System.Diagnostics;
using Microsoft.DotNet.Interactive;
using Pocket;

namespace Microsoft.TryDotNet;

internal static class KernelDiagnostics
{
[DebuggerStepThrough]
public static T LogCommandsToPocketLogger<T>(this T kernel)
where T : Kernel
{
kernel.AddMiddleware(async (command, context, next) =>
{
using var _ = Logger.Log.OnEnterAndExit();
Logger.Log.Info(command);

await next(command, context);
});
return kernel;
}

[DebuggerStepThrough]
public static T LogEventsToPocketLogger<T>(this T kernel)
where T : Kernel
{
var disposables = new CompositeDisposable();

kernel.VisitSubkernelsAndSelf(k =>
{
disposables.Add(
k.KernelEvents.Subscribe(e =>
{
Logger.Log.Info("{kernel}: {event}",
k.Name,
e);
}));
});

kernel.RegisterForDisposal(disposables);

return kernel;
}
}
64 changes: 64 additions & 0 deletions src/Microsoft.TryDotNet/PeakyTestPageRenderer.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System.Web;
using Peaky;

namespace Microsoft.TryDotNet;

public class PeakyTestPageRenderer : ITestPageRenderer
{
private readonly IServiceProvider _serviceProvider;

public PeakyTestPageRenderer(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
}

public async Task Render(HttpContext context)
{
var testDefinitions = _serviceProvider.GetRequiredService<TestDefinitionRegistry>();
var testTargets = _serviceProvider.GetRequiredService<TestTargetRegistry>();

await WriteTestList();

async Task WriteTestList()
{
foreach (var target in testTargets)
{
await context.Response.WriteAsync(
$"""
<div>
<h2>Tests for environment "{target.Environment}"</h2>
""");

foreach (var test in testDefinitions)
{
if (test.AppliesTo(target))
{
var urlString = HttpUtility.HtmlAttributeEncode("");

await context.Response.WriteAsync(
$"""
<details>
<summary><a href="{urlString}">{test.TestName}</a></summary>
<div style="display:inline-block;margin-left:3em;">
Application: {target.Application}
<br/>
Environment: {target.Environment}
<br/>
Tags: {string.Join(",", test.Tags)}
</div>
</details>
""");
}
}

await context.Response.WriteAsync(
"""
</div>
""");
}
}
}
}

This file was deleted.

2 changes: 2 additions & 0 deletions src/Microsoft.TryDotNet/PeakyTests/HostOriginPolicies.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ public class HostOriginPolicies

static HostOriginPolicies()
{
// FIX: (HostOriginPolicies) clean up

var productionPolicies = new Dictionary<string, HostOriginPolicy>
{
// Microsoft
Expand Down
11 changes: 0 additions & 11 deletions src/Microsoft.TryDotNet/PeakyTests/IQueryExecutor.cs

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@

namespace Microsoft.TryDotNet.PeakyTests;

public class ExternalTests : IPeakyTest, IApplyToApplication, IHaveTags
internal class OutsideInTests : IPeakyTest, IApplyToApplication, IHaveTags
{
private readonly HttpClientWithTelemetry _httpClient;
private readonly HttpClientWithXsrfCookies _httpClientWithXsrfCookies;
private readonly TestTarget _testTarget;

public ExternalTests(
public OutsideInTests(
HttpClientWithTelemetry httpClient,
HttpClientWithXsrfCookies httpClientWithXsrfCookies,
TestTarget testTarget)
Expand All @@ -27,7 +27,7 @@ public ExternalTests(
_testTarget = testTarget;
}

public string[] Tags => new[] { "deployment" };
public string[] Tags => ["deployment"];

public async Task<string> Version_sensor_returns_200()
{
Expand Down
18 changes: 0 additions & 18 deletions src/Microsoft.TryDotNet/PeakyTests/Query.cs

This file was deleted.

4 changes: 2 additions & 2 deletions src/Microsoft.TryDotNet/PeakyTests/SelfTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ namespace Microsoft.TryDotNet.PeakyTests;

public class SelfTests : IPeakyTest, IHaveTags, IApplyToApplication
{
public string[] Tags => ["self"];

public async Task<Prebuild> Console_prebuild_is_ready()
{
var prebuild = await Prebuild.GetOrCreateConsolePrebuildAsync(enableBuild: false);
Expand Down Expand Up @@ -97,7 +99,5 @@ public static void Main(string[] args)
});
}

public string[] Tags => new[] { "kernel" };

public bool AppliesToApplication(string application) => application == "trydotnet";
}
70 changes: 52 additions & 18 deletions src/Microsoft.TryDotNet/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ namespace Microsoft.TryDotNet;
public class Program
{
private static Prebuild? _consolePrebuild;
private static bool _loggingEnabled;

public static async Task Main(string[] args)
{
Expand Down Expand Up @@ -55,27 +56,49 @@ public static async Task<WebApplication> CreateWebApplicationAsync(WebApplicatio

_consolePrebuild = await Prebuild.GetOrCreateConsolePrebuildAsync(enableBuild: false);

builder.Services.AddPeakyTests(tests =>
builder.Services.AddTransient<ITestPageRenderer>(provider =>
{
tests.Add(
"Development",
"trydotnet",
new Uri(EnvironmentSettings.ForLocal.HostOrigin));
tests.Add(
"Staging",
"trydotnet",
new Uri(EnvironmentSettings.ForPreProduction.HostOrigin));
tests.Add(
"Production",
"trydotnet",
new Uri(EnvironmentSettings.ForProduction.HostOrigin));
return new PeakyTestPageRenderer(provider);
});

switch (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"))
{
case "Development":
builder.Services.AddPeakyTests(tests =>
{
tests.Add(
"Development",
"trydotnet",
new Uri(EnvironmentSettings.ForLocal.HostOrigin));
});
break;

case "Staging":
builder.Services.AddPeakyTests(tests =>
{
tests.Add(
"Staging",
"trydotnet",
new Uri(EnvironmentSettings.ForPreProduction.HostOrigin));
});
break;

case "Production":
default:
builder.Services.AddPeakyTests(tests =>
{
tests.Add(
"Production",
"trydotnet",
new Uri(EnvironmentSettings.ForProduction.HostOrigin));
});
break;
}

CSharpProjectKernel.RegisterEventsAndCommands();

var app = builder.Build();

// app.UseHttpsRedirection();

app.UseCors("trydotnet");
app.UseBlazorFrameworkFiles("/wasmrunner");
app.UsePeaky();
Expand Down Expand Up @@ -127,9 +150,18 @@ private static async Task EnsurePrebuildIsReadyAsync()
await prebuild.EnsureReadyAsync();
}

internal static CSharpProjectKernel CreateKernel() =>
new("csharp.console", PrebuildFinder.Create(() => Task.FromResult(_consolePrebuild)));
internal static CSharpProjectKernel CreateKernel()
{
var kernel = new CSharpProjectKernel("csharp.console", PrebuildFinder.Create(() => Task.FromResult(_consolePrebuild)));

if (_loggingEnabled)
{
kernel.LogCommandsToPocketLogger();
kernel.LogEventsToPocketLogger();
}

return kernel;
}

private static readonly Assembly[] _assembliesEmittingPocketLoggerLogs =
[
Expand All @@ -143,6 +175,8 @@ public static void StartLogging(Assembly[]? assembliesToSubscribe = null)
{
if (Environment.GetEnvironmentVariable("POCKETLOGGER_LOG_PATH") is { } logFile)
{
_loggingEnabled = true;

var logPath = new FileInfo(logFile).Directory;

Console.WriteLine($"Logging to: {logPath}");
Expand All @@ -168,4 +202,4 @@ public static void StartLogging(Assembly[]? assembliesToSubscribe = null)
args.SetObserved();
};
}
}
}
2 changes: 1 addition & 1 deletion src/Microsoft.TryDotNet/Properties/launchSettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"TryDotNet-Development": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "editor",
"launchUrl": "tests",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
Expand Down
1 change: 1 addition & 0 deletions src/microsoft-trydotnet-editor/src/EditorAdapter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ export abstract class EditorAdapter {

displayDiagnostics(diagnostics: polyglotNotebooks.Diagnostic[]) {
const markers: IMarkerData[] = [];

for (const diagnostic of diagnostics) {
let severity = MarkerSeverity.Info;

Expand Down