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(remix): Add Remix v2 future flags integration tests. #8397

Merged
merged 3 commits into from
Jun 26, 2023

Conversation

onurtemizkan
Copy link
Collaborator

@onurtemizkan onurtemizkan commented Jun 23, 2023

Added an integration test application using Remix 1.17.0 and v2 future flags to see the state of current SDK support for v2.

@github-actions
Copy link
Contributor

github-actions bot commented Jun 23, 2023

size-limit report 📦

Path Size
@sentry/browser - ES5 CDN Bundle (gzipped + minified) 21.3 KB (+0.61% 🔺)
@sentry/browser - ES5 CDN Bundle (minified) 66.43 KB (+0.46% 🔺)
@sentry/browser - ES6 CDN Bundle (gzipped + minified) 19.82 KB (+0.59% 🔺)
@sentry/browser - ES6 CDN Bundle (minified) 58.9 KB (+0.53% 🔺)
@sentry/browser - Webpack (gzipped + minified) 21.43 KB (+0.48% 🔺)
@sentry/browser - Webpack (minified) 69.87 KB (+0.51% 🔺)
@sentry/react - Webpack (gzipped + minified) 21.46 KB (+0.45% 🔺)
@sentry/nextjs Client - Webpack (gzipped + minified) 49.39 KB (+0.23% 🔺)
@sentry/browser + @sentry/tracing - ES5 CDN Bundle (gzipped + minified) 28.9 KB (+0.37% 🔺)
@sentry/browser + @sentry/tracing - ES6 CDN Bundle (gzipped + minified) 27.12 KB (+0.35% 🔺)
@sentry/replay ES6 CDN Bundle (gzipped + minified) 49.34 KB (+0.02% 🔺)
@sentry/replay - Webpack (gzipped + minified) 43.11 KB (+0.08% 🔺)
@sentry/browser + @sentry/tracing + @sentry/replay - ES6 CDN Bundle (gzipped + minified) 68.48 KB (+0.19% 🔺)
@sentry/browser + @sentry/replay - ES6 CDN Bundle (gzipped + minified) 61.38 KB (+0.21% 🔺)

@onurtemizkan onurtemizkan changed the title [WIP] Remix v2 Future Flags Integration Tests Remix v2 Future Flags Integration Tests Jun 26, 2023
@onurtemizkan onurtemizkan changed the title Remix v2 Future Flags Integration Tests test(remix): Add Remix v2 Future Flags Integration Tests Jun 26, 2023
@onurtemizkan onurtemizkan changed the title test(remix): Add Remix v2 Future Flags Integration Tests test(remix): Add Remix v2 future flags integration tests. Jun 26, 2023
@onurtemizkan onurtemizkan marked this pull request as ready for review June 26, 2023 10:15
@onurtemizkan onurtemizkan mentioned this pull request Jun 26, 2023
@Lms24 Lms24 self-requested a review June 26, 2023 11:01
Copy link
Member

@Lms24 Lms24 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good! I like how you managed to keep the core application reusable.

I'm assuming the differences in output (mostly transaction names from what I can see) are because of Remix' weird new routing API?

@@ -12,7 +14,9 @@ test('should capture React component errors.', async ({ page }) => {
expect(pageloadEnvelope.contexts?.trace.op).toBe('pageload');
expect(pageloadEnvelope.tags?.['routing.instrumentation']).toBe('remix-router');
expect(pageloadEnvelope.type).toBe('transaction');
expect(pageloadEnvelope.transaction).toBe('routes/error-boundary-capture/$id');
expect(pageloadEnvelope.transaction).toBe(
useV2 ? 'routes/error-boundary-capture.$id' : 'routes/error-boundary-capture/$id',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't have a lot of context around React/Remix error boundaries so I'm wondering: Why is the transaction name different here? Shouldn't $id always be a route segment? Or is this something that just currently doesn't work with our instrumentation and we need to adapt for v2?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like it's caused by the new route convention. I think we should address this in our transaction name logic for consistency. I'll check if we have access to any information about the final URLs inside our build-time route objects.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's keep the dot notation for transaction names if they are using the new route convention.

I'd rather just match the schema that remix uses - this transaction name (with periods) also means it's much easier for users to go in and find the exact file that was generating this route.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good points, Abhi. Then let's keep it.

@@ -8,5 +10,6 @@ test('should add `pageload` transaction on load.', async ({ page }) => {
expect(envelope.contexts?.trace.op).toBe('pageload');
expect(envelope.tags?.['routing.instrumentation']).toBe('remix-router');
expect(envelope.type).toBe('transaction');
expect(envelope.transaction).toBe('routes/index');

expect(envelope.transaction).toBe(useV2 ? 'root' : 'routes/index');
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Likewise, I'm assuming this is also something our current instrumentation just doesn't cover correctly in v2?

Copy link
Member

@Lms24 Lms24 Jun 26, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

<rant>eww, why these dot delimiters Remix 🥲 </rant>

No action required lol

@AbhiPrasad AbhiPrasad merged commit 0c19446 into develop Jun 26, 2023
65 checks passed
@AbhiPrasad AbhiPrasad deleted the onur/remix_future_flags branch June 26, 2023 17:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants