beautify_js

This commit is contained in:
Ilya Kantor 2015-03-09 18:48:58 +03:00
parent 0febe4f5fd
commit 5c2f32e184
208 changed files with 3891 additions and 1474 deletions

View file

@ -11,5 +11,4 @@ var calculator = {
this.a = +prompt('a?', 0);
this.b = +prompt('b?', 0);
}
}
}

View file

@ -9,11 +9,11 @@ describe("calculator", function() {
});
it("при вводе 2 и 3 сумма равна 5", function() {
assert.equal( calculator.sum(), 5 );
assert.equal(calculator.sum(), 5);
});
it("при вводе 2 и 3 произведение равно 6", function() {
assert.equal( calculator.mul(), 6 );
assert.equal(calculator.mul(), 6);
});
});

View file

@ -1,7 +1,7 @@
function Calculator() {
this.read = function() {
this.a = +prompt('a?', 0);
this.a = +prompt('a?', 0);
this.b = +prompt('b?', 0);
};

View file

@ -11,11 +11,11 @@ describe("calculator", function() {
});
it("при вводе 2 и 3 сумма равна 5", function() {
assert.equal( calculator.sum(), 5 );
assert.equal(calculator.sum(), 5);
});
it("при вводе 2 и 3 произведение равно 6", function() {
assert.equal( calculator.mul(), 6 );
assert.equal(calculator.mul(), 6);
});
});

View file

@ -5,4 +5,4 @@ function Accumulator(startingValue) {
this.value += +prompt('Сколько добавлять будем?', 0);
};
}
}

View file

@ -13,25 +13,25 @@ describe("Accumulator(1)", function() {
});
it("начальное значение 1", function() {
assert.equal( accumulator.value, 1 );
assert.equal(accumulator.value, 1);
});
it("после ввода 0 значение 1", function() {
prompt.returns("0");
accumulator.read();
assert.equal( accumulator.value, 1 );
assert.equal(accumulator.value, 1);
});
it("после ввода 1 значение 2", function() {
prompt.returns("1");
accumulator.read();
assert.equal( accumulator.value, 2 );
assert.equal(accumulator.value, 2);
});
it("после ввода 2 значение 4", function() {
prompt.returns("2");
accumulator.read();
assert.equal( accumulator.value, 4 );
assert.equal(accumulator.value, 4);
});
});

View file

@ -16,7 +16,7 @@ function Calculator() {
op = split[1],
b = +split[2]
if(!methods[op] || isNaN(a) || isNaN(b)) {
if (!methods[op] || isNaN(a) || isNaN(b)) {
return NaN;
}
@ -26,4 +26,4 @@ function Calculator() {
this.addMethod = function(name, func) {
methods[name] = func;
};
}
}

View file

@ -4,23 +4,23 @@ before(function() {
});
it("calculate(12 + 34) = 46", function() {
assert.equal( calculator.calculate("12 + 34"), 46 );
assert.equal(calculator.calculate("12 + 34"), 46);
});
it("calculate(34 - 12) = 22", function() {
assert.equal( calculator.calculate("34 - 12"), 22 );
assert.equal(calculator.calculate("34 - 12"), 22);
});
it("добавили умножение: calculate(2 * 3) = 6", function() {
calculator.addMethod("*", function(a, b) {
return a * b;
});
assert.equal( calculator.calculate("2 * 3"), 6 );
assert.equal(calculator.calculate("2 * 3"), 6);
});
it("добавили возведение в степень: calculate(2 ** 3) = 8", function() {
calculator.addMethod("**", function(a, b) {
return Math.pow(a, b);
});
assert.equal( calculator.calculate("2 ** 3"), 8 );
});
assert.equal(calculator.calculate("2 ** 3"), 8);
});

View file

