Skip to content

Commit

Permalink
fix: updated specs
Browse files Browse the repository at this point in the history
  • Loading branch information
Jonnie Spratley committed Mar 3, 2016
1 parent 5ff3dd8 commit 98e570b
Show file tree
Hide file tree
Showing 11 changed files with 371 additions and 316 deletions.
122 changes: 68 additions & 54 deletions plop-templates/nodejs-plugin-controller.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';
const path = require('path');
const Model = require('./model.js').default;
const Service = require('./service.js').default;
const Model = require('./model').default;
const Service = require('./service').default;

/**
* TODO - Describe what your controller does.
Expand All @@ -10,67 +10,81 @@ const Service = require('./service.js').default;
* @module {{pascalCase name}}
* @constructor
*/
let service;
export default class {{pascalCase name}}Controller {

constructor(options:any) {
//service:Service;
model:Model;
collection:any;

service:Service;
model: Model;
collection: any;
constructor(options:any) {
console.log('{{pascalCase name}}Controller Constructor');
service = new Service();
}

console.log('{{pascalCase name}}Controller Constructor');
this.service = new Service();
use(req, res, next) {
console.log('{{pascalCase name}}Controller Time: ', Date.now());
console.log('{{pascalCase name}}.use', req.method, req.url);
if (req.params.id) {
req.id = req.params.id;
console.log('Got id', req.id);
}
next();
}

}
all(req, res, next) {
console.log('{{pascalCase name}}Controller-controller.all', req.method, req.url);
next();
}

use(req, res, next) {
console.log('Time: ', Date.now());
console.log('{{pascalCase name}}.use', req.method, req.url);
if (req.params.id) {
req.id = req.params.id;
console.log('Got id', req.id);
}
next();
}
index(req, res, next) {
next();
}

all(req, res, next) {
get_route(req, res, next) {
if (req.id) {
service.get(req.id).then((resp)=> {
res.status(200).send(resp);
}).catch((err)=> {
res.status(404).send(err);
});
} else {
service.find(req.params).then((resp)=> {
res.status(200).send(resp);
}).catch((err)=> {
res.status(404).send(err);
});
}
}

console.log('-controller.all', req.method, req.url);
next();
}
post_route(req, res, next) {
let m = new Model(req.body);
console.log('creating', m);

index(req, res, next) {
next();
}
service.save(m).then((resp)=> {
res.status(201).send(resp);
}).catch((err)=> {
res.status(404).send(err);
})
}

get_route(req, res, next) {
if (req.params.id > (users.length - 1) || req.params.id < 0) {
res.statusCode = 404;
res.end('Not Found');
}
res.json(users[req.params.id]);
}
put_route(req, res, next) {
var model = new Model(req.body);
model.id = req.id;
console.log('updating', model);
service.save(model, (err, resp)=> {
res.status(200).send(resp);
}).catch((err)=> {
res.status(404).send(err);
});
}

post_route(req, res, next) {
var model = new Model(req.body);
console.log('creating', model);
this.service.save(model, (err, resp)=>{
res.status(200).send(resp);
});
}

put_route(req, res, next) {
var model = new Model(req.body);
console.log('creating', model);
this.service.save(model, (err, resp)=>{
res.status(200).send(resp);
});
}

delete_route(req, res, next) {
console.log('removing', req.id);
this.service.remove(req.id, (err, resp)=>{
res.status(200).send(resp);
});
}
delete_route(req, res, next) {
console.log('removing', req.id);
service.remove(req.id, (err, resp)=> {
res.status(200).send(resp);
}).catch((err)=> {
res.status(404).send(err);
});
}
}
12 changes: 11 additions & 1 deletion plop-templates/nodejs-plugin-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,16 +77,26 @@ export default class Service {

find(params:any) {
return new Promise((resolve, reject)=> {
let _docs = [];
console.log('find', params);
this.db.all((err, resp)=> {
if (err) {
reject(err);
}
resolve(resp);

console.log('find', 'response', resp);
_.forIn(resp, (value, key) => {
console.log(key);
console.log('find', params, value);
_docs.push(value);
});
resolve(_.filter(_docs, params));

});
});
}


static method2() {
console.log('method2');
}
Expand Down
118 changes: 72 additions & 46 deletions plop-templates/nodejs-plugin-spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -92,40 +92,64 @@ describe('{{pascalCase name}} Plugin', function () {
assert(u.id, 'has passed property');
done();
});

it('should return model with unique id', function (done) {
let u = new Model({name: 'jonnie'});
assert(u);
assert(u.id, 'has id property');
done();
});
});

