debian-mirror-gitlab/spec/frontend/sentry/index_spec.js
2023-03-04 22:38:38 +05:30

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();
});
});
});