@sentry/wizard
Version:
Sentry wizard helping you to configure your project
148 lines (117 loc) • 5.9 kB
text/typescript
import { getWithSentryConfigOptionsTemplate } from '../../src/nextjs/templates';
describe('NextJS code templates', () => {
describe('getWithSentryConfigOptionsTemplate', () => {
it('generates options for SaaS', () => {
const template = getWithSentryConfigOptionsTemplate({
orgSlug: 'my-org',
projectSlug: 'my-project',
selfHosted: false,
sentryUrl: 'https://dont-use-this-url.com',
tunnelRoute: true,
});
expect(template).toMatchInlineSnapshot(`
"{
// For all available options, see:
// https://github.com/getsentry/sentry-webpack-plugin#options
org: "my-org",
project: "my-project",
// Only print logs for uploading source maps in CI
silent: !process.env.CI,
// For all available options, see:
// https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/
// Upload a larger set of source maps for prettier stack traces (increases build time)
widenClientFileUpload: true,
// Route browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers.
// This can increase your server load as well as your hosting bill.
// Note: Check that the configured route will not match with your Next.js middleware, otherwise reporting of client-
// side errors will fail.
tunnelRoute: "/monitoring",
// Hides source maps from generated client bundles
hideSourceMaps: true,
// Automatically tree-shake Sentry logger statements to reduce bundle size
disableLogger: true,
// Enables automatic instrumentation of Vercel Cron Monitors. (Does not yet work with App Router route handlers.)
// See the following for more information:
// https://docs.sentry.io/product/crons/
// https://vercel.com/docs/cron-jobs
automaticVercelMonitors: true,
}"
`);
});
it('generates options for self-hosted', () => {
const template = getWithSentryConfigOptionsTemplate({
orgSlug: 'my-org',
projectSlug: 'my-project',
selfHosted: true,
sentryUrl: 'https://my-sentry.com',
tunnelRoute: true,
});
expect(template).toMatchInlineSnapshot(`
"{
// For all available options, see:
// https://github.com/getsentry/sentry-webpack-plugin#options
org: "my-org",
project: "my-project",
sentryUrl: "https://my-sentry.com",
// Only print logs for uploading source maps in CI
silent: !process.env.CI,
// For all available options, see:
// https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/
// Upload a larger set of source maps for prettier stack traces (increases build time)
widenClientFileUpload: true,
// Route browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers.
// This can increase your server load as well as your hosting bill.
// Note: Check that the configured route will not match with your Next.js middleware, otherwise reporting of client-
// side errors will fail.
tunnelRoute: "/monitoring",
// Hides source maps from generated client bundles
hideSourceMaps: true,
// Automatically tree-shake Sentry logger statements to reduce bundle size
disableLogger: true,
// Enables automatic instrumentation of Vercel Cron Monitors. (Does not yet work with App Router route handlers.)
// See the following for more information:
// https://docs.sentry.io/product/crons/
// https://vercel.com/docs/cron-jobs
automaticVercelMonitors: true,
}"
`);
});
it('comments out tunnelRoute if `tunnelRoute` option is disabled', () => {
const template = getWithSentryConfigOptionsTemplate({
orgSlug: 'my-org',
projectSlug: 'my-project',
selfHosted: false,
sentryUrl: 'https://dont-use-this-url.com',
tunnelRoute: false,
});
expect(template).toMatchInlineSnapshot(`
"{
// For all available options, see:
// https://github.com/getsentry/sentry-webpack-plugin#options
org: "my-org",
project: "my-project",
// Only print logs for uploading source maps in CI
silent: !process.env.CI,
// For all available options, see:
// https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/
// Upload a larger set of source maps for prettier stack traces (increases build time)
widenClientFileUpload: true,
// Uncomment to route browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers.
// This can increase your server load as well as your hosting bill.
// Note: Check that the configured route will not match with your Next.js middleware, otherwise reporting of client-
// side errors will fail.
// tunnelRoute: "/monitoring",
// Hides source maps from generated client bundles
hideSourceMaps: true,
// Automatically tree-shake Sentry logger statements to reduce bundle size
disableLogger: true,
// Enables automatic instrumentation of Vercel Cron Monitors. (Does not yet work with App Router route handlers.)
// See the following for more information:
// https://docs.sentry.io/product/crons/
// https://vercel.com/docs/cron-jobs
automaticVercelMonitors: true,
}"
`);
});
});
});