Open agarciadom opened 8 months ago
This should include handling of errors from GitHub e.g. the following exception is seen if a user tries to access a repository that they do not have permission for:
educationplatform-docker-mdenet-tokenserver-1 | RangeError [ERR_HTTP_INVALID_STATUS_CODE]: Invalid status code: undefined
educationplatform-docker-mdenet-tokenserver-1 | at new NodeError (node:internal/errors:400:5)
educationplatform-docker-mdenet-tokenserver-1 | at ServerResponse.writeHead (node:_http_server:343:11)
educationplatform-docker-mdenet-tokenserver-1 | at ServerResponse._implicitHeader (node:_http_server:334:8)
educationplatform-docker-mdenet-tokenserver-1 | at write_ (node:_http_outgoing:886:9)
educationplatform-docker-mdenet-tokenserver-1 | at ServerResponse.end (node:_http_outgoing:996:5)
educationplatform-docker-mdenet-tokenserver-1 | at ServerResponse.send (/usr/src/mdenet-ts/node_modules/express/lib/response.js:232:10)
educationplatform-docker-mdenet-tokenserver-1 | at ServerResponse.json (/usr/src/mdenet-ts/node_modules/express/lib/response.js:278:15)
educationplatform-docker-mdenet-tokenserver-1 | at errorHandlingMiddleware (/usr/src/mdenet-ts/tokenserver/dist/middleware/ErrorHandlingMiddleware.js:6:36)
educationplatform-docker-mdenet-tokenserver-1 | at Layer.handle_error (/usr/src/mdenet-ts/node_modules/express/lib/router/layer.js:71:5)
educationplatform-docker-mdenet-tokenserver-1 | at trim_prefix (/usr/src/mdenet-ts/node_modules/express/lib/router/index.js:326:13)```
The token server needs to have better error reporting, to help track down issues in its setup. For instance, the
StorageController
should provide clearer error responses when 1) the expected authentication cookie is missing, 2) the Octokit request fails, and 3) the expected parameters are missing.These behaviours should be unit tested as well: 1) and 3) should be reasonably simple to unit test, and 2) could be unit tested by replacing Octokit with a stub that provides an error response.