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