@@ -32,11 +32,14 @@ describe('CORS Middleware', () => {
32
32
} ) ;
33
33
34
34
it ( 'uses default configuration when no options are provided' , async ( ) => {
35
+ // Prepare
35
36
const corsHeaders : { [ key : string ] : string } = { } ;
36
37
app . get ( '/test' , [ createHeaderCheckMiddleware ( corsHeaders ) ] , async ( ) => ( { success : true } ) ) ;
37
38
39
+ // Act
38
40
const result = await app . resolve ( getRequestEvent , context ) ;
39
41
42
+ // Assess
40
43
expect ( result . headers ?. [ 'access-control-allow-origin' ] ) . toEqual ( DEFAULT_CORS_OPTIONS . origin ) ;
41
44
expect ( result . multiValueHeaders ?. [ 'access-control-allow-methods' ] ) . toEqual ( DEFAULT_CORS_OPTIONS . allowMethods ) ;
42
45
expect ( result . multiValueHeaders ?. [ 'access-control-allow-headers' ] ) . toEqual ( DEFAULT_CORS_OPTIONS . allowHeaders ) ;
@@ -45,12 +48,15 @@ describe('CORS Middleware', () => {
45
48
} ) ;
46
49
47
50
it ( 'merges user options with defaults' , async ( ) => {
51
+ // Prepare
48
52
const corsHeaders : { [ key : string ] : string } = { } ;
49
- const customApp = new Router ( ) ;
50
- customApp . get ( '/test' , [ cors ( customCorsOptions ) , createHeaderCheckMiddleware ( corsHeaders ) ] , async ( ) => ( { success : true } ) ) ;
53
+ const app = new Router ( ) ;
54
+ app . get ( '/test' , [ cors ( customCorsOptions ) , createHeaderCheckMiddleware ( corsHeaders ) ] , async ( ) => ( { success : true } ) ) ;
51
55
52
- const result = await customApp . resolve ( getRequestEvent , context ) ;
56
+ // Act
57
+ const result = await app . resolve ( getRequestEvent , context ) ;
53
58
59
+ // Assess
54
60
expect ( result . headers ?. [ 'access-control-allow-origin' ] ) . toEqual ( 'https://example.com' ) ;
55
61
expect ( result . multiValueHeaders ?. [ 'access-control-allow-methods' ] ) . toEqual ( [ 'GET' , 'POST' ] ) ;
56
62
expect ( result . multiValueHeaders ?. [ 'access-control-allow-headers' ] ) . toEqual ( [ 'Authorization' , 'Content-Type' ] ) ;
@@ -69,28 +75,37 @@ describe('CORS Middleware', () => {
69
75
[ 'matching' , 'https://app.com' , 'https://app.com' ] ,
70
76
[ 'non-matching' , 'https://non-matching.com' , '' ]
71
77
] ) ( 'handles array origin with %s request' , async ( _ , origin , expected ) => {
72
- const customApp = new Router ( ) ;
73
- customApp . get ( '/test' , [ cors ( { origin : [ 'https://app.com' , 'https://admin.app.com' ] } ) ] , async ( ) => ( { success : true } ) ) ;
78
+ // Prepare
79
+ const app = new Router ( ) ;
80
+ app . get ( '/test' , [ cors ( { origin : [ 'https://app.com' , 'https://admin.app.com' ] } ) ] , async ( ) => ( { success : true } ) ) ;
74
81
75
- const result = await customApp . resolve ( createTestEvent ( '/test' , 'GET' , { 'Origin' : origin } ) , context ) ;
82
+ // Act
83
+ const result = await app . resolve ( createTestEvent ( '/test' , 'GET' , { 'Origin' : origin } ) , context ) ;
76
84
85
+ // Assess
77
86
expect ( result . headers ?. [ 'access-control-allow-origin' ] ) . toEqual ( expected ) ;
78
87
} ) ;
79
88
80
89
it ( 'handles OPTIONS preflight requests' , async ( ) => {
90
+ // Prepare
81
91
app . options ( '/test' , async ( ) => ( { foo : 'bar' } ) ) ;
82
92
93
+ // Act
83
94
const result = await app . resolve ( createTestEvent ( '/test' , 'OPTIONS' , { 'Access-Control-Request-Method' : 'GET' } ) , context ) ;
84
95
96
+ // Assess
85
97
expect ( result . statusCode ) . toBe ( 204 ) ;
86
98
} ) ;
87
99
88
100
it ( 'calls the next middleware if the Access-Control-Request-Method is not present' , async ( ) => {
101
+ // Prepare
89
102
const corsHeaders : { [ key : string ] : string } = { } ;
90
103
app . options ( '/test' , [ createHeaderCheckMiddleware ( corsHeaders ) ] , async ( ) => ( { success : true } ) ) ;
91
104
105
+ // Act
92
106
await app . resolve ( optionsRequestEvent , context ) ;
93
107
108
+ // Assess
94
109
expect ( corsHeaders ) . toMatchObject ( expectedDefaultHeaders ) ;
95
110
} ) ;
96
111
} ) ;
0 commit comments