describe('Service', function () {
let passes = null;
let testId = '';
let testUser = new Model({
name: 'test'
id: 'test-pass-00',
name: 'test',
type: 'test'
});

before(function (done) {
service = new Service();
service.save(new Model({name: 'test'})).then(function (resp) {
testId = resp;
console.log(resp);
let m = null
let createModel = function (id, callback) {
m = new Model({
id: 'test-pass-'+ id,
name: 'test ' + id,
type: 'test'
});
service.save(m).then(function (resp) {
callback(null, resp);
});
};
async.times(5, function (n, next) {
createModel(n, function (err, resp) {
next(err, resp)
});
}, function (err, _passes) {
console.log('created', _passes);
passes = _passes
done();
});

});

it('should have an instance', function () {
assert(service);
});

it('find() - should get all users from data store', function (done) {
service.find(testUser.id).then(function (resp) {
console.log(resp);
it('find() - should get all passes from data store', function (done) {
service.find({type: 'test'}).then(function (resp) {
assert(resp);
assert(resp.length);
done();
}).catch(function (err) {
assert.fail(err);
done();
});
});

it('save() - should save a user to data store', function (done) {
it('save() - should save a pass to data store', function (done) {
service.save(testUser).then(function (resp) {
console.log(resp);
assert(resp);
Expand All @@ -136,9 +160,9 @@ describe('{{pascalCase name}} Plugin', function () {
});
});

it('save() should update a user in data store', function (done) {
it('save() should update a pass in data store', function (done) {
service.save({
id: 'user-test',
id: 'pass-test',
email: 'updated@gmail.com'
}).then(function (resp) {
console.log(resp);
Expand All @@ -150,18 +174,7 @@ describe('{{pascalCase name}} Plugin', function () {
});
});

it('save() - should reject', function () {
service.save({}).then(function (resp) {
assert.fail(resp);
done();
}).catch(function (err) {
assert(err);
done();
});
});


it('get() - should get a user from data store', function (done) {
it('get() - should get a pass from data store', function (done) {
assert(testId)
service.get(testId).then(function (resp) {
assert(resp);
Expand All @@ -172,17 +185,7 @@ describe('{{pascalCase name}} Plugin', function () {
});
});

it('get() - should reject', function () {
service.get('unknown').then(function (resp) {
assert.fail(resp);
done();
}).catch(function (err) {
assert(err);
done();
});
});

it('remove() - should remove a user from data store', function (done) {
it('remove() - should remove a pass from data store', function (done) {
assert(testId)
service.remove(testId).then(function (resp) {
assert(resp);
Expand All @@ -193,23 +196,46 @@ describe('{{pascalCase name}} Plugin', function () {
});
});

describe('Rejections/Errors', function () {
it('save() - should reject', function () {
service.save({}).then(function (resp) {
assert.fail(resp);
done();
}).catch(function (err) {
assert(err);
done();
});
});

it('remove() - should reject', function () {
service.remove('unknown').then(function (resp) {
assert.fail(resp);
done();
}).catch(function (err) {
assert(err);
done();
it('get() - should reject', function () {
service.get('unknown').then(function (resp) {
assert.fail(resp);
done();
}).catch(function (err) {
assert(err);
done();
});
});
it('remove() - should reject', function () {
service.remove('unknown').then(function (resp) {
assert.fail(resp);
done();
}).catch(function (err) {
assert(err);
done();
});
});
});

it('remove() - throw error', function () {
assert.throws(function () {
service.remove(null);
}, Error);
it('remove() - throw error', function () {
assert.throws(function () {
service.remove(null);
}, Error);
});
});



});


});
Loading

0 comments on commit 98e570b

Please sign in to comment.