Updated units

This commit is contained in:
Luke "Jared" Bennett 2017-04-14 21:09:16 +01:00
parent 13b60eb75b
commit 067361327b
No known key found for this signature in database
GPG key ID: 402ED51FB5D306C2
4 changed files with 100 additions and 88 deletions

View file

@ -1,11 +1,15 @@
import RavenConfig from './raven_config'; import RavenConfig from './raven_config';
const index = RavenConfig.init.bind(RavenConfig, { const index = function index() {
sentryDsn: gon.sentry_dsn, RavenConfig.init({
currentUserId: gon.current_user_id, sentryDsn: gon.sentry_dsn,
whitelistUrls: [gon.gitlab_url], currentUserId: gon.current_user_id,
isProduction: gon.is_production, whitelistUrls: [gon.gitlab_url],
}); isProduction: gon.is_production,
});
return RavenConfig;
};
index(); index();

View file

@ -8,8 +8,6 @@ const RavenConfig = {
this.configure(); this.configure();
this.bindRavenErrors(); this.bindRavenErrors();
if (this.options.currentUserId) this.setUser(); if (this.options.currentUserId) this.setUser();
return this;
}, },
configure() { configure() {
@ -44,6 +42,6 @@ const RavenConfig = {
}, },
}); });
}, },
} };
export default RavenConfig; export default RavenConfig;

View file

