64 lines
1.6 KiB
JavaScript
64 lines
1.6 KiB
JavaScript
import index from '~/sentry/index';
|
|
|
|
import LegacySentryConfig from '~/sentry/legacy_sentry_config';
|
|
import SentryConfig from '~/sentry/sentry_config';
|
|
|
|
describe('Sentry init', () => {
|
|
let originalGon;
|
|
|
|
const dsn = 'https://123@sentry.gitlab.test/123';
|
|
const environment = 'test';
|
|
const currentUserId = '1';
|
|
const gitlabUrl = 'gitlabUrl';
|
|
const revision = 'revision';
|
|
const featureCategory = 'my_feature_category';
|
|
|
|
beforeEach(() => {
|
|
originalGon = window.gon;
|
|
window.gon = {
|
|
sentry_dsn: dsn,
|
|
sentry_environment: environment,
|
|
current_user_id: currentUserId,
|
|
gitlab_url: gitlabUrl,
|
|
revision,
|
|
feature_category: featureCategory,
|
|
};
|
|
|
|
jest.spyOn(LegacySentryConfig, 'init').mockImplementation();
|
|
jest.spyOn(SentryConfig, 'init').mockImplementation();
|
|
});
|
|
|
|
afterEach(() => {
|
|
window.gon = originalGon;
|
|
});
|
|
|
|
it('exports new version of Sentry in the global object', () => {
|
|
// eslint-disable-next-line no-underscore-dangle
|
|
expect(window._Sentry.SDK_VERSION).not.toMatch(/^5\./);
|
|
});
|
|
|
|
describe('when called', () => {
|
|
beforeEach(() => {
|
|
index();
|
|
});
|
|
|
|
it('configures sentry', () => {
|
|
expect(SentryConfig.init).toHaveBeenCalledTimes(1);
|
|
expect(SentryConfig.init).toHaveBeenCalledWith({
|
|
dsn,
|
|
currentUserId,
|
|
allowUrls: [gitlabUrl, 'webpack-internal://'],
|
|
environment,
|
|
release: revision,
|
|
tags: {
|
|
revision,
|
|
feature_category: featureCategory,
|
|
},
|
|
});
|
|
});
|
|
|
|
it('does not configure legacy sentry', () => {
|
|
expect(LegacySentryConfig.init).not.toHaveBeenCalled();
|
|
});
|
|
});
|
|
});
|