Of course been doing tdd, althoguh the tests are not very expressives.
The code lives here.
Some examples of tests
describe("combine filter, map & reduce", function(){
 it("return the result of combination of filter, mal and reduce", function(){
  var data = [1,2,3,4,5,6];
  var resultExpected = 15;
  var result = reduce(
       map(
        filter(
         data, functionForFilter
        ), 
        functionForMap
       ), 
       0, functionForReduce
      );
  expect(resultExpected).to.eql(result);
 });
 function functionForMap(y){
  return y + 1;
 }
 function functionForFilter(x){
  return x % 2 == 0;
 }
 function functionForReduce(acumulative, z){ 
  return acumulative + z;
 }
});
describe("PipeLine object", function(){
 it("make pipe line through different functions", function(){
  var arrayOfData = [1,2,3];
  var expectedResult = 9;
  var handlerOne = function(data){
   return map(data, function(number){
    return number +1;
   });
  }
  var handlerTwo = function(data){
   var result = 0;
   return reduce(data, result, function(result, number){
    return result + number;
   });
  }
  var pipeLine = new PipeLine();
  var pipeLineResult = pipeLine.pipe(handlerOne)
         .pipe(handlerTwo)
         .execute(arrayOfData);
  expect(expectedResult).to.eql(pipeLineResult);       
 });
});
describe("curry function", function(){
  var expectedResult = 10;
  var add = function(a, b, c, d){
   return a + b + c + d;
  }
  var curriedFunction = curry(add);
  beforeEach(function(){});
  it("curry function with all parameters as partial", function(){
   var result = curriedFunction(1)(2)(3)(4); 
   expect(expectedResult).to.eql(result);
  });
  it("curry function with two parameters as partial", function(){
   var result = curriedFunction(1, 2)(3)(4); 
   
   expect(expectedResult).to.eql(result);
  });
  it("curry function with one parameters as partial", function(){
   var result = curriedFunction(1, 2, 3)(4);
   
   expect(expectedResult).to.eql(result);
  });
  it("curry function with parameters as partial in two pairs", function(){
   var result = curriedFunction(1, 2)(3, 4);
   
   expect(expectedResult).to.eql(result);
  });
  it("curry function with parameters as usual", function(){
   var result = curriedFunction(1, 2, 3, 4);
   
   expect(expectedResult).to.eql(result);
  });
 });