Skip to content

Commit 5935fd1

Browse files
authored
e2e: add X-Simcore-User-Agent to requests (ITISFoundation#3392)
1 parent 3033106 commit 5935fd1

File tree

5 files changed

+44
-13
lines changed

5 files changed

+44
-13
lines changed

services/static-webserver/client/source/class/osparc/auth/Data.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,13 @@ qx.Class.define("osparc.auth.Data", {
8888
nullable: true,
8989
check: "Date",
9090
event: "changeExpirationDate"
91+
},
92+
93+
// used for adding "tester" info to the request's headers
94+
testerUserName: {
95+
init: null,
96+
nullable: true,
97+
check: "String"
9198
}
9299
},
93100

services/static-webserver/client/source/class/osparc/auth/Manager.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ qx.Class.define("osparc.auth.Manager", {
166166
};
167167
xhr.open("POST", url, true);
168168
xhr.setRequestHeader("Content-Type", "application/json");
169+
osparc.io.rest.Resource.setTesterUserNameHeader(xhr);
169170
xhr.send(JSON.stringify(params));
170171
},
171172

services/static-webserver/client/source/class/osparc/io/request/ApiRequest.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,6 @@ qx.Class.define("osparc.io.request.ApiRequest", {
3030
});
3131

3232
this.setRequestHeader("Content-Type", "application/json");
33+
osparc.io.rest.Resource.setTesterUserNameHeader(this);
3334
}
3435
});

services/static-webserver/client/source/class/osparc/io/rest/Resource.js

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,11 @@
2121
qx.Class.define("osparc.io.rest.Resource", {
2222
extend: qx.io.rest.Resource,
2323

24-
statics: {
25-
AUTHENTICATION: null,
26-
27-
setAutheticationHeader: function(usernameOrToken, password=null) {
28-
osparc.io.rest.Resource.AUTHENTICATION = new qx.io.request.authentication.Basic(usernameOrToken, password);
29-
}
30-
},
31-
3224
construct: function(description) {
3325
this.base(arguments, description);
3426

35-
this.configureRequest(function(request, action, params, data) {
36-
let headers = [{
27+
this.configureRequest(request => {
28+
const headers = [{
3729
key: "Accept",
3830
value: "application/json"
3931
}];
@@ -42,17 +34,32 @@ qx.Class.define("osparc.io.rest.Resource", {
4234
headers.concat(this.AUTHENTICATION.getAuthHeaders());
4335
}
4436

45-
headers.forEach(function(item, index, array) {
46-
request.setRequestHeader(item.key, item.value);
47-
});
37+
headers.forEach(item => request.setRequestHeader(item.key, item.value));
4838

4939
request.setRequestHeader("Content-Type", "application/json");
5040

5141
const productName = qx.core.Environment.get("product.name");
5242
request.setRequestHeader("X-Simcore-Products-Name", productName);
43+
44+
this.self().setTesterUserNameHeader(request);
5345
});
5446
},
5547

48+
statics: {
49+
AUTHENTICATION: null,
50+
51+
setAutheticationHeader: function(usernameOrToken, password=null) {
52+
osparc.io.rest.Resource.AUTHENTICATION = new qx.io.request.authentication.Basic(usernameOrToken, password);
53+
},
54+
55+
setTesterUserNameHeader: function(request) {
56+
const tester = osparc.auth.Data.getInstance().getTesterUserName();
57+
if (tester) {
58+
request.setRequestHeader("X-Simcore-User-Agent", tester);
59+
}
60+
}
61+
},
62+
5663
members: {
5764
includesRoute: function(route) {
5865
return Object.keys(this.__routes).includes(route);

tests/e2e/tutorials/tutorialBase.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ class TutorialBase {
4848
this.__browser = await startPuppe.getBrowser(this.__demo);
4949
this.__page = await startPuppe.getPage(this.__browser);
5050
this.__responsesQueue = new responses.ResponsesQueue(this.__page);
51+
5152
return this.__page;
5253
}
5354

@@ -70,6 +71,20 @@ class TutorialBase {
7071
// eslint-disable-next-line no-undef
7172
const commit = await this.__page.evaluate(() => qx.core.Environment.get("osparc.vcsRef"));
7273
console.log("commit", commit);
74+
75+
await this.__page.evaluate((user, newUser) => {
76+
let testerUserName = "";
77+
if (newUser) {
78+
testerUserName = "registered";
79+
}
80+
else if (user === null) {
81+
testerUserName = "anonymous";
82+
}
83+
else {
84+
testerUserName = user;
85+
}
86+
osparc.auth.Data.getInstance().setTesterUserName(testerUserName);
87+
}, this.__user, this.__newUser);
7388
}
7489

7590
async __printMe() {

0 commit comments

Comments
 (0)