@ -1,4 +1,4 @@
function Article() {
function Article() {
this.created = new Date;
Article.count++; // увеличиваем счетчик при каждом вызове
@ -8,4 +8,4 @@ Article.count = 0; // начальное значение
Article.showStats = function() {
alert('Всего: ' + this.count + ', Последняя: ' + this.last);
};
};

View file

@ -3,7 +3,7 @@ describe("Article.showStats", function() {
sinon.stub(window, "alert");
this.clock = sinon.useFakeTimers();
});
after(function() {
window.alert.restore();
this.clock.restore();
@ -13,9 +13,9 @@ describe("Article.showStats", function() {
new Article();
this.clock.tick(100);
new Article();
Article.showStats();
assert( alert.calledWith('Всего: 2, Последняя: ' + new Date() ) );
Article.showStats();
assert(alert.calledWith('Всего: 2, Последняя: ' + new Date()));
});
it("и ещё одна статья...", function() {
@ -23,6 +23,6 @@ describe("Article.showStats", function() {
new Article();
Article.showStats();
assert( alert.calledWith('Всего: 3, Последняя: ' + new Date() ) );
assert(alert.calledWith('Всего: 3, Последняя: ' + new Date()));
});
});

View file

@ -1,3 +1,3 @@
function applyAll(func) {
return func.apply(this, [].slice.call(arguments, 1) );
return func.apply(this, [].slice.call(arguments, 1));
}

View file

@ -2,14 +2,14 @@ describe("applyAll", function() {
it("применяет функцию ко всем аргументам, начиная со 2го", function() {
var min = applyAll(Math.min, 1, 2, 3);
assert.equal( min, 1 );
assert.equal(min, 1);
});
it("при отсутствии аргументов просто вызывает функцию", function() {
var spy = sinon.spy();
applyAll(spy);
assert( spy.calledOnce );
assert.equal( spy.firstCall.args.length, 0 );
assert(spy.calledOnce);
assert.equal(spy.firstCall.args.length, 0);
});
});

View file

@ -2,8 +2,8 @@ function makeLogging(f, log) {
function wrapper(a) {
log.push(a);
return f.call(this, a);
return f.call(this, a);
}
return wrapper;
}
}

View file

@ -4,45 +4,47 @@ describe("makeLogging", function() {
var log = [];
work = makeLogging(work, log);
assert.deepEqual( log, []);
assert.deepEqual(log, []);
work(1);
assert.deepEqual( log, [1]);
assert.deepEqual(log, [1]);
work(2);
assert.deepEqual( log, [1, 2]);
assert.deepEqual(log, [1, 2]);
});
it("передаёт вызов функции, возвращает её результат", function() {
var log = [];
function work(x) {
return x*2;
return x * 2;
}
work = sinon.spy(work);
var spy = work;
work = makeLogging(work, log);
assert.equal( work(1), 2 );
assert.equal(work(1), 2);
assert(spy.calledWith(1));
});
it("сохраняет контекст вызова для методов объекта", function() {
var log = [];
var calculator = {
double: function(x) { return x*2; }
double: function(x) {
return x * 2;
}
}
calculator.double = sinon.spy(calculator.double);
var spy = calculator.double;
calculator.double = makeLogging(calculator.double, log);
assert.equal( calculator.double(1), 2 );
assert.equal(calculator.double(1), 2);
assert(spy.calledWith(1));
assert(spy.calledOn(calculator));
});
});
});

View file

@ -1,15 +1,9 @@
function makeLogging(f, log) {
function wrapper() {
log.push([].slice.call(arguments));
return f.apply(this, arguments);
return f.apply(this, arguments);
}
return wrapper;
}
}

View file

@ -1,22 +1,26 @@
describe("makeLogging", function() {
it("записывает вызовы в массив log", function() {
var work = sinon.spy();
var log = [];
work = makeLogging(work, log);
assert.deepEqual( log, []);
assert.deepEqual(log, []);
work(1, 2);
assert.deepEqual( log, [[1, 2]]);
assert.deepEqual(log, [
[1, 2]
]);
work(3, 4);
assert.deepEqual( log, [[1, 2], [3,4]]);
assert.deepEqual(log, [
[1, 2],
[3, 4]
]);
});
it("передаёт вызов функции, возвращает её результат", function() {
var log = [];
function sum(a, b) {
return a + b;
}
@ -24,26 +28,28 @@ describe("makeLogging", function() {
sum = sinon.spy(sum);
var spy = sum;
sum = makeLogging(sum, log);
assert.equal( sum(1, 2), 3 );
assert.equal(sum(1, 2), 3);
assert(spy.calledWith(1, 2));
});
it("сохраняет контекст вызова для методов объекта", function() {
var log = [];
var calculator = {
sum: function(a, b) { return a + b; }
sum: function(a, b) {
return a + b;
}
}
calculator.sum = sinon.spy(calculator.sum);
var spy = calculator.sum;
calculator.sum = makeLogging(calculator.sum, log);
assert.equal( calculator.sum(1, 2), 3 );
assert.equal(calculator.sum(1, 2), 3);
assert(spy.calledWith(1, 2));
assert(spy.calledOn(calculator));
});
});
});

View file

@ -1,8 +1,8 @@
function makeCaching(f) {
var cache = {};
function makeCaching(f) {
var cache = {};
return function(x) {
if (!(x in cache)) {
if (!(x in cache)) {
cache[x] = f.call(this, x);
}
return cache[x];

View file

@ -1,8 +1,8 @@
describe("makeCaching", function() {
it("запоминает предыдущее значение функции с таким аргументом", function() {
function f(x) {
return Math.random()*x;
function f(x) {
return Math.random() * x;
}
f = makeCaching(f);
@ -10,10 +10,10 @@ describe("makeCaching", function() {
var a = f(1);
var b = f(1);
assert.equal(a, b);
var anotherValue = f(2);
var anotherValue = f(2);
// почти наверняка другое значение
assert.notEqual( a, anotherValue );
assert.notEqual(a, anotherValue);
});
it("сохраняет контекст вызова", function() {
@ -24,8 +24,8 @@ describe("makeCaching", function() {
var spy = obj.spy;
obj.spy = makeCaching(obj.spy);
obj.spy(123);
assert( spy.calledWith(123) );
assert( spy.calledOn(obj) );
assert(spy.calledWith(123));
assert(spy.calledOn(obj));
});
});