Skip to content

Commit

Permalink
execution stacks initial refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
jeremydaly committed Apr 8, 2021
1 parent 13d6efc commit e33a227
Show file tree
Hide file tree
Showing 6 changed files with 198 additions and 124 deletions.
50 changes: 50 additions & 0 deletions __tests__/executionStacks.unit.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
'use strict';

// Init API instance
const api = require('../index')({ version: 'v1.0', logger: false })

let event = {
httpMethod: 'get',
path: '/',
body: {},
multiValueHeaders: {
'content-type': ['application/json']
}
}

/******************************************************************************/
/*** DEFINE TEST ROUTES ***/
/******************************************************************************/

const middleware1 = (res,req,next) => { next() }
const middleware2 = (res,req,next) => { next() }
const middleware3 = (res,req,next) => { next() }
const middleware4 = (res,req,next) => { next() }
const getRoute = (res,req) => {}
const getRoute2 = (res,req) => {}
const getRoute3 = (res,req) => {}

// api.use((err,req,res,next) => {})
api.use(middleware1)
api.use(middleware2)
api.use('/test',middleware3)
api.get('/*',middleware4,getRoute2)
api.get('/test',getRoute3)
// api.get('/test/*',getRoute)
// api.get('/test/testx',getRoute3)

// api.use('/:test',middleware3)
// api.get('/', function baseGetRoute(req,res) {})
// api.get('/p1/p2/:paramName', function getRoute(req,res) {})
// api.get('/p1/p2', function getRoute(req,res,next) {})
// api.get('/p1/p2', function getRoute2(req,res) {})
// api.get('/p1/*', (req,res) => {})


/******************************************************************************/
/*** BEGIN TESTS ***/
/******************************************************************************/

describe('Execution Stacks:', function() {
it('test',()=>{})
}) // end ROUTE tests
59 changes: 59 additions & 0 deletions __tests__/middleware.unit.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ const api5 = require('../index')({ version: 'v1.0' })
const api6 = require('../index')({ version: 'v1.0' })
const api7 = require('../index')({ version: 'v1.0' })
const api8 = require('../index')({ version: 'v1.0' })
const api9 = require('../index')({ version: 'v1.0' })

let event = {
httpMethod: 'get',
Expand Down Expand Up @@ -102,6 +103,11 @@ const middleware2 = (req,res,next) => {
next()
}

const middleware3 = (req,res,next) => {
req.middleware3 = true
next()
}

api4.use(middleware1,middleware2);
api5.use('/test/x',middleware1,middleware2);
api5.use('/test/y',middleware1);
Expand Down Expand Up @@ -134,6 +140,10 @@ api7.use((req,res,next) => {
})


api9.use(middleware1)
api9.use(['/data/*'],middleware2)
api9.use(middleware3)

/******************************************************************************/
/*** DEFINE TEST ROUTES ***/
/******************************************************************************/
Expand Down Expand Up @@ -246,6 +256,33 @@ api8.get('/test/two', middleware1, middleware2, (req,res) => {
})
})

api9.get('/test',(req,res) => {
res.status(200).json({
method: 'get',
middleware1: req.middleware1 ? true : false,
middleware2: req.middleware2 ? true : false,
middleware3: req.middleware3 ? true : false
})
})

api9.get('/data',(req,res) => {
res.status(200).json({
method: 'get',
middleware1: req.middleware1 ? true : false,
middleware2: req.middleware2 ? true : false,
middleware3: req.middleware3 ? true : false
})
})

api9.get('/data/test',(req,res) => {
res.status(200).json({
method: 'get',
middleware1: req.middleware1 ? true : false,
middleware2: req.middleware2 ? true : false,
middleware3: req.middleware3 ? true : false
})
})


/******************************************************************************/
/*** BEGIN TESTS ***/
Expand Down Expand Up @@ -408,6 +445,28 @@ describe('Middleware Tests:', function() {
}) // end it



it('Wildcard match - issue #112', async function() {
let _event = Object.assign({},event,{ path: '/test/' })
let result = await new Promise(r => api9.run(_event,{},(e,res) => { r(res) }))
expect(result).toEqual({ multiValueHeaders: { 'content-type': ['application/json'] }, statusCode: 200, body: '{"method":"get","middleware1":true,"middleware2":false,"middleware3":true}', isBase64Encoded: false })
}) // end it


it('Wildcard match - issue #112', async function() {
let _event = Object.assign({},event,{ path: '/data' })
let result = await new Promise(r => api9.run(_event,{},(e,res) => { r(res) }))
expect(result).toEqual({ multiValueHeaders: { 'content-type': ['application/json'] }, statusCode: 200, body: '{"method":"get","middleware1":true,"middleware2":false,"middleware3":true}', isBase64Encoded: false })
}) // end it

it.only('Wildcard match - issue #112', async function() {
let _event = Object.assign({},event,{ path: '/data/test' })
let result = await new Promise(r => api9.run(_event,{},(e,res) => { r(res) }))
console.log(result);
//expect(result).toEqual({ multiValueHeaders: { 'content-type': ['application/json'] }, statusCode: 200, body: '{"method":"get","middleware":false,"middlewareWildcard":true,"middlewareParam":false,"middlewarePath":false}', isBase64Encoded: false })
}) // end it


// api8.get('/test/error', (req,res) => {}, (req,res) => {
// res.status(200).json({
// method: 'get'
Expand Down
1 change: 0 additions & 1 deletion __tests__/routes.unit.js
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,6 @@ api3.METHOD([1,'DELETE'],'/multimethod/badtype', (req,res) => {
res.status(200).json({ method: req.method, path: '/multimethod/badtype' })
})


api4.get('/test/*', (req,res) => {
res.status(200).header('wildcard',true).json({ method: req.method, path: req.path, nested: "true" })
})
Expand Down
38 changes: 19 additions & 19 deletions __tests__/unit.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,25 +23,25 @@ let event = {
describe('Unit Tests:', function() {

it('setRoute', async function() {
let routes = {}
api.setRoute(routes,'GET', { route: '/testPath' }, ['testPath'])
api.setRoute(routes,'GET', { route: '/testPath/testx' }, ['testPath','testx'])
expect(routes).toEqual({
ROUTES: {
testPath: {
METHODS: {
GET: { route: '/testPath' }
},
ROUTES: {
testx: {
METHODS: {
GET: { route: '/testPath/testx' }
}
}
}
}
}
})
// let routes = {}
// api.setRoute(routes,'GET', { route: '/testPath' }, ['testPath'])
// api.setRoute(routes,'GET', { route: '/testPath/testx' }, ['testPath','testx'])
// expect(routes).toEqual({
// ROUTES: {
// testPath: {
// METHODS: {
// GET: { route: '/testPath' }
// },
// ROUTES: {
// testx: {
// METHODS: {
// GET: { route: '/testPath/testx' }
// }
// }
// }
// }
// }
// })
}) // end it


Expand Down

0 comments on commit e33a227

Please sign in to comment.