Skip to content

Commit

Permalink
intern test process_outward
Browse files Browse the repository at this point in the history
  • Loading branch information
rjrodger committed Feb 17, 2018
1 parent f1c1e37 commit 0ea6455
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 0 deletions.
3 changes: 3 additions & 0 deletions seneca.js
Expand Up @@ -1457,6 +1457,9 @@ intern.process_outward = function(actctxt, data) {
} else if ('result' === outward.kind) {
data.res = outward.result
}
else {
Assert.fail('unknown outward kind: '+outward.kind)
}
}
}

Expand Down
70 changes: 70 additions & 0 deletions test/intern.test.js
@@ -1,8 +1,13 @@
/* Copyright (c) 2018 Richard Rodger, MIT License */

'use strict'

var Util = require('util')

var Lab = require('lab')
var Code = require('code')
var Ordu = require('ordu')


var lab = (exports.lab = Lab.script())
var describe = lab.describe
Expand Down Expand Up @@ -40,6 +45,71 @@ describe('seneca', function() {

fin()
})

it('process_outward', function(fin){
var outward = Ordu({ name: 'outward' })
.add(function(ctxt, data) {
data.x = 1
})
.add(function(ctxt, data) {
if(data.a) {
return {kind: 'error', error: new Error('a')}
}
})
.add(function(ctxt, data) {
if(data.b) {
return {kind: 'error', code:'b', info:{b:1}}
}
})
.add(function(ctxt, data) {
if(data.c) {
return {kind: 'result', result:{c:1}}
}
})
.add(function(ctxt, data) {
if(data.d) {
return {kind: 'bad'}
}
})

var actctxt = {
seneca: { private$: { outward: outward } }
}

var d0 = {a:1, meta:{}}
intern.seneca.process_outward(actctxt,d0)
expect(d0.x).equals(1)
expect(Util.isError(d0.res)).true()
expect(d0.meta.error).true()

var d1 = {b:2, meta:{}}
intern.seneca.process_outward(actctxt,d1)
expect(d1.x).equals(1)
expect(Util.isError(d1.res)).true()
expect(d1.res.code).equal('b')
expect(d1.meta.error).true()

var d2 = {c:3, meta:{}}
intern.seneca.process_outward(actctxt,d2)
expect(d2.x).equals(1)
expect(d2.res).equal({c:1})
expect(d2.meta.error).not.exists()

var d3 = {d:4}
try {
intern.seneca.process_outward(actctxt,d3)
}
catch(e) {
expect(e.code).equal('ERR_ASSERTION')
expect(e.message).equal('unknown outward kind: bad')
expect(d3.x).equals(1)
fin()
}

var d4 = {}
intern.seneca.process_outward(actctxt,d4)
expect(d4.x).equals(1)
})
})

describe('outward', function() {
Expand Down

0 comments on commit 0ea6455

Please sign in to comment.