@ -1,7 +1,7 @@
import RavenConfig from '~/raven/raven_config'; import RavenConfig from '~/raven/raven_config';
import index from '~/raven/index'; import index from '~/raven/index';
fdescribe('RavenConfig options', () => { describe('RavenConfig options', () => {
let sentryDsn; let sentryDsn;
let currentUserId; let currentUserId;
let gitlabUrl; let gitlabUrl;
@ -21,13 +21,13 @@ fdescribe('RavenConfig options', () => {
is_production: isProduction, is_production: isProduction,
}; };
spyOn(RavenConfig.init, 'bind'); spyOn(RavenConfig, 'init');
indexReturnValue = index(); indexReturnValue = index();
}); });
it('should init with .sentryDsn, .currentUserId, .whitelistUrls and .isProduction', () => { it('should init with .sentryDsn, .currentUserId, .whitelistUrls and .isProduction', () => {
expect(RavenConfig.init.bind).toHaveBeenCalledWith(RavenConfig, { expect(RavenConfig.init).toHaveBeenCalledWith({
sentryDsn, sentryDsn,
currentUserId, currentUserId,
whitelistUrls: [gitlabUrl], whitelistUrls: [gitlabUrl],

View file

@ -1,47 +1,46 @@
import $ from 'jquery';
import Raven from 'raven-js'; import Raven from 'raven-js';
import RavenConfig from '~/raven/raven_config'; import RavenConfig from '~/raven/raven_config';
describe('RavenConfig', () => { fdescribe('RavenConfig', () => {
describe('init', () => { describe('init', () => {
let options;
beforeEach(() => { beforeEach(() => {
options = {
sentryDsn: '//sentryDsn',
ravenAssetUrl: '//ravenAssetUrl',
currentUserId: 1,
whitelistUrls: ['//gitlabUrl'],
isProduction: true,
};
spyOn(RavenConfig, 'configure'); spyOn(RavenConfig, 'configure');
spyOn(RavenConfig, 'bindRavenErrors'); spyOn(RavenConfig, 'bindRavenErrors');
spyOn(RavenConfig, 'setUser'); spyOn(RavenConfig, 'setUser');
RavenConfig.init(options);
}); });
describe('when called', () => { it('should set the options property', () => {
let options; expect(RavenConfig.options).toEqual(options);
});
beforeEach(() => { it('should call the configure method', () => {
options = { expect(RavenConfig.configure).toHaveBeenCalled();
sentryDsn: '//sentryDsn', });
ravenAssetUrl: '//ravenAssetUrl',
currentUserId: 1,
whitelistUrls: ['//gitlabUrl'],
isProduction: true,
};
RavenConfig.init(options); it('should call the error bindings method', () => {
}); expect(RavenConfig.bindRavenErrors).toHaveBeenCalled();
});
it('should set the options property', () => { it('should call setUser', () => {
expect(RavenConfig.options).toEqual(options); expect(RavenConfig.setUser).toHaveBeenCalled();
});
it('should call the configure method', () => {
expect(RavenConfig.configure).toHaveBeenCalled();
});
it('should call the error bindings method', () => {
expect(RavenConfig.bindRavenErrors).toHaveBeenCalled();
});
it('should call setUser', () => {
expect(RavenConfig.setUser).toHaveBeenCalled();
});
}); });
it('should not call setUser if there is no current user ID', () => { it('should not call setUser if there is no current user ID', () => {
RavenConfig.setUser.calls.reset();
RavenConfig.init({ RavenConfig.init({
sentryDsn: '//sentryDsn', sentryDsn: '//sentryDsn',
ravenAssetUrl: '//ravenAssetUrl', ravenAssetUrl: '//ravenAssetUrl',
@ -55,72 +54,83 @@ describe('RavenConfig', () => {
}); });
describe('configure', () => { describe('configure', () => {
describe('when called', () => { let options;
let options; let raven;
let raven;
beforeEach(() => { beforeEach(() => {
options = { options = {
sentryDsn: '//sentryDsn', sentryDsn: '//sentryDsn',
whitelistUrls: ['//gitlabUrl'], whitelistUrls: ['//gitlabUrl'],
isProduction: true, isProduction: true,
}; };
raven = jasmine.createSpyObj('raven', ['install']); raven = jasmine.createSpyObj('raven', ['install']);
spyOn(Raven, 'config').and.returnValue(raven); spyOn(Raven, 'config').and.returnValue(raven);
spyOn(Raven, 'install');
RavenConfig.configure.call({ RavenConfig.configure.call({
options, options,
}); });
});
it('should call Raven.config', () => {
expect(Raven.config).toHaveBeenCalledWith(options.sentryDsn, {
whitelistUrls: options.whitelistUrls,
environment: 'production',
});
});
it('should call Raven.install', () => {
expect(raven.install).toHaveBeenCalled();
});
it('should set .environment to development if isProduction is false', () => {
options.isProduction = false;
RavenConfig.configure.call({
options,
}); });
it('should call Raven.config', () => { expect(Raven.config).toHaveBeenCalledWith(options.sentryDsn, {
expect(Raven.config).toHaveBeenCalledWith(options.sentryDsn, { whitelistUrls: options.whitelistUrls,
whitelistUrls: options.whitelistUrls, environment: 'development',
environment: 'production',
});
});
it('should call Raven.install', () => {
expect(Raven.install).toHaveBeenCalled();
});
describe('if isProduction is false', () => {
beforeEach(() => {
options.isProduction = false;
RavenConfig.configure.call({
options,
});
});
it('should set .environment to development', () => {
expect(Raven.config).toHaveBeenCalledWith(options.sentryDsn, {
whitelistUrls: options.whitelistUrls,
environment: 'development',
});
});
}); });
}); });
}); });
describe('setUser', () => { describe('setUser', () => {
describe('when called', () => { let ravenConfig;
beforeEach(() => {});
beforeEach(() => {
ravenConfig = { options: { currentUserId: 1 } };
spyOn(Raven, 'setUserContext');
RavenConfig.setUser.call(ravenConfig);
});
it('should call .setUserContext', function () {
expect(Raven.setUserContext).toHaveBeenCalledWith({
id: ravenConfig.options.currentUserId,
});
}); });
}); });
describe('bindRavenErrors', () => { describe('bindRavenErrors', () => {
describe('when called', () => { beforeEach(() => {
beforeEach(() => {}); RavenConfig.bindRavenErrors();
});
it('should query for document using jquery', () => {
console.log($, 'or', $.fn);
// expect($).toHaveBeenCalledWith()
});
it('should call .on', function () {
// expect($document.on).toHaveBeenCalledWith('ajaxError.raven', RavenConfig.handleRavenErrors);
}); });
}); });
describe('handleRavenErrors', () => { describe('handleRavenErrors', () => {
describe('when called', () => { beforeEach(() => {});
beforeEach(() => {});
});
}); });
}); });