startware:options.startware,
- premap:options.premap,
- map:{
- get:{GET:resolve,alias:':kind/:id?'},
- put:{PUT:resolve,alias:':kind/:id?',data:true},
- post:{POST:resolve,alias:':kind/:id?',data:true},
- delete:{DELETE:resolve,alias:':kind/:id'}
+ startware: options.startware,
+ premap: options.premap,
+ map: {
+ get: {GET: resolve, alias: ':kind/:id?'},
+ put: {PUT: resolve, alias: ':kind/:id?', data: true},
+ post: {POST: resolve, alias: ':kind/:id?', data: true},
+ delete: {DELETE: resolve, alias: ':kind/:id'}
},
- postmap:options.postmap,
- endware:options.endware,
+ postmap: options.postmap,
+ endware: options.endware
}})
})
-
return {
- name:plugin
+ name: plugin
}
}
diff --git a/jsonrest-api.js b/jsonrest-api.js
index 7647061..cbcdb07 100644
--- a/jsonrest-api.js
+++ b/jsonrest-api.js
@@ -1,107 +1,102 @@
/* Copyright (c) 2013-2015 Richard Rodger, MIT License */
/* jshint node:true, asi:true, eqnull:true */
-"use strict";
-
+'use strict'
var _ = require('lodash')
-
-function noware(req,res,next) {
+function noware (req, res, next) {
next()
}
-
-function parseJSON(o) {
- return null == o ? {} : _.isString(o) ? JSON.parse(o) : o
+function parseJSON (o) {
+ return o == null ? {} : _.isString(o) ? JSON.parse(o) : o
}
-var notfoundres = {httpstatus$:404}
+var notfoundres = {
+ httpstatus$: 404,
+ code: 404,
+ message: 'Resource not found'
+}
var mark = '-'
-
-module.exports = function( options ) {
+module.exports = function (options) {
/* jshint validthis:true */
var seneca = this
- var plugin = "jsonrest-api"
+ var plugin = 'jsonrest-api'
options = seneca.util.deepextend({
- prefix:'/api/rest',
- aspect:false,
- list:{embed:false},
- allow_id:false,
+ prefix: '/api/rest',
+ aspect: false,
+ list: {embed: false},
+ allow_id: false,
- startware:noware,
- premap:noware,
- postmap:noware,
- endware:noware,
+ startware: noware,
+ premap: noware,
+ postmap: noware,
+ endware: noware,
- meta:true,
- canonalias:{},
- pin:null
- },options)
+ meta: true,
+ canonalias: {},
+ pin: null
+ }, options)
-
-
- var validprops = {zone:1,base:1,name:1}
+ var validprops = {zone: 1, base: 1, name: 1}
var pins = options.pin
pins = pins ? _.isArray(pins) ? pins : [pins] : []
- _.map(pins,function(pin){
+ _.map(pins, function (pin) {
pin = _.isString(pin) ? seneca.util.parsecanon(pin) : pin
- _.each(pin,function(v,k){
- if( null == v || '' === v || '*' === v || !validprops[k]) {
+ _.each(pin, function (v, k) {
+ if (v == null || v === '' || v === '*' || !validprops[k]) {
delete pin[k]
}
- _.each(validprops, function(z,vp){
- if( null == pin[vp] ) {
+ _.each(validprops, function (z, vp) {
+ if (pin[vp] == null) {
pin[vp] = mark
}
})
-
})
})
- if( 0 === pins.length ) {
+ if (pins.length === 0) {
pins.push({})
}
-
- function parse_ent(args) {
+ function parse_ent (args) {
var out = {
- name: mark==args.name ? void 0 : args.name,
- base: mark==args.base ? void 0 : args.base,
- zone: mark==args.zone ? void 0 : args.zone,
+ name: mark === args.name ? void 0 : args.name,
+ base: mark === args.base ? void 0 : args.base,
+ zone: mark === args.zone ? void 0 : args.zone,
entid: args.id
}
return out
}
-
- function make_aspect(kind){
- return function (si,ctxt,done,func){
- if( options.aspect ) {
+ function make_aspect (kind) {
+ return function (si, ctxt, done, func) {
+ if (options.aspect) {
si.act(
- {role:plugin,prefix:options.prefix,aspect:kind,
- advice:'before', ctxt:ctxt, default$:ctxt},
- function(err,ctxt) {
- if( err ) return done(err);
+ {role: plugin, prefix: options.prefix, aspect: kind,
+ advice: 'before', ctxt: ctxt, default$: ctxt},
+ function (err, ctxt) {
+ if (err) return done(err)
- func.call(si,ctxt,function(err,out){
- if( err ) return done(err);
+ func.call(si, ctxt, function (err, out) {
+ if (err) return done(err)
ctxt.out = out
si.act(
- {role:plugin,prefix:options.prefix,aspect:kind,
- advice:'after', ctxt:ctxt, default$:out},
+ {role: plugin, prefix: options.prefix, aspect: kind,
+ advice: 'after', ctxt: ctxt, default$: out},
done
)
})
})
}
- else return func.call(si,ctxt,done)
+ else return func.call(si, ctxt, done)
}
}
@@ -110,211 +105,187 @@ module.exports = function( options ) {
var save_aspect = make_aspect('save')
var remove_aspect = make_aspect('remove')
-
- _.each(pins,function(pin){
-
+ _.each(pins, function (pin) {
seneca.add(
- _.extend({},pin,{role:plugin,prefix:options.prefix,method:'get'}),
+ _.extend({}, pin, {role: plugin, prefix: options.prefix, method: 'get'}),
action_get)
seneca.add(
- _.extend({},pin,{role:plugin,prefix:options.prefix,method:'put'}),
- function(args,done){
- action_putpost(this,args,done)
+ _.extend({}, pin, {role: plugin, prefix: options.prefix, method: 'put'}),
+ function (args, done) {
+ action_putpost(this, args, done)
})
seneca.add(
- _.extend({},pin,{role:plugin,prefix:options.prefix,method:'post'}),
- function(args,done){
- action_putpost(this,args,done)
+ _.extend({}, pin, {role: plugin, prefix: options.prefix, method: 'post'}),
+ function (args, done) {
+ action_putpost(this, args, done)
})
seneca.add(
- _.extend({},pin,{role:plugin,prefix:options.prefix,method:'delete'}),
+ _.extend({}, pin, {role: plugin, prefix: options.prefix, method: 'delete'}),
action_delete)
})
+ function action_get (args, done) {
+ var ent_type = parse_ent(args)
+ var qent = this.make(ent_type.zone, ent_type.base, ent_type.name)
-
-
- function action_get(args,done){
- var ent_type = parse_ent(args)
-
- var qent = this.make(ent_type.zone,ent_type.base,ent_type.name)
-
- if( ent_type.entid ) {
- load_aspect(this,{args:args,qent:qent},done,function(ctxt,done){
- ctxt.qent.load$(ent_type.entid,function(err,ent){
- var data = ent ? ent.data$(options.meta,'string') : notfoundres
- done( err, data )
+ if (ent_type.entid) {
+ load_aspect(this, {args: args, qent: qent}, done, function (ctxt, done) {
+ ctxt.qent.load$(ent_type.entid, function (err, ent) {
+ var data = ent ? ent.data$(options.meta, 'string') : notfoundres
+ done(err, data)
})
})
- }
- else {
+ } else {
var q = parseJSON(args.q)
- if( args.limit ) {
- q.limit$ = parseInt(args.limit,10)
+ if (args.limit) {
+ q.limit$ = parseInt(args.limit, 10)
}
- if( args.skip ) {
- q.skip$ = parseInt(args.skip,10)
+ if (args.skip) {
+ q.skip$ = parseInt(args.skip, 10)
}
- if( args.sort ) {
- q.sort$ = parseJSON( args.sort )
+ if (args.sort) {
+ q.sort$ = parseJSON(args.sort)
}
+ list_aspect(this, {args: args, q: q, qent: qent}, done, function (ctxt, done) {
+ ctxt.qent.list$(ctxt.q, function (err, list) {
+ if (err) return done(err)
- list_aspect(this,{args:args,q:q,qent:qent},done,function(ctxt,done){
- ctxt.qent.list$(ctxt.q,function(err,list){
- if( err ) return done(err);
-
- var out, data = _.map(list,function(ent){
- var data = ent.data$(options.meta,'string')
+ var out
+ var data = _.map(list, function (ent) {
+ var data = ent.data$(options.meta, 'string')
return data
})
- if( _.isString(options.list.embed) ) {
+ if (_.isString(options.list.embed)) {
out = {}
out[options.list.embed] = data
}
- else out = data;
+ else out = data
- done(err,out)
+ done(err, out)
})
})
}
}
-
-
// lenient with PUT and POST - treat them as aliases, and both can create new entities
- function action_putpost(si,args,done) {
+ function action_putpost (si, args, done) {
var ent_type = parse_ent(args)
- var ent = si.make(ent_type.zone,ent_type.base,ent_type.name)
+ var ent = si.make(ent_type.zone, ent_type.base, ent_type.name)
var data = args.data || {}
- var good = _.filter(_.keys(data),function(k){return !~k.indexOf('$')})
+ var good = _.filter(_.keys(data), function (k) { return !~k.indexOf('$') })
- var fields = _.pick(data,good)
+ var fields = _.pick(data, good)
ent.data$(fields)
- if( null != ent_type.entid ) {
+ if (ent_type.entid != null) {
ent.id = ent_type.entid
- }
- else if( null != data.id$ && options.allow_id ) {
+ } else if (data.id$ != null && options.allow_id) {
ent.id$ = data.id$
}
- save_aspect(si,{args:args,ent:ent},done,function(ctxt,done){
- ctxt.ent.save$(function(err,ent){
- var data = ent ? ent.data$(true,'string') : null
+ save_aspect(si, {args: args, ent: ent}, done, function (ctxt, done) {
+ ctxt.ent.save$(function (err, ent) {
+ var data = ent ? ent.data$(true, 'string') : null
done(err, data)
})
})
}
-
-
-
-
-
- function action_delete(args,done){
+ function action_delete (args, done) {
var ent_type = parse_ent(args)
- if( ent_type.entid ) {
- var ent = this.make(ent_type.zone,ent_type.base,ent_type.name)
+ if (ent_type.entid) {
+ var ent = this.make(ent_type.zone, ent_type.base, ent_type.name)
- remove_aspect(this,{args:args,ent:ent},done,function(ctxt,done){
- ctxt.ent.remove$(ent_type.entid,function(err){
- return done(null,{id:ent_type.entid})
+ remove_aspect(this, {args: args, ent: ent}, done, function (ctxt, done) {
+ ctxt.ent.remove$(ent_type.entid, function (err) {
+ if (err) return done(err)
+ return done(null, {id: ent_type.entid})
})
})
}
- else return done(null,{id:null})
+ else return done(null, {id: null})
}
-
-
- function resolve(req,res,args,act,respond) {
- var kind = options.canonalias[req.params.kind] || req.params.kind
+ function resolve (req, res, args, act, respond) {
+ var kind = options.canonalias[req.params.kind] || req.params.kind
var parts = kind.split('_')
-
- function def(p) { return _.isString(p) ? (0 < p.length ? p : void 0) : void 0 }
- if( 3 == parts.length ) {
+ function def (p) { return _.isString(p) ? (p.length > 0 ? p : void 0) : void 0 }
+
+ if (parts.length === 3) {
args.zone = def(parts[0])
args.base = def(parts[1])
args.name = def(parts[2])
- }
- else if( 2 == parts.length ) {
+ } else if (parts.length === 2) {
args.zone = mark
args.base = def(parts[0])
args.name = def(parts[1])
- }
- else if( 1 == parts.length ) {
+ } else if (parts.length === 1) {
args.zone = mark
args.base = mark
args.name = def(parts[0])
}
-
// query properties are verbatim
// query meta data params use $ suffix
- if( req.query ) {
- args.q = seneca.util.clean( _.extend({},args.q$,req.query) )
+ if (req.query) {
+ args.q = seneca.util.clean(_.extend({}, args.q$, req.query))
- if( req.query.q$ ) {
- args.q = _.extend(JSON.parse(req.query.q$),args.q)
+ if (req.query.q$) {
+ args.q = _.extend(JSON.parse(req.query.q$), args.q)
}
- if( req.query.skip$ ) {
- args.skip = parseInt(req.query.skip$)
+ if (req.query.skip$) {
+ args.skip = parseInt(req.query.skip$, 10)
}
- if( req.query.limit$ ) {
- args.limit = parseInt(req.query.limit$)
+ if (req.query.limit$) {
+ args.limit = parseInt(req.query.limit$, 10)
}
- if( req.query.sort$ ) {
+ if (req.query.sort$) {
args.sort = req.query.sort$
}
}
-
- act(args,respond)
- }
+ act(args, respond)
+ }
- _.each(pins, function(pin){
- pin = _.extend({},pin,{role:plugin,prefix:options.prefix,method:'*'})
-
- seneca.act({role:'web',use:{
- prefix:options.prefix,
- pin:pin,
- //pin:{role:plugin,prefix:options.prefix,method:'*'},
- startware:options.startware,
- premap:options.premap,
- map:{
- get:{GET:resolve,alias:':kind/:id?'},
- put:{PUT:resolve,alias:':kind/:id?',data:true},
- post:{POST:resolve,alias:':kind/:id?',data:true},
- delete:{DELETE:resolve,alias:':kind/:id'}
+ _.each(pins, function (pin) {
+ pin = _.extend({}, pin, {role: plugin, prefix: options.prefix, method: '*'})
+
+ seneca.act({role: 'web', use: {
+ prefix: options.prefix,
+ pin: pin,
+ // pin:{role:plugin,prefix:options.prefix,method:'*'},
+ startware: options.startware,
+ premap: options.premap,
+ map: {
+ get: {GET: resolve, alias: ':kind/:id?'},
+ put: {PUT: resolve, alias: ':kind/:id?', data: true},
+ post: {POST: resolve, alias: ':kind/:id?', data: true},
+ delete: {DELETE: resolve, alias: ':kind/:id'}
},
- postmap:options.postmap,
- endware:options.endware,
+ postmap: options.postmap,
+ endware: options.endware
}})
})
-
return {
- name:plugin
+ name: plugin
}
}
-
-
-
diff --git a/package.json b/package.json
index c91335c..5dcdea7 100644
--- a/package.json
+++ b/package.json
@@ -20,17 +20,17 @@
"author": "Richard Rodger (@rjrodger)",
"license": "MIT",
"devDependencies": {
- "body-parser": "~1.11.0",
- "connect": "~3.3.4",
- "docco": "~0.6.3",
- "gex": "~0.2.0",
- "jshint": "~2.6.0",
- "mocha": "~2.1.0",
+ "body-parser": "^1.14.1",
+ "connect": "^3.4.0",
+ "docco": "^0.7.0",
+ "gex": "^0.2.2",
+ "jshint": "^2.8.0",
+ "mocha": "^2.3.4",
"seneca": "plugin",
- "serve-static": "~1.8.1"
+ "serve-static": "^1.10.0"
},
"dependencies": {
- "lodash": "~2.4.1"
+ "lodash": "^3.10.1"
},
"files": [
"README.md",
diff --git a/test.sh b/test.sh
index bc2a00b..914d2dc 100755
--- a/test.sh
+++ b/test.sh
@@ -10,31 +10,30 @@ POST_FOO_a0=`curl -m 1 -s -d '{"tag":"AA","zed":1}' -H "Content-Type: applicatio
GET_FOO_a1=`curl -m 1 -s http://localhost:3000/api/rest/foo/a`
kill -9 $NODE_PID
-if [ $GET_FOO_a0 != '{"entity$":"-/-/foo","tag":"A","id":"a"}' ]; then
+if [ $GET_FOO_a0 != '{"tag":"A","id":"a"}' ]; then
echo "FAIL: $GET_FOO_a0"
exit 1
else
echo "PASS: $GET_FOO_a0"
fi
-if [ $GET_FOO_b0 != '{"entity$":"-/-/foo","tag":"B","id":"b"}' ]; then
+if [ $GET_FOO_b0 != '{"tag":"B","id":"b"}' ]; then
echo "FAIL: $GET_FOO_b0"
exit 1
else
echo "PASS: $GET_FOO_b0"
fi
-if [ $POST_FOO_a0 != '{"entity$":"-/-/foo","tag":"AA","zed":1,"id":"a"}' ]; then
+if [ $POST_FOO_a0 != '{"tag":"AA","zed":1,"id":"a"}' ]; then
echo "FAIL: $POST_FOO_a0"
exit 1
else
echo "PASS: $POST_FOO_a0"
fi
-if [ $GET_FOO_a1 != '{"entity$":"-/-/foo","tag":"AA","zed":1,"id":"a"}' ]; then
+if [ $GET_FOO_a1 != '{"tag":"AA","zed":1,"id":"a"}' ]; then
echo "FAIL: $GET_FOO_a1"
exit 1
else
echo "PASS: $GET_FOO_a1"
fi
-
diff --git a/test/basic.app.js b/test/basic.app.js
index 11795c0..fc4c418 100644
--- a/test/basic.app.js
+++ b/test/basic.app.js
@@ -1,30 +1,24 @@
/* Copyright (c) 2013-2015 Richard Rodger */
-"use strict";
+'use strict'
-
-// node basic.app.js
+// node basic.app.js
// must be run inside test folder so static works
-var connect = require('connect')
+var connect = require('connect')
var serveStatic = require('serve-static')
-var bodyParser = require('body-parser')
+var bodyParser = require('body-parser')
var seneca = require('seneca')()
-seneca.use( require('..') )
-
-
+seneca.use(require('..'))
var app = connect()
-app.use( serveStatic('./public') )
-app.use( bodyParser.json() )
-app.use( seneca.export('web') )
+app.use(serveStatic('./public'))
+app.use(bodyParser.json())
+app.use(seneca.export('web'))
app.listen(3000)
-
var foo_ent = seneca.make('foo')
-foo_ent.make$({id$:'a',tag:'A'}).save$()
-foo_ent.make$({id$:'b',tag:'B'}).save$()
-
-
+foo_ent.make$({id$: 'a', tag: 'A'}).save$()
+foo_ent.make$({id$: 'b', tag: 'B'}).save$()
diff --git a/test/jsonrest-api.test.js b/test/jsonrest-api.test.js
index 2d02d35..1618f6c 100644
--- a/test/jsonrest-api.test.js
+++ b/test/jsonrest-api.test.js
@@ -1,112 +1,95 @@
/* Copyright (c) 2013-2015 Richard Rodger */
-"use strict";
+'use strict'
+/* global it describe*/
// mocha jsonrest-api.test.js
+var assert = require('assert')
-
-var assert = require('assert')
-var util = require('util')
-
-
-var _ = require('lodash')
-var gex = require('gex')
-
-
-var jsonrest_api = require('..')
-
+var gex = require('gex')
var seneca = require('seneca')()
+seneca.use(require('..'))
+seneca.use(require('..'), {tag$: 'aspects', aspect: true, prefix: '/aspects/rest'})
+seneca.use(require('..'), {tag$: 'injects', aspect: true, prefix: '/inject/rest'})
+seneca.use(require('..'), {tag$: 'access', aspect: 'user-access', prefix: '/access/rest'})
-seneca.use( require('..') )
-seneca.use( require('..'), {tag$:'aspects', aspect:true, prefix:'/aspects/rest'})
-seneca.use( require('..'), {tag$:'injects', aspect:true, prefix:'/inject/rest'})
-seneca.use( require('..'), {tag$:'access', aspect:'user-access', prefix:'/access/rest'})
-
-
-var jsonrestapi = seneca.pin({role:'jsonrest-api',prefix:'/api/rest',method:'*'})
-var jsonrestapi_aspects = seneca.pin({role:'jsonrest-api',prefix:'/aspects/rest',method:'*'})
-var jsonrestapi_inject = seneca.pin({role:'jsonrest-api',prefix:'/inject/rest',method:'*'})
-var jsonrestapi_access = seneca.pin({role:'jsonrest-api',prefix:'/access/rest',method:'*'})
+var jsonrestapi = seneca.pin({role: 'jsonrest-api', prefix: '/api/rest', method: '*'})
+var jsonrestapi_aspects = seneca.pin({role: 'jsonrest-api', prefix: '/aspects/rest', method: '*'})
+var jsonrestapi_inject = seneca.pin({role: 'jsonrest-api', prefix: '/inject/rest', method: '*'})
-
-seneca.add({role:'jsonrest-api',prefix:'/inject/rest',aspect:'save',advice:'before'},function(args,done){
- args.ctxt.ent.b=2
- done(null,args.ctxt)
+seneca.add({role: 'jsonrest-api', prefix: '/inject/rest', aspect: 'save', advice: 'before'}, function (args, done) {
+ args.ctxt.ent.b = 2
+ done(null, args.ctxt)
})
-seneca.add({role:'jsonrest-api',prefix:'/inject/rest',aspect:'load',advice:'after'},function(args,done){
- args.ctxt.out.b=3
- done(null,args.ctxt.out)
+seneca.add({role: 'jsonrest-api', prefix: '/inject/rest', aspect: 'load', advice: 'after'}, function (args, done) {
+ args.ctxt.out.b = 3
+ done(null, args.ctxt.out)
})
-seneca.add({role:'jsonrest-api',prefix:'/inject/rest',aspect:'list',advice:'before'},function(args,done){
+seneca.add({role: 'jsonrest-api', prefix: '/inject/rest', aspect: 'list', advice: 'before'}, function (args, done) {
// still 2, as after advice did not change persistent version
- args.ctxt.q.b=2
- done(null,args.ctxt)
+ args.ctxt.q.b = 2
+ done(null, args.ctxt)
})
-seneca.add({role:'jsonrest-api',prefix:'/inject/rest',aspect:'remove',advice:'after'},function(args,done){
- args.ctxt.out.b=4
- done(null,args.ctxt.out)
+seneca.add({role: 'jsonrest-api', prefix: '/inject/rest', aspect: 'remove', advice: 'after'}, function (args, done) {
+ args.ctxt.out.b = 4
+ done(null, args.ctxt.out)
})
-
-
-function squish(obj) { return util.inspect(obj).replace(/\s+/g,'') }
-
-
-describe('jsonrest-api', function() {
-
- it('version', function() {
- assert.ok(gex(seneca.version),'0.5.*')
+describe('jsonrest-api', function () {
+ it('version', function () {
+ assert.ok(gex(seneca.version), '0.5.*')
})
-
- function do_methods(pin,entname,vals) {
- return function() {
- ;pin.post({name:entname,data:{a:1}},function(err,saved){
- assert.ok(null==err)
+ function do_methods (pin, entname, vals) {
+ return function () {
+ ;pin.post({name: entname, data: {a: 1}}, function (err, saved) {
+ assert.ok(err == null)
assert.ok(saved.id)
- assert.equal(saved.a,1)
- assert.equal(seneca.util.parsecanon(saved.entity$).name,entname)
- if( vals ) { assert.equal(saved.b,vals[0]) }
-
- ;pin.get({name:entname,id:saved.id},function(err,loaded){
- //console.dir(loaded)
- assert.ok(null==err)
- assert.equal(loaded.id,saved.id)
- assert.equal(loaded.a,1)
- assert.equal(seneca.util.parsecanon(loaded.entity$).name,entname)
- if( vals ) { assert.equal(loaded.b,vals[1]) }
-
- ;pin.get({name:entname},function(err,list){
- //console.dir(list)
- assert.ok(null==err)
- assert.equal(1,list.length)
- assert.equal(list[0].a,1)
- assert.equal(seneca.util.parsecanon(list[0].entity$).name,entname)
- if( vals ) { assert.equal(list[0].b,vals[0]) }
-
- ;pin.delete({name:entname,id:saved.id},function(err,deleted){
- //console.dir(deleted)
- assert.ok(null==err)
- assert.equal(loaded.id,deleted.id)
- if( vals ) { assert.equal(deleted.b,vals[2]) }
-
- ;pin.get({name:entname},function(err,list){
- //console.dir(list)
- assert.ok(null==err)
- assert.equal(0,list.length)
-
- }) }) }) }) })
+ assert.equal(saved.a, 1)
+ assert.equal(seneca.util.parsecanon(saved.entity$).name, entname)
+ if (vals) { assert.equal(saved.b, vals[0]) }
+
+ ;pin.get({name: entname, id: saved.id}, function (err, loaded) {
+ // console.dir(loaded)
+ assert.ok(err == null)
+ assert.equal(loaded.id, saved.id)
+ assert.equal(loaded.a, 1)
+ assert.equal(seneca.util.parsecanon(loaded.entity$).name, entname)
+ if (vals) { assert.equal(loaded.b, vals[1]) }
+
+ ;pin.get({name: entname}, function (err, list) {
+ // console.dir(list)
+ assert.ok(err == null)
+ assert.equal(1, list.length)
+ assert.equal(list[0].a, 1)
+ assert.equal(seneca.util.parsecanon(list[0].entity$).name, entname)
+ if (vals) { assert.equal(list[0].b, vals[0]) }
+
+ ;pin.delete({name: entname, id: saved.id}, function (err, deleted) {
+ // console.dir(deleted)
+ assert.ok(err == null)
+ assert.equal(loaded.id, deleted.id)
+ if (vals) { assert.equal(deleted.b, vals[2]) }
+
+ ;pin.get({name: entname}, function (err, list) {
+ // console.dir(list)
+ assert.ok(err == null)
+ assert.equal(0, list.length)
+ })
+ })
+ })
+ })
+ })
}
}
-
- it('happy', do_methods(jsonrestapi,'foo'))
- it('aspect_defaults', do_methods(jsonrestapi_aspects,'bar'))
- it('aspect_inject', do_methods(jsonrestapi_inject,'zoo',[2,3,4]))
+ it('happy', do_methods(jsonrestapi, 'foo'))
+ it('aspect_defaults', do_methods(jsonrestapi_aspects, 'bar'))
+ it('aspect_inject', do_methods(jsonrestapi_inject, 'zoo', [2, 3, 4]))
})
diff --git a/test/public/index.html b/test/public/index.html
index ca8fb02..c8f5a9c 100644
--- a/test/public/index.html
+++ b/test/public/index.html
@@ -1,3 +1,2 @@
-
seneca-jsonrest-api