unleash-server 4.17.0-beta.4 → 4.17.0-beta.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/lib/middleware/conditional-middleware.js +2 -3
- package/dist/lib/middleware/conditional-middleware.js.map +1 -1
- package/dist/test/e2e/api/admin/conditional-middleware.e2e.test.d.ts +1 -0
- package/dist/test/e2e/api/admin/conditional-middleware.e2e.test.js +59 -0
- package/dist/test/e2e/api/admin/conditional-middleware.e2e.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -6,13 +6,12 @@ const conditionalMiddleware = (condition, middleware) => {
|
|
|
6
6
|
const router = (0, express_1.Router)();
|
|
7
7
|
router.use((req, res, next) => {
|
|
8
8
|
if (condition()) {
|
|
9
|
-
next
|
|
9
|
+
middleware(req, res, next);
|
|
10
10
|
}
|
|
11
11
|
else {
|
|
12
|
-
|
|
12
|
+
next();
|
|
13
13
|
}
|
|
14
14
|
});
|
|
15
|
-
router.use(middleware);
|
|
16
15
|
return router;
|
|
17
16
|
};
|
|
18
17
|
exports.conditionalMiddleware = conditionalMiddleware;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-middleware.js","sourceRoot":"","sources":["../../../src/lib/middleware/conditional-middleware.ts"],"names":[],"mappings":";;;AAAA,qCAAiD;AAE1C,MAAM,qBAAqB,GAAG,CACjC,SAAwB,EACxB,UAA0B,EACZ,EAAE;IAChB,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IAExB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC1B,IAAI,SAAS,EAAE,EAAE;YACb,
|
|
1
|
+
{"version":3,"file":"conditional-middleware.js","sourceRoot":"","sources":["../../../src/lib/middleware/conditional-middleware.ts"],"names":[],"mappings":";;;AAAA,qCAAiD;AAE1C,MAAM,qBAAqB,GAAG,CACjC,SAAwB,EACxB,UAA0B,EACZ,EAAE;IAChB,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IAExB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC1B,IAAI,SAAS,EAAE,EAAE;YACb,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;SAC9B;aAAM;YACH,IAAI,EAAE,CAAC;SACV;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAfW,QAAA,qBAAqB,yBAehC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const express_1 = __importDefault(require("express"));
|
|
7
|
+
const conditional_middleware_1 = require("../../../../lib/middleware/conditional-middleware");
|
|
8
|
+
const supertest_1 = __importDefault(require("supertest"));
|
|
9
|
+
test('disabled middleware should not block paths that use the same path', async () => {
|
|
10
|
+
const app = (0, express_1.default)();
|
|
11
|
+
const path = '/api/admin/projects';
|
|
12
|
+
app.use(path, (0, conditional_middleware_1.conditionalMiddleware)(() => false, (req, res) => {
|
|
13
|
+
res.send({ suggestChanges: 'hello' });
|
|
14
|
+
}));
|
|
15
|
+
app.get(path, (req, res) => {
|
|
16
|
+
res.json({ projects: [] });
|
|
17
|
+
});
|
|
18
|
+
await (0, supertest_1.default)(app)
|
|
19
|
+
.get('/api/admin/projects')
|
|
20
|
+
.expect(200, { projects: [] });
|
|
21
|
+
});
|
|
22
|
+
test('should return 404 when path is not enabled', async () => {
|
|
23
|
+
const app = (0, express_1.default)();
|
|
24
|
+
const path = '/api/admin/projects';
|
|
25
|
+
app.use(`${path}/suggest-changes`, (0, conditional_middleware_1.conditionalMiddleware)(() => false, (req, res) => {
|
|
26
|
+
res.send({ suggestChanges: 'hello' });
|
|
27
|
+
}));
|
|
28
|
+
app.get(path, (req, res) => {
|
|
29
|
+
res.json({ projects: [] });
|
|
30
|
+
});
|
|
31
|
+
await (0, supertest_1.default)(app).get('/api/admin/projects/suggest-changes').expect(404);
|
|
32
|
+
});
|
|
33
|
+
test('should respect ordering of endpoints', async () => {
|
|
34
|
+
const app = (0, express_1.default)();
|
|
35
|
+
const path = '/api/admin/projects';
|
|
36
|
+
app.use(path, (0, conditional_middleware_1.conditionalMiddleware)(() => true, (req, res) => {
|
|
37
|
+
res.json({ name: 'Suggest changes' });
|
|
38
|
+
}));
|
|
39
|
+
app.get(path, (req, res) => {
|
|
40
|
+
res.json({ projects: [] });
|
|
41
|
+
});
|
|
42
|
+
await (0, supertest_1.default)(app)
|
|
43
|
+
.get('/api/admin/projects')
|
|
44
|
+
.expect(200, { name: 'Suggest changes' });
|
|
45
|
+
});
|
|
46
|
+
test('disabled middleware should not block paths that use the same basepath', async () => {
|
|
47
|
+
const app = (0, express_1.default)();
|
|
48
|
+
const path = '/api/admin/projects';
|
|
49
|
+
app.use(`${path}/suggest-changes`, (0, conditional_middleware_1.conditionalMiddleware)(() => false, (req, res) => {
|
|
50
|
+
res.json({ name: 'Suggest changes' });
|
|
51
|
+
}));
|
|
52
|
+
app.get(path, (req, res) => {
|
|
53
|
+
res.json({ projects: [] });
|
|
54
|
+
});
|
|
55
|
+
await (0, supertest_1.default)(app)
|
|
56
|
+
.get('/api/admin/projects')
|
|
57
|
+
.expect(200, { projects: [] });
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=conditional-middleware.e2e.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conditional-middleware.e2e.test.js","sourceRoot":"","sources":["../../../../../src/test/e2e/api/admin/conditional-middleware.e2e.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "unleash-server",
|
|
3
3
|
"description": "Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.",
|
|
4
|
-
"version": "4.17.0-beta.
|
|
4
|
+
"version": "4.17.0-beta.5",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"unleash",
|
|
7
7
|
"feature toggle",
|