Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: #18 RaygunErrorBoundary tests #53

Merged
merged 16 commits into from
Oct 9, 2024
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
1 change: 0 additions & 1 deletion src/Raygun.Blazor.Server/Controls/RaygunErrorBoundary.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ public class RaygunErrorBoundary : ErrorBoundary
/// <returns></returns>
protected override async Task OnErrorAsync(Exception exception)
{
Console.WriteLine("OnErrorAsync");
TheRealAgentK marked this conversation as resolved.
Show resolved Hide resolved
if (!RaygunSettings.Value.CatchUnhandledExceptions) return;

await RaygunClient.RecordExceptionAsync(exception, null, ["UnhandledException", "Blazor", ".NET"]);
Expand Down
14 changes: 7 additions & 7 deletions src/Raygun.Blazor.sln
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Raygun.Tests.Blazor", "Raygun.Tests.Blazor\Raygun.Tests.Blazor.csproj", "{D21D30DD-3133-483E-ABF9-F1AA552B11B4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Raygun.Tests.Blazor.WebAssembly", "Raygun.Tests.Blazor.WebAssembly\Raygun.Tests.Blazor.WebAssembly.csproj", "{A9A0782E-395E-413B-80E3-BE2C18E25ECB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Raygun.Blazor.Server", "Raygun.Blazor.Server\Raygun.Blazor.Server.csproj", "{F05FD8B3-E379-4520-9008-013D0CD3C983}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Raygun.Samples.Blazor.WebAssembly", "Raygun.Samples.Blazor.WebAssembly\Raygun.Samples.Blazor.WebAssembly.csproj", "{CDBE774B-4AEA-4277-9044-A9718C03CEF6}"
Expand All @@ -36,6 +34,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Raygun.Samples.Blazor.Maui"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Raygun.Blazor.Maui", "Raygun.Blazor.Maui\Raygun.Blazor.Maui.csproj", "{D7F13D0C-4F1C-49D7-B3C0-BF9FE6C46E38}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Raygun.Tests.Blazor.Server", "Raygun.Tests.Blazor.Server\Raygun.Tests.Blazor.Server.csproj", "{54C47781-5CD6-4C85-974B-A521DB03A1DB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand All @@ -54,10 +54,6 @@ Global
{D21D30DD-3133-483E-ABF9-F1AA552B11B4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D21D30DD-3133-483E-ABF9-F1AA552B11B4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D21D30DD-3133-483E-ABF9-F1AA552B11B4}.Release|Any CPU.Build.0 = Release|Any CPU
{A9A0782E-395E-413B-80E3-BE2C18E25ECB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A9A0782E-395E-413B-80E3-BE2C18E25ECB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A9A0782E-395E-413B-80E3-BE2C18E25ECB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A9A0782E-395E-413B-80E3-BE2C18E25ECB}.Release|Any CPU.Build.0 = Release|Any CPU
{F05FD8B3-E379-4520-9008-013D0CD3C983}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F05FD8B3-E379-4520-9008-013D0CD3C983}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F05FD8B3-E379-4520-9008-013D0CD3C983}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand All @@ -80,6 +76,10 @@ Global
{D7F13D0C-4F1C-49D7-B3C0-BF9FE6C46E38}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D7F13D0C-4F1C-49D7-B3C0-BF9FE6C46E38}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D7F13D0C-4F1C-49D7-B3C0-BF9FE6C46E38}.Release|Any CPU.Build.0 = Release|Any CPU
{54C47781-5CD6-4C85-974B-A521DB03A1DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{54C47781-5CD6-4C85-974B-A521DB03A1DB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{54C47781-5CD6-4C85-974B-A521DB03A1DB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{54C47781-5CD6-4C85-974B-A521DB03A1DB}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand All @@ -88,11 +88,11 @@ Global
{8A3CFEA0-2E8B-4C45-91A8-2FD075486B11} = {4DC8B2BE-3AB9-4068-BC72-F97B75716E85}
{AA9AC6CD-D344-42E7-908B-8252466CB26D} = {4DC8B2BE-3AB9-4068-BC72-F97B75716E85}
{D21D30DD-3133-483E-ABF9-F1AA552B11B4} = {B100EB75-8D39-4595-8B7E-8FF2B330273B}
{A9A0782E-395E-413B-80E3-BE2C18E25ECB} = {B100EB75-8D39-4595-8B7E-8FF2B330273B}
{F05FD8B3-E379-4520-9008-013D0CD3C983} = {4DC8B2BE-3AB9-4068-BC72-F97B75716E85}
{CDBE774B-4AEA-4277-9044-A9718C03CEF6} = {A27A5729-C507-433E-8A2B-DEB55C3B6B66}
{9511EF9F-566B-401C-A553-FD137A425C20} = {A27A5729-C507-433E-8A2B-DEB55C3B6B66}
{D7F13D0C-4F1C-49D7-B3C0-BF9FE6C46E38} = {4DC8B2BE-3AB9-4068-BC72-F97B75716E85}
{54C47781-5CD6-4C85-974B-A521DB03A1DB} = {B100EB75-8D39-4595-8B7E-8FF2B330273B}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {07FC9E40-0B7C-4088-934B-9204C2719530}
Expand Down
6 changes: 6 additions & 0 deletions src/Raygun.Blazor/Raygun.Blazor.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -72,5 +72,11 @@
</AssemblyAttribute>
</ItemGroup>

<ItemGroup>
<AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleToAttribute">
<_Parameter1>Raygun.Tests.Blazor.Server, $(StrongNamePublicKey)</_Parameter1>
</AssemblyAttribute>
</ItemGroup>
TheRealAgentK marked this conversation as resolved.
Show resolved Hide resolved


</Project>
20 changes: 20 additions & 0 deletions src/Raygun.Tests.Blazor.Server/Components/App.razor
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<base href="/" />
<link rel="stylesheet" href="bootstrap/bootstrap.min.css" />
<link rel="stylesheet" href="app.css" />
<link rel="stylesheet" href="Raygun.Tests.Blazor.Server.styles.css" />
<link rel="icon" type="image/png" href="favicon.png" />
<HeadOutlet @rendermode="InteractiveServer" />
</head>

<body>
<Routes @rendermode="InteractiveServer" />
<script src="_framework/blazor.web.js"></script>
</body>

</html>
20 changes: 20 additions & 0 deletions src/Raygun.Tests.Blazor.Server/Components/Layout/MainLayout.razor
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
@using Raygun.Blazor.Server.Controls
@inherits LayoutComponentBase

<div class="page">
<div class="sidebar">
<NavMenu />
</div>

<main>
<div class="top-row px-4">
<a href="https://learn.microsoft.com/aspnet/core/" target="_blank">About</a>
</div>

<article class="content px-4">
<RaygunErrorBoundary>
@Body
</RaygunErrorBoundary>
TheRealAgentK marked this conversation as resolved.
Show resolved Hide resolved
</article>
</main>
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
.page {
position: relative;
display: flex;
flex-direction: column;
}

main {
flex: 1;
}

.sidebar {
background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}

.top-row {
background-color: #f7f7f7;
border-bottom: 1px solid #d6d5d5;
justify-content: flex-end;
height: 3.5rem;
display: flex;
align-items: center;
}

.top-row ::deep a, .top-row ::deep .btn-link {
white-space: nowrap;
margin-left: 1.5rem;
text-decoration: none;
}

.top-row ::deep a:hover, .top-row ::deep .btn-link:hover {
text-decoration: underline;
}

.top-row ::deep a:first-child {
overflow: hidden;
text-overflow: ellipsis;
}

@media (max-width: 640.98px) {
.top-row {
justify-content: space-between;
}

.top-row ::deep a, .top-row ::deep .btn-link {
margin-left: 0;
}
}

@media (min-width: 641px) {
.page {
flex-direction: row;
}

.sidebar {
width: 250px;
height: 100vh;
position: sticky;
top: 0;
}

.top-row {
position: sticky;
top: 0;
z-index: 1;
}

.top-row.auth ::deep a:first-child {
flex: 1;
text-align: right;
width: 0;
}

.top-row, article {
padding-left: 2rem !important;
padding-right: 1.5rem !important;
}
}

#blazor-error-ui {
background: lightyellow;
bottom: 0;
box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
display: none;
left: 0;
padding: 0.6rem 1.25rem 0.7rem 1.25rem;
position: fixed;
width: 100%;
z-index: 1000;
}

#blazor-error-ui .dismiss {
cursor: pointer;
position: absolute;
right: 0.75rem;
top: 0.5rem;
}
18 changes: 18 additions & 0 deletions src/Raygun.Tests.Blazor.Server/Components/Layout/NavMenu.razor
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<div class="top-row ps-3 navbar navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="">Raygun.Tests.Blazor.Server</a>
</div>
</div>

<input type="checkbox" title="Navigation menu" class="navbar-toggler" />

<div class="nav-scrollable" onclick="document.querySelector('.navbar-toggler').click()">
<nav class="flex-column">
<div class="nav-item px-3">
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
<span class="bi bi-house-door-fill-nav-menu" aria-hidden="true"></span> TestComponent
</NavLink>
</div>
</nav>
</div>

105 changes: 105 additions & 0 deletions src/Raygun.Tests.Blazor.Server/Components/Layout/NavMenu.razor.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
.navbar-toggler {
appearance: none;
cursor: pointer;
width: 3.5rem;
height: 2.5rem;
color: white;
position: absolute;
top: 0.5rem;
right: 1rem;
border: 1px solid rgba(255, 255, 255, 0.1);
background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1);
}

