1
+ var Koa = require ( 'koa' )
2
+ , http = require ( 'http' )
3
+ , request = require ( 'supertest' )
4
+ , should = require ( 'should' )
5
+ , Route = require ( './simple-server-router.js' )
6
+
7
+ async function writeCtxBodyAuthorName ( ctx , next ) {
8
+ ctx . body = {
9
+ Author : 'ZWkang'
10
+ }
11
+ return await next ( )
12
+ }
13
+ async function writeCtxBodyMuti ( ctx , next ) {
14
+ ctx . body . muti = true
15
+ return await next ( )
16
+ }
17
+ describe ( 'Route#middlerware' , function ( ) {
18
+ it ( 'test single Route case' , function ( done ) {
19
+ var app = new Koa ( ) ;
20
+ var router = new Route ( ) ;
21
+
22
+ router . register ( / \/ s i n g l e M i d d l e r / , writeCtxBodyAuthorName )
23
+
24
+ app . use ( router . createMiddlerware ( ) ) ;
25
+ request ( http . createServer ( app . callback ( ) ) )
26
+ . get ( '/singleMiddler' )
27
+ . expect ( 200 )
28
+ . end ( function ( err , res ) {
29
+ if ( err ) return done ( err ) ;
30
+ res . should . have . property ( 'body' ) ;
31
+ res . body . should . have . property ( 'Author' , 'ZWkang' ) ;
32
+ done ( ) ;
33
+ } ) ;
34
+ } ) ;
35
+ it ( 'test muti Routes case' , function ( done ) {
36
+ var app = new Koa ( ) ;
37
+ var router = new Route ( {
38
+ muti : true
39
+ } ) ;
40
+
41
+ router . register ( / \/ s i n g l e M i d d l e r / , writeCtxBodyAuthorName )
42
+ router . register ( / \/ s i n g l e M i d d l e r s T e s t / , writeCtxBodyMuti )
43
+ app . use ( router . createMiddlerware ( ) ) ;
44
+ request ( http . createServer ( app . callback ( ) ) )
45
+ . get ( '/singleMiddlersTest' )
46
+ . expect ( 200 )
47
+ . end ( function ( err , res ) {
48
+ if ( err ) return done ( err ) ;
49
+ res . should . have . property ( 'body' ) ;
50
+ res . body . should . have . property ( 'Author' , 'ZWkang' ) ;
51
+ res . body . should . have . property ( 'muti' , true ) ;
52
+ done ( ) ;
53
+ } ) ;
54
+ } ) ;
55
+ it ( 'test default should be 404 status code' , function ( done ) {
56
+ var app = new Koa ( ) ;
57
+ var router = new Route ( ) ;
58
+
59
+ router . register ( / \/ s i n g l e M i d d l e r / , writeCtxBodyAuthorName )
60
+ router . register ( / \/ s i n g l e M i d d l e r s T e s t / , writeCtxBodyMuti )
61
+ app . use ( router . createMiddlerware ( ) ) ;
62
+ request ( http . createServer ( app . callback ( ) ) )
63
+ . get ( '/iwant404' )
64
+ . expect ( 404 )
65
+ . end ( function ( err , res ) {
66
+ if ( err ) return done ( err ) ;
67
+ done ( ) ;
68
+ } ) ;
69
+ } ) ;
70
+ } )
0 commit comments