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';
const index = RavenConfig.init.bind(RavenConfig, {
sentryDsn: gon.sentry_dsn,
currentUserId: gon.current_user_id,
whitelistUrls: [gon.gitlab_url],
isProduction: gon.is_production,
});
const index = function index() {
RavenConfig.init({
sentryDsn: gon.sentry_dsn,
currentUserId: gon.current_user_id,
whitelistUrls: [gon.gitlab_url],
isProduction: gon.is_production,
});
return RavenConfig;
};
index();

View File

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

View File

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

View File

@ -1,47 +1,46 @@
import $ from 'jquery';
import Raven from 'raven-js';
import RavenConfig from '~/raven/raven_config';
describe('RavenConfig', () => {
fdescribe('RavenConfig', () => {
describe('init', () => {
let options;
beforeEach(() => {
options = {
sentryDsn: '//sentryDsn',
ravenAssetUrl: '//ravenAssetUrl',
currentUserId: 1,
whitelistUrls: ['//gitlabUrl'],
isProduction: true,
};
spyOn(RavenConfig, 'configure');
spyOn(RavenConfig, 'bindRavenErrors');
spyOn(RavenConfig, 'setUser');
RavenConfig.init(options);
});
describe('when called', () => {
let options;
it('should set the options property', () => {
expect(RavenConfig.options).toEqual(options);
});
beforeEach(() => {
options = {
sentryDsn: '//sentryDsn',
ravenAssetUrl: '//ravenAssetUrl',
currentUserId: 1,
whitelistUrls: ['//gitlabUrl'],
isProduction: true,
};
it('should call the configure method', () => {
expect(RavenConfig.configure).toHaveBeenCalled();
});
RavenConfig.init(options);
});
it('should call the error bindings method', () => {
expect(RavenConfig.bindRavenErrors).toHaveBeenCalled();
});
it('should set the options property', () => {
expect(RavenConfig.options).toEqual(options);
});
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 call setUser', () => {
expect(RavenConfig.setUser).toHaveBeenCalled();
});
it('should not call setUser if there is no current user ID', () => {
RavenConfig.setUser.calls.reset();
RavenConfig.init({
sentryDsn: '//sentryDsn',
ravenAssetUrl: '//ravenAssetUrl',
@ -55,72 +54,83 @@ describe('RavenConfig', () => {
});
describe('configure', () => {
describe('when called', () => {
let options;
let raven;
let options;
let raven;
beforeEach(() => {
options = {
sentryDsn: '//sentryDsn',
whitelistUrls: ['//gitlabUrl'],
isProduction: true,
};
beforeEach(() => {
options = {
sentryDsn: '//sentryDsn',
whitelistUrls: ['//gitlabUrl'],
isProduction: true,
};
raven = jasmine.createSpyObj('raven', ['install']);
raven = jasmine.createSpyObj('raven', ['install']);
spyOn(Raven, 'config').and.returnValue(raven);
spyOn(Raven, 'install');
spyOn(Raven, 'config').and.returnValue(raven);
RavenConfig.configure.call({
options,
});
RavenConfig.configure.call({
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, {
whitelistUrls: options.whitelistUrls,
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',
});
});
expect(Raven.config).toHaveBeenCalledWith(options.sentryDsn, {
whitelistUrls: options.whitelistUrls,
environment: 'development',
});
});
});
describe('setUser', () => {
describe('when called', () => {
beforeEach(() => {});
let ravenConfig;
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('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('when called', () => {
beforeEach(() => {});
});
beforeEach(() => {});
});
});