Skip to content

Commit dad72af

Browse files
✅ Create basePlugin tests (#4395)
1 parent a7c318d commit dad72af

32 files changed

Lines changed: 717 additions & 626 deletions

test/apps/angular-app/main.ts

Lines changed: 53 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import 'zone.js'
2-
import { Component } from '@angular/core'
2+
import { Component, inject } from '@angular/core'
33
import { bootstrapApplication } from '@angular/platform-browser'
4-
import { provideRouter, RouterOutlet, RouterLink, type Routes } from '@angular/router'
4+
import { provideRouter, RouterOutlet, RouterLink, ActivatedRoute, type Routes } from '@angular/router'
5+
import { NgIf } from '@angular/common'
56
import { datadogRum } from '@datadog/browser-rum'
67
import { angularPlugin, provideDatadogRouter, provideDatadogErrorHandler } from '@datadog/browser-rum-angular'
78

@@ -26,10 +27,11 @@ if (window.RUM_CONTEXT) {
2627
imports: [RouterLink],
2728
template: `
2829
<h1>Initial Route</h1>
29-
<a routerLink="/parameterized/42">Go to Parameterized Route</a><br />
30+
<a routerLink="/user/42" [queryParams]="{ admin: 'true' }">Go to User 42</a><br />
31+
<a routerLink="/guides/123">Go to Guides 123</a><br />
32+
<a routerLink="/error-test">Go to Error Test</a><br />
3033
<a routerLink="/parent/nested">Go to Nested Route</a><br />
3134
<a routerLink="/unknown/page">Go to Wildcard Route</a><br />
32-
<a id="query-param-link" [routerLink]="[]" [queryParams]="{ tab: 2 }">Change Query Param</a><br />
3335
<button id="throw-error" (click)="throwError()">Throw Error</button>
3436
<button id="throw-error-with-context" (click)="throwErrorWithContext()">Throw Error With Context</button>
3537
`,
@@ -47,11 +49,50 @@ class InitialRouteComponent {
4749
}
4850

4951
@Component({
50-
selector: 'app-parameterized-route',
52+
selector: 'app-user-route',
5153
standalone: true,
52-
template: '<h1>Parameterized Route</h1>',
54+
imports: [RouterLink],
55+
template: `
56+
<h1>User Page</h1>
57+
<a routerLink="/">Back to Home</a><br />
58+
<a [routerLink]="['/user', id]" fragment="section">Go to Section</a><br />
59+
<a [routerLink]="['/user', id]" [queryParams]="{ admin: 'false' }">Change query params</a><br />
60+
<a [routerLink]="['/user', '999']" [queryParams]="{ admin: 'true' }">Go to User 999</a>
61+
`,
62+
})
63+
class UserRouteComponent {
64+
protected id = inject(ActivatedRoute).snapshot.params['id'] as string
65+
}
66+
67+
@Component({
68+
selector: 'app-guides-route',
69+
standalone: true,
70+
imports: [RouterLink],
71+
template: `
72+
<h1>Guides</h1>
73+
<a routerLink="/">Back to Home</a>
74+
`,
5375
})
54-
class ParameterizedRouteComponent {}
76+
class GuidesRouteComponent {}
77+
78+
@Component({
79+
selector: 'app-error-test-route',
80+
standalone: true,
81+
imports: [NgIf],
82+
template: `
83+
<h1>Error Test</h1>
84+
<button data-testid="trigger-error" (click)="triggerError()">Trigger Error</button>
85+
<div *ngIf="hasError" data-testid="error-handled">Error occurred</div>
86+
`,
87+
})
88+
class ErrorTestRouteComponent {
89+
hasError = false
90+
91+
triggerError() {
92+
this.hasError = true
93+
throw new Error('Error triggered by button click')
94+
}
95+
}
5596

5697
@Component({
5798
selector: 'app-nested-route',
@@ -70,14 +111,8 @@ class WildcardRouteComponent {}
70111
@Component({
71112
selector: 'app-root',
72113
standalone: true,
73-
imports: [RouterOutlet, RouterLink],
74-
template: `
75-
<nav>
76-
<a routerLink="/">Initial Route</a>
77-
<a routerLink="/parameterized/42">Parameterized Route</a>
78-
</nav>
79-
<router-outlet></router-outlet>
80-
`,
114+
imports: [RouterOutlet],
115+
template: '<router-outlet></router-outlet>',
81116
})
82117
class AppComponent {}
83118

@@ -86,7 +121,9 @@ const nestedRoutes: Routes = [{ path: 'nested', component: NestedRouteComponent
86121

87122
const routes: Routes = [
88123
{ path: '', component: InitialRouteComponent },
89-
{ path: 'parameterized/:id', component: ParameterizedRouteComponent },
124+
{ path: 'user/:id', component: UserRouteComponent },
125+
{ path: 'guides/:slug', component: GuidesRouteComponent },
126+
{ path: 'error-test', component: ErrorTestRouteComponent },
90127
{ path: 'parent', loadChildren: () => Promise.resolve(nestedRoutes) },
91128
{ path: '**', component: WildcardRouteComponent },
92129
]

test/apps/angular-app/yarn.lock

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -296,46 +296,54 @@ __metadata:
296296

297297
"@datadog/browser-core@file:../../../packages/core/package.tgz::locator=angular-app%40workspace%3A.":
298298
version: 6.32.0
299-
resolution: "@datadog/browser-core@file:../../../packages/core/package.tgz#../../../packages/core/package.tgz::hash=eeb943&locator=angular-app%40workspace%3A."
300-
checksum: 10c0/cd90f8321ba682c3e0797d91568cf4cd49528ed54e91b41f473e3860dfb21fccac8a23e6b4d494ed45d649942b8bf5b34406c332350e22f9c57fbd919a5853e5
299+
resolution: "@datadog/browser-core@file:../../../packages/core/package.tgz#../../../packages/core/package.tgz::hash=b976bd&locator=angular-app%40workspace%3A."
300+
checksum: 10c0/c5376e0387f55a36796e44c9ed300d626115ee5c237fea6020baf6b01a9850bc3978ede8f25af984226b7dd10ff490e19699d418496dec3ce3782a5a077ce791
301301
languageName: node
302302
linkType: hard
303303

304304
"@datadog/browser-rum-angular@file:../../../packages/rum-angular/package.tgz::locator=angular-app%40workspace%3A.":
305+
version: 6.32.0
306+
resolution: "@datadog/browser-rum-angular@file:../../../packages/rum-angular/package.tgz#../../../packages/rum-angular/package.tgz::hash=142dd6&locator=angular-app%40workspace%3A."
305307
version: 6.32.0
306308
resolution: "@datadog/browser-rum-angular@file:../../../packages/rum-angular/package.tgz#../../../packages/rum-angular/package.tgz::hash=142dd6&locator=angular-app%40workspace%3A."
307309
dependencies:
308310
"@datadog/browser-core": "npm:6.32.0"
309311
"@datadog/browser-rum-core": "npm:6.32.0"
312+
"@datadog/browser-core": "npm:6.32.0"
313+
"@datadog/browser-rum-core": "npm:6.32.0"
310314
peerDependencies:
311315
"@angular/core": ">=15 <=21"
312316
"@angular/router": ">=15 <=21"
313317
rxjs: ">=7"
314318
checksum: 10c0/97ce5ce978ed7087cc30c1978dab7059fbfc3e5e031b241fae99effb0ba8590074f750e8daed0eb69f29608d26840e58342ea5ef95785f4cdfeda84583e1134b
319+
checksum: 10c0/97ce5ce978ed7087cc30c1978dab7059fbfc3e5e031b241fae99effb0ba8590074f750e8daed0eb69f29608d26840e58342ea5ef95785f4cdfeda84583e1134b
315320
languageName: node
316321
linkType: hard
317322

318323
"@datadog/browser-rum-core@file:../../../packages/rum-core/package.tgz::locator=angular-app%40workspace%3A.":
319324
version: 6.32.0
320-
resolution: "@datadog/browser-rum-core@file:../../../packages/rum-core/package.tgz#../../../packages/rum-core/package.tgz::hash=101ec7&locator=angular-app%40workspace%3A."
325+
resolution: "@datadog/browser-rum-core@file:../../../packages/rum-core/package.tgz#../../../packages/rum-core/package.tgz::hash=15f0f9&locator=angular-app%40workspace%3A."
321326
dependencies:
322327
"@datadog/browser-core": "npm:6.32.0"
323-
checksum: 10c0/b25d5c188789b608b6214b0e8fa3036db5147068aa6962d92c013cd5d7a8e11575580af6e51afd69f0fdeea223ee4226c23ccaa4e04530a8a7bc1078103a5759
328+
checksum: 10c0/c3e61f4cd3c728f1982d8c011780ab5e491adfc8080a445c7e00e7964f4e06ce914ede69dec9486d78817607d65342b2aea330ed9862416fd99d65dda6811b86
324329
languageName: node
325330
linkType: hard
326331

327332
"@datadog/browser-rum@file:../../../packages/rum/package.tgz::locator=angular-app%40workspace%3A.":
328333
version: 6.32.0
329-
resolution: "@datadog/browser-rum@file:../../../packages/rum/package.tgz#../../../packages/rum/package.tgz::hash=03a21f&locator=angular-app%40workspace%3A."
334+
resolution: "@datadog/browser-rum@file:../../../packages/rum/package.tgz#../../../packages/rum/package.tgz::hash=1363c2&locator=angular-app%40workspace%3A."
330335
dependencies:
331336
"@datadog/browser-core": "npm:6.32.0"
332337
"@datadog/browser-rum-core": "npm:6.32.0"
338+
"@datadog/browser-core": "npm:6.32.0"
339+
"@datadog/browser-rum-core": "npm:6.32.0"
333340
peerDependencies:
334341
"@datadog/browser-logs": 6.32.0
342+
"@datadog/browser-logs": 6.32.0
335343
peerDependenciesMeta:
336344
"@datadog/browser-logs":
337345
optional: true
338-
checksum: 10c0/09b8bfe21dfc1130da1290cc3911f8473c63eb27af60a0f3220b81b4666f46da6545a52d6e36bb9e4ce8e58dea61c9baf752ff64dafbed384a5b07b56357415e
346+
checksum: 10c0/5d9bf73141ecf4c150e8ce9c8a298205740208386814183ec61ca7e2dac5baba7270e1869003fcaf0e4a414930bbc242574d33a37f05c5aeef257d7ef03c655d
339347
languageName: node
340348
linkType: hard
341349

test/apps/nextjs/app/error-test/error.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export default function ErrorBoundary({ error, reset }: { error: Error & { diges
1515
}, [error])
1616

1717
return (
18-
<div data-testid="error-boundary" data-error-reported={errorReported || undefined}>
18+
<div data-testid="error-handled" data-error-reported={errorReported || undefined}>
1919
<h2>Something went wrong!</h2>
2020
{error.digest && <p data-testid="error-digest">Digest: {error.digest}</p>}
2121
<button onClick={reset}>Try again</button>

test/apps/nextjs/app/guides/[...slug]/page.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ export default async function GuidesPage({ params }: { params: Promise<{ slug: s
77
<div>
88
<Link href="/">Back to Home</Link>
99
<h1>Guides: {slug.join('/')}</h1>
10-
<p>This is a catch-all route testing slug normalization.</p>
1110
</div>
1211
)
1312
}

test/apps/nextjs/app/layout.tsx

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,4 @@
11
import { DatadogAppRouter } from '@datadog/browser-rum-nextjs'
2-
import type { Metadata } from 'next'
3-
4-
export const metadata: Metadata = {
5-
title: 'Next.js App Router Test',
6-
description: 'Test app for Datadog RUM Next.js integration',
7-
}
82

93
export default function RootLayout({ children, sidebar }: { children: React.ReactNode; sidebar: React.ReactNode }) {
104
return (

test/apps/nextjs/app/user/[id]/page.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ export default async function UserPage({ params }: { params: Promise<{ id: strin
77
<div>
88
<Link href="/">← Back to Home</Link>
99
<h1>User {id}</h1>
10-
<p>This is a dynamic route testing view name normalization.</p>
1110
<div>
1211
<Link href="/user/999?admin=true">Go to User 999</Link>
1312
</div>

test/apps/nextjs/pages/pages-router/error-test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ const ErrorFallback: ErrorBoundaryFallback = ({ error, resetError }) => {
2121
}, [error])
2222

2323
return (
24-
<div data-testid="error-boundary" data-error-reported={errorReported || undefined}>
24+
<div data-testid="error-handled" data-error-reported={errorReported || undefined}>
2525
<p>{error.message}</p>
2626
<button data-testid="reset-error" onClick={resetError}>
2727
Reset

test/apps/nextjs/pages/pages-router/guides/[...slug].tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ export default function GuidesPage() {
1010
<div>
1111
<Link href="/pages-router">← Back to Home</Link>
1212
<h1>Guides: {slugParts.join('/')}</h1>
13-
<p>This is a catch-all route testing slug normalization.</p>
1413
</div>
1514
)
1615
}

test/apps/nextjs/pages/pages-router/user/[id].tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ export default function UserPage() {
99
<div>
1010
<Link href="/pages-router">← Back to Home</Link>
1111
<h1>User {id}</h1>
12-
<p>This is a dynamic route testing view name normalization.</p>
1312
<div>
1413
<Link href="/pages-router/user/999?admin=true">Go to User 999</Link>
1514
</div>

test/apps/nextjs/yarn.lock

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,32 @@ __metadata:
77

88
"@datadog/browser-core@file:../../../packages/core/package.tgz::locator=nextjs%40workspace%3A.":
99
version: 6.32.0
10-
resolution: "@datadog/browser-core@file:../../../packages/core/package.tgz#../../../packages/core/package.tgz::hash=eeb943&locator=nextjs%40workspace%3A."
11-
checksum: 10c0/cd90f8321ba682c3e0797d91568cf4cd49528ed54e91b41f473e3860dfb21fccac8a23e6b4d494ed45d649942b8bf5b34406c332350e22f9c57fbd919a5853e5
10+
resolution: "@datadog/browser-core@file:../../../packages/core/package.tgz#../../../packages/core/package.tgz::hash=b976bd&locator=nextjs%40workspace%3A."
11+
checksum: 10c0/c5376e0387f55a36796e44c9ed300d626115ee5c237fea6020baf6b01a9850bc3978ede8f25af984226b7dd10ff490e19699d418496dec3ce3782a5a077ce791
1212
languageName: node
1313
linkType: hard
1414

1515
"@datadog/browser-rum-core@file:../../../packages/rum-core/package.tgz::locator=nextjs%40workspace%3A.":
1616
version: 6.32.0
17-
resolution: "@datadog/browser-rum-core@file:../../../packages/rum-core/package.tgz#../../../packages/rum-core/package.tgz::hash=101ec7&locator=nextjs%40workspace%3A."
17+
resolution: "@datadog/browser-rum-core@file:../../../packages/rum-core/package.tgz#../../../packages/rum-core/package.tgz::hash=15f0f9&locator=nextjs%40workspace%3A."
1818
dependencies:
1919
"@datadog/browser-core": "npm:6.32.0"
20-
checksum: 10c0/b25d5c188789b608b6214b0e8fa3036db5147068aa6962d92c013cd5d7a8e11575580af6e51afd69f0fdeea223ee4226c23ccaa4e04530a8a7bc1078103a5759
20+
checksum: 10c0/c3e61f4cd3c728f1982d8c011780ab5e491adfc8080a445c7e00e7964f4e06ce914ede69dec9486d78817607d65342b2aea330ed9862416fd99d65dda6811b86
2121
languageName: node
2222
linkType: hard
2323

2424
"@datadog/browser-rum-nextjs@file:../../../packages/rum-nextjs/package.tgz::locator=nextjs%40workspace%3A.":
25+
version: 6.32.0
26+
resolution: "@datadog/browser-rum-nextjs@file:../../../packages/rum-nextjs/package.tgz#../../../packages/rum-nextjs/package.tgz::hash=8c86df&locator=nextjs%40workspace%3A."
2527
version: 6.32.0
2628
resolution: "@datadog/browser-rum-nextjs@file:../../../packages/rum-nextjs/package.tgz#../../../packages/rum-nextjs/package.tgz::hash=8c86df&locator=nextjs%40workspace%3A."
2729
dependencies:
2830
"@datadog/browser-core": "npm:6.32.0"
2931
"@datadog/browser-rum-core": "npm:6.32.0"
3032
"@datadog/browser-rum-react": "npm:6.32.0"
33+
"@datadog/browser-core": "npm:6.32.0"
34+
"@datadog/browser-rum-core": "npm:6.32.0"
35+
"@datadog/browser-rum-react": "npm:6.32.0"
3136
peerDependencies:
3237
next: ">=13.0.0"
3338
react: ">=18.0.0"
@@ -37,15 +42,20 @@ __metadata:
3742
react:
3843
optional: true
3944
checksum: 10c0/ce06d80d0327618c4881ab5d0b79cc75f426a002fdd2ff23c24febabfed1f0a75935f74793bf9cfc65af99a1c72896e8aee3d0619096a5af960d364c1febb337
45+
checksum: 10c0/ce06d80d0327618c4881ab5d0b79cc75f426a002fdd2ff23c24febabfed1f0a75935f74793bf9cfc65af99a1c72896e8aee3d0619096a5af960d364c1febb337
4046
languageName: node
4147
linkType: hard
4248

4349
"@datadog/browser-rum-react@file:../../../packages/rum-react/package.tgz::locator=nextjs%40workspace%3A.":
50+
version: 6.32.0
51+
resolution: "@datadog/browser-rum-react@file:../../../packages/rum-react/package.tgz#../../../packages/rum-react/package.tgz::hash=ea456d&locator=nextjs%40workspace%3A."
4452
version: 6.32.0
4553
resolution: "@datadog/browser-rum-react@file:../../../packages/rum-react/package.tgz#../../../packages/rum-react/package.tgz::hash=ea456d&locator=nextjs%40workspace%3A."
4654
dependencies:
4755
"@datadog/browser-core": "npm:6.32.0"
4856
"@datadog/browser-rum-core": "npm:6.32.0"
57+
"@datadog/browser-core": "npm:6.32.0"
58+
"@datadog/browser-rum-core": "npm:6.32.0"
4959
peerDependencies:
5060
react: 18 || 19
5161
react-router: 6 || 7
@@ -62,21 +72,25 @@ __metadata:
6272
react-router-dom:
6373
optional: true
6474
checksum: 10c0/8180a256bb455af1d7cb651a01de35c63e8ec42991f465d044374b831f313250a8c4ff54f146fe08f2f658e5cc2c19b1a37cc3023df62a3ae7579e9571bdbb04
75+
checksum: 10c0/8180a256bb455af1d7cb651a01de35c63e8ec42991f465d044374b831f313250a8c4ff54f146fe08f2f658e5cc2c19b1a37cc3023df62a3ae7579e9571bdbb04
6576
languageName: node
6677
linkType: hard
6778

6879
"@datadog/browser-rum@file:../../../packages/rum/package.tgz::locator=nextjs%40workspace%3A.":
6980
version: 6.32.0
70-
resolution: "@datadog/browser-rum@file:../../../packages/rum/package.tgz#../../../packages/rum/package.tgz::hash=03a21f&locator=nextjs%40workspace%3A."
81+
resolution: "@datadog/browser-rum@file:../../../packages/rum/package.tgz#../../../packages/rum/package.tgz::hash=1363c2&locator=nextjs%40workspace%3A."
7182
dependencies:
7283
"@datadog/browser-core": "npm:6.32.0"
7384
"@datadog/browser-rum-core": "npm:6.32.0"
85+
"@datadog/browser-core": "npm:6.32.0"
86+
"@datadog/browser-rum-core": "npm:6.32.0"
7487
peerDependencies:
7588
"@datadog/browser-logs": 6.32.0
89+
"@datadog/browser-logs": 6.32.0
7690
peerDependenciesMeta:
7791
"@datadog/browser-logs":
7892
optional: true
79-
checksum: 10c0/09b8bfe21dfc1130da1290cc3911f8473c63eb27af60a0f3220b81b4666f46da6545a52d6e36bb9e4ce8e58dea61c9baf752ff64dafbed384a5b07b56357415e
93+
checksum: 10c0/5d9bf73141ecf4c150e8ce9c8a298205740208386814183ec61ca7e2dac5baba7270e1869003fcaf0e4a414930bbc242574d33a37f05c5aeef257d7ef03c655d
8094
languageName: node
8195
linkType: hard
8296

0 commit comments

Comments
 (0)