Skip to content

Commit 1a3b174

Browse files
authored
simplify express sample test setup (#18)
1 parent 84e2b4c commit 1a3b174

File tree

5 files changed

+12
-31
lines changed

5 files changed

+12
-31
lines changed

ams-express-shopping/auth/authorize.js

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const { AuthorizationManagementService, IdentityServiceAuthProvider, TECHNICAL_USER_FLOW, PRINCIPAL_PROPAGATION_FLOW } = require("@sap/ams");
22
const { mapTechnicalUserApi, mapPrincipalPropagationApi } = require("./apis");
33

4+
/** @type {AuthorizationManagementService} */
45
let ams;
56
if (process.env.NODE_ENV === 'test') {
67
ams = AuthorizationManagementService.fromLocalDcn("./test/dcn", {
@@ -18,25 +19,15 @@ const authProvider = new IdentityServiceAuthProvider(ams)
1819
const amsMw = authProvider.getMiddleware();
1920
const authorize = amsMw.authorize();
2021

21-
if (process.env.DEBUG?.split(",").includes("ams")) {
22-
ams.on("authorizationCheck", event => {
23-
if (event.type === "checkPrivilege") {
24-
if (event.decision.isGranted()) {
25-
console.log(`Privilege '${event.action} ${event.resource}' for ${event.context.token.scimId} was granted based on input`, event.input);
26-
} else if(event.decision.isDenied()) {
27-
console.log(`Privilege '${event.action} ${event.resource}' for ${event.context.token.scimId} was denied based on input`, event.input);
28-
} else {
29-
console.log(`Privilege '${event.action} ${event.resource}' for ${event.context.token.scimId} was conditionally granted based on input`, event.input);
30-
}
31-
}
32-
});
33-
34-
ams.on("error", event => {
35-
if (event.type === "bundleRefreshError") {
22+
ams.on("error", event => {
23+
if (event.type === "bundleRefreshError") {
24+
if(ams.isReady()) {
3625
console.warn("AMS bundle refresh error:", event.error);
26+
} else {
27+
console.error("AMS initial bundle fetch error:", event.error);
3728
}
38-
});
39-
}
29+
}
30+
});
4031

4132
module.exports = {
4233
authorize,

ams-express-shopping/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"description": "",
55
"main": "index.js",
66
"scripts": {
7-
"jest": "NODE_ENV=test npx jest",
7+
"jest": "NODE_ENV=test AMS_STARTUP_TIMEOUT=3 npx jest",
88
"start": "node server.js",
99
"pretest": "npx compile-dcl -d auth/dcl -o test/dcn",
1010
"test": "npm run jest"

ams-express-shopping/server.js

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,10 @@ const healthCheck = (req, res) => {
1818
}
1919
};
2020

21-
let resolveServerReady; // only required to know before unit tests when the server is ready
22-
const whenServerReady = new Promise((resolve) => {
23-
resolveServerReady = resolve;
24-
});
25-
2621
const amsStartupCheck = async () => {
2722
try {
2823
await ams.whenReady(AMS_STARTUP_TIMEOUT);
2924
isReady = true;
30-
resolveServerReady();
3125
console.log('AMS has become ready.');
3226
} catch (e) {
3327
console.error('AMS did not become become ready in time:', e);
@@ -62,4 +56,4 @@ const server = app.listen(PORT, () => {
6256

6357
amsStartupCheck();
6458

65-
module.exports = { server, whenServerReady };
59+
module.exports = server;

ams-express-shopping/test/awaitTestBundlePdpReady.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const { ams } = require("../auth/authorize");
55
*/
66
module.exports = async() => {
77
try {
8-
await ams.isReady(5000);
8+
await ams.whenReady(process.env.AMS_STARTUP_TIMEOUT);
99
} catch(e) {
1010
console.error(e);
1111
process.exit(1);

ams-express-shopping/test/server.test.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
const request = require('supertest');
2-
const { server, whenServerReady } = require('../server');
2+
const server = require('../server');
33
const db = require('../db/db');
44

5-
beforeAll(async () => {
6-
await whenServerReady;
7-
});
8-
95
beforeEach(() => {
106
db.reset();
117
});

0 commit comments

Comments
 (0)