@@ -5,7 +5,6 @@ const request = require('supertest')
55const { expect } = require ( 'chai' )
66const rm = require ( '../utils' ) . rm
77
8- const HOST = 'solid.org'
98const USER = 'https://ruben.verborgh.org/profile/#me'
109
1110describe ( 'Auth Proxy' , ( ) => {
@@ -15,6 +14,8 @@ describe('Auth Proxy', () => {
1514 // Set up test back-end server
1615 nock ( 'http://server-a.org' ) . persist ( )
1716 . get ( / ./ ) . reply ( 200 , function ( ) { return this . req . headers } )
17+ . options ( / ./ ) . reply ( 200 )
18+ . post ( / ./ ) . reply ( 200 )
1819
1920 // Set up Solid server
2021 server = ldnode ( {
@@ -36,18 +37,100 @@ describe('Auth Proxy', () => {
3637
3738 describe ( 'responding to /server/a' , ( ) => {
3839 let response
39- before ( ( ) => {
40- return request ( server ) . get ( '/server/a' )
41- . set ( 'Host' , HOST )
40+ before ( ( ) =>
41+ request ( server ) . get ( '/server/a/' )
4242 . then ( res => { response = res } )
43- } )
43+ )
4444
4545 it ( 'sets the User header on the proxy request' , ( ) => {
4646 expect ( response . body ) . to . have . property ( 'user' , USER )
4747 } )
48+ } )
49+
50+ describe ( 'responding to GET' , ( ) => {
51+ describe ( 'for a path with read permissions' , ( ) => {
52+ let response
53+ before ( ( ) =>
54+ request ( server ) . get ( '/server/a/r' )
55+ . then ( res => { response = res } )
56+ )
57+ it ( 'returns status code 200' , ( ) => {
58+ expect ( response ) . to . have . property ( 'statusCode' , 200 )
59+ } )
60+ } )
61+
62+ describe ( 'for a path without read permissions' , ( ) => {
63+ let response
64+ before ( ( ) =>
65+ request ( server ) . get ( '/server/a/wc' )
66+ . then ( res => { response = res } )
67+ )
68+
69+ it ( 'returns status code 403' , ( ) => {
70+ expect ( response ) . to . have . property ( 'statusCode' , 403 )
71+ } )
72+ } )
73+ } )
74+
75+ describe ( 'responding to OPTIONS' , ( ) => {
76+ describe ( 'for a path with read permissions' , ( ) => {
77+ let response
78+ before ( ( ) =>
79+ request ( server ) . options ( '/server/a/r' )
80+ . then ( res => { response = res } )
81+ )
82+ it ( 'returns status code 200' , ( ) => {
83+ expect ( response ) . to . have . property ( 'statusCode' , 200 )
84+ } )
85+ } )
86+
87+ describe ( 'for a path without read permissions' , ( ) => {
88+ let response
89+ before ( ( ) =>
90+ request ( server ) . options ( '/server/a/wc' )
91+ . then ( res => { response = res } )
92+ )
93+
94+ it ( 'returns status code 403' , ( ) => {
95+ expect ( response ) . to . have . property ( 'statusCode' , 403 )
96+ } )
97+ } )
98+ } )
99+
100+ describe ( 'responding to POST' , ( ) => {
101+ describe ( 'for a path with read and write permissions' , ( ) => {
102+ let response
103+ before ( ( ) =>
104+ request ( server ) . post ( '/server/a/rw' )
105+ . then ( res => { response = res } )
106+ )
107+ it ( 'returns status code 200' , ( ) => {
108+ expect ( response ) . to . have . property ( 'statusCode' , 200 )
109+ } )
110+ } )
111+
112+ describe ( 'for a path without read permissions' , ( ) => {
113+ let response
114+ before ( ( ) =>
115+ request ( server ) . post ( '/server/a/w' )
116+ . then ( res => { response = res } )
117+ )
118+
119+ it ( 'returns status code 403' , ( ) => {
120+ expect ( response ) . to . have . property ( 'statusCode' , 403 )
121+ } )
122+ } )
123+
124+ describe ( 'for a path without write permissions' , ( ) => {
125+ let response
126+ before ( ( ) =>
127+ request ( server ) . post ( '/server/a/r' )
128+ . then ( res => { response = res } )
129+ )
48130
49- it ( 'returns status code 200' , ( ) => {
50- expect ( response ) . to . have . property ( 'statusCode' , 200 )
131+ it ( 'returns status code 403' , ( ) => {
132+ expect ( response ) . to . have . property ( 'statusCode' , 403 )
133+ } )
51134 } )
52135 } )
53136 } )
0 commit comments