.navbar-toggler:checked {
background-color: rgba(255, 255, 255, 0.5);
}

.top-row {
height: 3.5rem;
background-color: rgba(0,0,0,0.4);
}

.navbar-brand {
font-size: 1.1rem;
}

.bi {
display: inline-block;
position: relative;
width: 1.25rem;
height: 1.25rem;
margin-right: 0.75rem;
top: -1px;
background-size: cover;
}

.bi-house-door-fill-nav-menu {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.bi-plus-square-fill-nav-menu {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
}

.bi-list-nested-nav-menu {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
}

.nav-item {
font-size: 0.9rem;
padding-bottom: 0.5rem;
}

.nav-item:first-of-type {
padding-top: 1rem;
}

.nav-item:last-of-type {
padding-bottom: 1rem;
}

.nav-item ::deep .nav-link {
color: #d7d7d7;
background: none;
border: none;
border-radius: 4px;
height: 3rem;
display: flex;
align-items: center;
line-height: 3rem;
width: 100%;
}

.nav-item ::deep a.active {
background-color: rgba(255,255,255,0.37);
color: white;
}

.nav-item ::deep .nav-link:hover {
background-color: rgba(255,255,255,0.1);
color: white;
}

.nav-scrollable {
display: none;
}

.navbar-toggler:checked ~ .nav-scrollable {
display: block;
}

@media (min-width: 641px) {
.navbar-toggler {
display: none;
}

.nav-scrollable {
/* Never collapse the sidebar for wide screens */
display: block;

/* Allow sidebar to scroll for tall menus */
height: calc(100vh - 3.5rem);
overflow-y: auto;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
@page "/"
@using Raygun.Blazor.Server.Controls

<h3>TestComponent</h3>

<button @onclick="ThrowException">Throw exception</button>

@code {
private void ThrowException(MouseEventArgs e)
{
throw new Exception("Captured error!");
}
}
TheRealAgentK marked this conversation as resolved.
Show resolved Hide resolved
6 changes: 6 additions & 0 deletions src/Raygun.Tests.Blazor.Server/Components/Routes.razor
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<Router AppAssembly="typeof(Program).Assembly">
<Found Context="routeData">
<RouteView RouteData="routeData" DefaultLayout="typeof(Layout.MainLayout)" />
<FocusOnNavigate RouteData="routeData" Selector="h1" />
</Found>
</Router>
10 changes: 10 additions & 0 deletions src/Raygun.Tests.Blazor.Server/Components/_Imports.razor
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
@using System.Net.Http
@using System.Net.Http.Json
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
@using static Microsoft.AspNetCore.Components.Web.RenderMode
@using Microsoft.AspNetCore.Components.Web.Virtualization
@using Microsoft.JSInterop
@using Raygun.Tests.Blazor.Server
@using Raygun.Tests.Blazor.Server.Components
Loading
Loading