Clean code.

This commit is contained in:
Lars Jung 2015-05-02 19:45:01 +02:00
parent d2031d57d2
commit 16186811a4
3 changed files with 26 additions and 145 deletions

View file

@ -1,54 +1,41 @@
modulejs.define('core/server', ['_', '$', 'config', 'core/location'], function (_, $, config, location) { modulejs.define('core/server', ['_', '$', 'core/location'], function (_, $, location) {
var hasApi = config.setup.API === true;
function request(data, callback) { function request(data, callback) {
if (hasApi) { $.ajax({
$.ajax({ url: location.getAbsHref(),
url: location.getAbsHref(), data: data,
data: data, type: 'post',
type: 'post', dataType: 'json'
dataType: 'json' })
}) .done(function (json) {
.done(function (json) {
callback(json); callback(json);
}) })
.fail(function () { .fail(function () {
callback();
});
} else {
callback(); callback();
} });
} }
function formRequest(data) { function formRequest(data) {
if (hasApi) { var $form = $('<form method="post" style="display:none;"/>')
var $form = $('<form method="post" style="display:none;"/>') .attr('action', location.getAbsHref());
.attr('action', location.getAbsHref());
_.each(data, function (val, key) { _.each(data, function (val, key) {
$('<input type="hidden"/>') $('<input type="hidden"/>')
.attr('name', key) .attr('name', key)
.attr('value', val) .attr('value', val)
.appendTo($form); .appendTo($form);
}); });
$form.appendTo('body').submit().remove(); $form.appendTo('body').submit().remove();
}
} }
return { return {
api: hasApi,
backend: config.setup.BACKEND,
name: config.setup.SERVER_NAME,
version: config.setup.SERVER_VERSION,
request: request, request: request,
formRequest: formRequest formRequest: formRequest
}; };

View file

@ -78,7 +78,7 @@ modulejs.define('ext/thumbnails', ['_', 'core/event', 'core/server', 'core/setti
function init() { function init() {
if (!settings.enabled || !server.api) { if (!settings.enabled) {
return; return;
} }

View file

@ -2,7 +2,7 @@
'use strict'; 'use strict';
var ID = 'core/server'; var ID = 'core/server';
var DEPS = ['_', '$', 'config', 'core/location']; var DEPS = ['_', '$', 'core/location'];
var $submitEl; var $submitEl;
describe('module \'' + ID + '\'', function () { describe('module \'' + ID + '\'', function () {
@ -11,14 +11,6 @@ describe('module \'' + ID + '\'', function () {
this.definition = modulejs._private.definitions[ID]; this.definition = modulejs._private.definitions[ID];
this.xConfig = {
setup: {
API: true,
BACKEND: util.uniqId(),
SERVER_NAME: util.uniqId(),
SERVER_VERSION: util.uniqId()
}
};
this.xAbsHref = util.uniqId(); this.xAbsHref = util.uniqId();
this.xLocation = { this.xLocation = {
getAbsHref: sinon.stub().returns(this.xAbsHref) getAbsHref: sinon.stub().returns(this.xAbsHref)
@ -45,7 +37,7 @@ describe('module \'' + ID + '\'', function () {
this.xSubmit.reset(); this.xSubmit.reset();
$submitEl = undefined; $submitEl = undefined;
return this.definition.fn(_, $, this.xConfig, this.xLocation); return this.definition.fn(_, $, this.xLocation);
}; };
}); });
@ -90,69 +82,11 @@ describe('module \'' + ID + '\'', function () {
describe('application', function () { describe('application', function () {
it('returns plain object with 6 properties', function () { it('returns plain object with 2 properties', function () {
var instance = this.applyFn(); var instance = this.applyFn();
assert.isPlainObject(instance); assert.isPlainObject(instance);
assert.lengthOf(_.keys(instance), 6); assert.lengthOf(_.keys(instance), 2);
});
});
describe('.backend', function () {
it('set correct', function () {
var instance = this.applyFn();
assert.strictEqual(instance.backend, this.xConfig.setup.BACKEND);
});
});
describe('.name', function () {
it('set correct', function () {
var instance = this.applyFn();
assert.strictEqual(instance.name, this.xConfig.setup.SERVER_NAME);
});
});
describe('.version', function () {
it('set correct', function () {
var instance = this.applyFn();
assert.strictEqual(instance.version, this.xConfig.setup.SERVER_VERSION);
});
});
describe('.api', function () {
it('set correct (false)', function () {
this.xConfig.setup.API = false;
var instance = this.applyFn();
assert.isFalse(instance.api);
});
it('set correct (falsy)', function () {
this.xConfig.setup.API = null;
var instance = this.applyFn();
assert.isFalse(instance.api);
});
it('set correct (truthy)', function () {
this.xConfig.setup.API = 1;
var instance = this.applyFn();
assert.isFalse(instance.api);
});
it('set correct (true)', function () {
this.xConfig.setup.API = true;
var instance = this.applyFn();
assert.isTrue(instance.api);
}); });
}); });
@ -164,29 +98,8 @@ describe('module \'' + ID + '\'', function () {
assert.isFunction(instance.request); assert.isFunction(instance.request);
}); });
it('no result if no API', function () {
this.xConfig.setup.API = false;
var instance = this.applyFn();
var xData = util.uniqObj();
var spy = sinon.spy();
var res = instance.request(xData, spy);
assert.isUndefined(res);
assert.isFalse(this.xAjax.called);
assert.isFalse(this.xAjaxResult.done.called);
assert.isFalse(this.xAjaxResult.fail.called);
assert.isFalse(this.xAjax.called);
assert.isTrue(spy.calledOnce);
assert.deepEqual(spy.lastCall.args, []);
});
it('done() works', function () { it('done() works', function () {
this.xConfig.setup.API = true;
var instance = this.applyFn(); var instance = this.applyFn();
var xData = util.uniqObj(); var xData = util.uniqObj();
@ -215,8 +128,6 @@ describe('module \'' + ID + '\'', function () {
it('fail() works', function () { it('fail() works', function () {
this.xConfig.setup.API = true;
var instance = this.applyFn(); var instance = this.applyFn();
var xData = util.uniqObj(); var xData = util.uniqObj();
@ -251,25 +162,8 @@ describe('module \'' + ID + '\'', function () {
assert.isFunction(instance.formRequest); assert.isFunction(instance.formRequest);
}); });
it('does nothing if no API', function () {
this.xConfig.setup.API = false;
var instance = this.applyFn();
var xData = util.uniqObj();
var res = instance.formRequest(xData);
assert.isUndefined(res);
assert.isFalse(this.xSubmit.called);
assert.isUndefined($submitEl);
});
it('works', function () { it('works', function () {
this.xConfig.setup.API = true;
var instance = this.applyFn(); var instance = this.applyFn();
var xData = { var xData = {