var should = require('./init.js');
var mixin = require('../').redis
var db, Person, config;

describe('json-parsing', function() {

    before(function() {
        db = getDataSource();
        Person = db.createModel('person', {id: Number, name: String, age: Number});
    });

    it('create should create new item', function(done) {
      Person.create({
        id: 2,
        name: 'Mary',
        age: 34
      }, function(err, res) {
        if(err) console.log(err);
        Person.findById('2',function(err, res) {
          res.id.should.equal(2);
          res.name.should.equal('Mary');
          res.age.should.equal(34);
          done(err, res);
        })
      });
    });

    it('create should create new item with mixin EXPIRE in 3s', function(done) {
      config = {
        ttl: 3  //seconds
      };
      mixin(Person,config);

      Person.create({
        id: 3,
        name: 'Charlie',
        age: 24
      }, function(err, res) {
        if(err) console.log(err);
        setTimeout(function(){
          Person.findById('3',function(err, res) {
            should.not.exist(res.id);
            done(err, res);
          });
        },config.ttl*1000);
      });
    });

});

@@ -271,100 +271,137 @@
     
-%7D);%0A%0A    it('create should create new item', function(done) %7B%0A      Person.create(%7B%0A
+    persons = %5B%0A          %7B%0A            id: 1,%0A            name: 'Mary',%0A            age: 34%0A          %7D,%0A          %7B%0A   
         
 id: 
@@ -400,15 +400,20 @@
     
+ 
 id: 2,%0A
+    
     
@@ -415,39 +415,46 @@
          name: '
-Mary',%0A
+Charlie',%0A    
         age: 34%0A
@@ -450,25 +450,25 @@
    age: 
-3
+2
 4%0A      
 %7D, funct
@@ -463,94 +463,132 @@
     
-%7D, function(err, res) %7B%0A        if(err) console.log(err);%0A        Person.findById('2
+    %7D%0A        %5D;%0A        config = %7B%0A          ttl: 3  //seconds%0A        %7D;%0A    %7D);%0A%0A    it('create should create new item
 ',
+ 
 func
@@ -588,32 +588,28 @@
 ', function(
-err, res
+done
 ) %7B%0A        
@@ -610,38 +610,62 @@
     
-    res.id.should.equal(2);%0A  
+return Person.create(persons%5B0%5D).then(function(res) %7B%0A
     
@@ -686,18 +686,16 @@
 hould.eq
-ua
 l('Mary'
@@ -709,61 +709,45 @@
     
-  
-res.age.should.equal(34);%0A          d
+done();%0A      %7D).catch(functi
 on
-e
 (err
-, res);
+)%7B
 %0A   
@@ -751,18 +751,26 @@
         
-%7D)
+done(err);
 %0A      %7D
@@ -866,60 +866,8 @@
 ) %7B%0A
-      config = %7B%0A        ttl: 3  //seconds%0A      %7D;%0A
     
@@ -890,23 +890,29 @@
 onfig);%0A
-%0A
       
+return 
 Person.c
@@ -921,75 +921,25 @@
 ate(
-%7B%0A        id: 3,%0A        name: 'Charlie',%0A        age: 24%0A      %7D, 
+persons%5B1%5D).then(
 func
@@ -939,34 +939,28 @@
 en(function(
-err, 
 res)
- 
 %7B%0A        if
@@ -961,31 +961,37 @@
     
-if(err) console.log(err
+res.name.should.eql('Charlie'
 );%0A 
@@ -1026,24 +1026,31 @@
 %7B%0A          
+return 
 Person.findB
@@ -1056,17 +1056,23 @@
 ById('3'
-,
+).then(
 function
@@ -1076,18 +1076,12 @@
 ion(
-err, 
 res)
- 
 %7B%0A  
@@ -1137,58 +1137,156 @@
 one(
-err, res);%0A          %7D);%0A        %7D,config.ttl*1000
+);%0A          %7D).catch(function(err)%7B%0A            done(err);%0A          %7D);%0A        %7D,config.ttl*1000);%0A      %7D).catch(function(err)%7B%0A        done(err
 );%0A 

update tests into 'promise'