@takaro/http 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.d.ts +1 -0
- package/dist/main.js +1 -0
- package/dist/main.js.map +1 -1
- package/package.json +1 -1
- package/src/main.ts +1 -0
- package/src/middleware/__tests__/adminAuth.unit.test.ts +0 -65
package/dist/main.d.ts
CHANGED
|
@@ -3,3 +3,4 @@ export * from './middleware/metrics.js';
|
|
|
3
3
|
export { createRateLimitMiddleware } from './middleware/rateLimit.js';
|
|
4
4
|
export { paginationMiddleware } from './middleware/paginationMiddleware.js';
|
|
5
5
|
export { apiResponse, APIOutput } from './util/apiResponse.js';
|
|
6
|
+
export { ErrorHandler } from './middleware/errorHandler.js';
|
package/dist/main.js
CHANGED
|
@@ -3,4 +3,5 @@ export * from './middleware/metrics.js';
|
|
|
3
3
|
export { createRateLimitMiddleware } from './middleware/rateLimit.js';
|
|
4
4
|
export { paginationMiddleware } from './middleware/paginationMiddleware.js';
|
|
5
5
|
export { apiResponse, APIOutput } from './util/apiResponse.js';
|
|
6
|
+
export { ErrorHandler } from './middleware/errorHandler.js';
|
|
6
7
|
//# sourceMappingURL=main.js.map
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC"}
|
package/package.json
CHANGED
package/src/main.ts
CHANGED
|
@@ -4,3 +4,4 @@ export * from './middleware/metrics.js';
|
|
|
4
4
|
export { createRateLimitMiddleware } from './middleware/rateLimit.js';
|
|
5
5
|
export { paginationMiddleware } from './middleware/paginationMiddleware.js';
|
|
6
6
|
export { apiResponse, APIOutput } from './util/apiResponse.js';
|
|
7
|
+
export { ErrorHandler } from './middleware/errorHandler.js';
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { HTTP } from '../../app.js';
|
|
2
|
-
import supertest from 'supertest';
|
|
3
|
-
import { expect } from '@takaro/test';
|
|
4
|
-
import { ory } from '@takaro/auth';
|
|
5
|
-
import { AdminClient } from '@takaro/apiclient';
|
|
6
|
-
import { adminAuthMiddleware } from '../adminAuth.js';
|
|
7
|
-
import { ErrorHandler } from '../errorHandler.js';
|
|
8
|
-
import { Request, Response } from 'express';
|
|
9
|
-
|
|
10
|
-
describe('adminAuth', () => {
|
|
11
|
-
let http: HTTP;
|
|
12
|
-
before(async () => {
|
|
13
|
-
http = new HTTP({}, { port: undefined });
|
|
14
|
-
http.expressInstance.use(
|
|
15
|
-
'/test',
|
|
16
|
-
adminAuthMiddleware,
|
|
17
|
-
(_req: Request, res: Response) => {
|
|
18
|
-
res.json({ ok: true });
|
|
19
|
-
},
|
|
20
|
-
ErrorHandler,
|
|
21
|
-
);
|
|
22
|
-
await http.start();
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
after(async () => {
|
|
26
|
-
await http.stop();
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
it('Rejects requests with no credentials', async () => {
|
|
30
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
31
|
-
// @ts-ignore
|
|
32
|
-
const response = await supertest(http.expressInstance).get('/test');
|
|
33
|
-
expect(response.status).to.be.equal(401);
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
it('Rejects requests with invalid credentials', async () => {
|
|
37
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
38
|
-
// @ts-ignore
|
|
39
|
-
const response = await supertest(http.expressInstance).get('/test').set('Authorization', 'Bearer foobar');
|
|
40
|
-
expect(response.status).to.be.equal(403);
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
it('Accepts requests with valid credentials', async () => {
|
|
44
|
-
const { clientId, clientSecret } = await ory.createOIDCClient();
|
|
45
|
-
|
|
46
|
-
const adminClient = new AdminClient({
|
|
47
|
-
url: 'http://localhost:3000',
|
|
48
|
-
auth: {
|
|
49
|
-
clientId,
|
|
50
|
-
clientSecret,
|
|
51
|
-
},
|
|
52
|
-
OAuth2URL: ory.OAuth2URL,
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
const token = await adminClient.getOidcToken();
|
|
56
|
-
|
|
57
|
-
const response = await supertest(http.expressInstance)
|
|
58
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
59
|
-
// @ts-ignore
|
|
60
|
-
.get('/test')
|
|
61
|
-
.set('Authorization', `Bearer ${token.access_token}`);
|
|
62
|
-
|
|
63
|
-
expect(response.status).to.be.equal(200);
|
|
64
|
-
});
|
|
65
|
-
});
|