@sap_oss/wdio-qmate-service 2.12.2 → 2.13.1

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.
Files changed (75) hide show
  1. package/docs/doc.md +140 -7
  2. package/docs/index.md +1 -1
  3. package/docs/sections/bestPractices/authentication.md +2 -2
  4. package/docs/sections/bestPractices/dataHandling.md +1 -1
  5. package/docs/sections/contact.md +1 -1
  6. package/docs/sections/features/config.md +1 -1
  7. package/docs/sections/features/dataHandling.md +2 -2
  8. package/docs/sections/features/selectors.md +2 -2
  9. package/docs/sections/gettingStarted/config.md +1 -1
  10. package/docs/sections/gettingStarted/setup.md +2 -2
  11. package/docs/sections/support/bugReporting.md +4 -4
  12. package/docs/sections/support/troubleshooting.md +1 -1
  13. package/lib/index.js +5 -2
  14. package/lib/index.js.map +1 -1
  15. package/lib/reuse/index.js +2 -1
  16. package/lib/reuse/index.js.map +1 -1
  17. package/lib/reuse/modules/flp/userLocks.d.ts +3 -3
  18. package/lib/reuse/modules/flp/userLocks.js +5 -5
  19. package/lib/reuse/modules/flp/userLocks.js.map +1 -1
  20. package/lib/reuse/modules/util/Util.d.ts +2 -0
  21. package/lib/reuse/modules/util/Util.js +2 -0
  22. package/lib/reuse/modules/util/Util.js.map +1 -1
  23. package/lib/reuse/modules/util/userSettings.d.ts +27 -0
  24. package/lib/reuse/modules/util/userSettings.js +181 -0
  25. package/lib/reuse/modules/util/userSettings.js.map +1 -0
  26. package/lib/scripts/hooks/onComplete.d.ts +1 -1
  27. package/lib/scripts/hooks/onComplete.js +14 -1
  28. package/lib/scripts/hooks/onComplete.js.map +1 -1
  29. package/lib/scripts/hooks/onPrepare.d.ts +1 -1
  30. package/lib/scripts/hooks/onPrepare.js +33 -2
  31. package/lib/scripts/hooks/onPrepare.js.map +1 -1
  32. package/lib/scripts/stats/createUsage.d.ts +11 -0
  33. package/lib/scripts/stats/createUsage.js +33 -0
  34. package/lib/scripts/stats/createUsage.js.map +1 -0
  35. package/lib/scripts/stats/getConfigurationInformation.d.ts +1 -0
  36. package/lib/scripts/stats/getConfigurationInformation.js +57 -0
  37. package/lib/scripts/stats/getConfigurationInformation.js.map +1 -0
  38. package/lib/scripts/stats/getEnvironment.d.ts +1 -0
  39. package/lib/scripts/stats/getEnvironment.js +8 -0
  40. package/lib/scripts/stats/getEnvironment.js.map +1 -0
  41. package/lib/scripts/stats/getOperatingSystem.d.ts +3 -0
  42. package/lib/scripts/stats/getOperatingSystem.js +39 -0
  43. package/lib/scripts/stats/getOperatingSystem.js.map +1 -0
  44. package/lib/scripts/stats/getRepositoryInformation.d.ts +1 -0
  45. package/lib/scripts/stats/getRepositoryInformation.js +49 -0
  46. package/lib/scripts/stats/getRepositoryInformation.js.map +1 -0
  47. package/lib/scripts/stats/getUserId.d.ts +1 -0
  48. package/lib/scripts/stats/getUserId.js +75 -0
  49. package/lib/scripts/stats/getUserId.js.map +1 -0
  50. package/lib/scripts/stats/getVersion.d.ts +1 -0
  51. package/lib/scripts/stats/getVersion.js +7 -0
  52. package/lib/scripts/stats/getVersion.js.map +1 -0
  53. package/lib/scripts/stats/stats.d.ts +2 -0
  54. package/lib/scripts/stats/stats.js +41 -0
  55. package/lib/scripts/stats/stats.js.map +1 -0
  56. package/lib/scripts/stats/updateUsage.d.ts +3 -0
  57. package/lib/scripts/stats/updateUsage.js +28 -0
  58. package/lib/scripts/stats/updateUsage.js.map +1 -0
  59. package/package.json +9 -4
  60. package/test/reuse/flp/userLocks/data/data.json +3 -3
  61. package/test/reuse/flp/userLocks/deleteExistingLockEntries.spec.js +18 -0
  62. package/test/reuse/flp/userLocks/getNumberOfLockEntries.spec.js +1 -0
  63. package/test/reuse/util/userSettings/data/data.json +6 -0
  64. package/test/reuse/util/userSettings/getDateFormatFromUserSettings.spec.js +21 -0
  65. package/test/reuse/util/userSettings/getLanguageFromUserSettings.spec.js +15 -0
  66. package/test/reuse/util/userSettings/getTimeFormatFromUserSettings.spec.js +17 -0
  67. package/test/reuse/util/userSettings/getTimeZoneFromUserSettings.spec.js +16 -0
  68. package/test/reuse/util/userSettings/setDateFormatFromUserSettings.spec.js +33 -0
  69. package/test/reuse/util/userSettings/setLanguageFromUserSettings.spec.js +16 -0
  70. package/test/reuse/util/userSettings/setNumberFormatFromUserSettings.spec.js +16 -0
  71. package/test/reuse/util/userSettings/setS4UserSettings.spec.js +37 -0
  72. package/test/reuse/util/userSettings/setTimeFormatFromUserSettings.spec.js +17 -0
  73. package/test/reuse/util/userSettings/setTimeZoneFromUserSettings.spec.js +16 -0
  74. package/test/reuse/util/userSettings/test.userSettings.apply.conf.js +16 -0
  75. package/test/reuse/util/userSettings/test.userSettings.conf.js +24 -0
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getVersion = getVersion;
4
+ function getVersion() {
5
+ return process.env.QMATE_VERSION;
6
+ }
7
+ //# sourceMappingURL=getVersion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getVersion.js","sourceRoot":"","sources":["../../../src/scripts/stats/getVersion.ts"],"names":[],"mappings":";;AAAA,gCAEC;AAFD,SAAgB,UAAU;IACxB,OAAO,OAAO,CAAC,GAAG,CAAC,aAAuB,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function sendUsageRequests(specCounter: number): Promise<string | null>;
2
+ export declare function updateUsageRequests(usageId: string, result: string): Promise<void>;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sendUsageRequests = sendUsageRequests;
4
+ exports.updateUsageRequests = updateUsageRequests;
5
+ const createUsage_1 = require("./createUsage");
6
+ const getConfigurationInformation_1 = require("./getConfigurationInformation");
7
+ const getEnvironment_1 = require("./getEnvironment");
8
+ const getOperatingSystem_1 = require("./getOperatingSystem");
9
+ const getRepositoryInformation_1 = require("./getRepositoryInformation");
10
+ const getUserId_1 = require("./getUserId");
11
+ const getVersion_1 = require("./getVersion");
12
+ const updateUsage_1 = require("./updateUsage");
13
+ async function sendUsageRequests(specCounter) {
14
+ const user = await (0, getUserId_1.getUserId)();
15
+ if (user === null) {
16
+ return null;
17
+ }
18
+ const usageData = {
19
+ "userId": user,
20
+ "version": (0, getVersion_1.getVersion)(),
21
+ "osType": (0, getOperatingSystem_1.getOperatingSystemType)(),
22
+ "osRelease": (0, getOperatingSystem_1.getOperatingSystemRelease)(),
23
+ "osVersion": (0, getOperatingSystem_1.getOperatingSystemVersion)(),
24
+ "environment": (0, getEnvironment_1.getEnvironmentVariables)(),
25
+ "configHash": (0, getConfigurationInformation_1.getConfigurationHash)(),
26
+ "repoHash": (0, getRepositoryInformation_1.getCwdGitRemoteUrlHash)(),
27
+ "specCounter": specCounter,
28
+ };
29
+ const usageId = await (0, createUsage_1.createUsage)(usageData);
30
+ if (usageId === null) {
31
+ return null;
32
+ }
33
+ return usageId;
34
+ }
35
+ async function updateUsageRequests(usageId, result) {
36
+ const usageData = {
37
+ result
38
+ };
39
+ void (0, updateUsage_1.updateQmateUsage)(usageId, usageData);
40
+ }
41
+ //# sourceMappingURL=stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/scripts/stats/stats.ts"],"names":[],"mappings":";;AASA,8CAuBC;AAED,kDAMC;AAxCD,+CAA4C;AAC5C,+EAAqE;AACrE,qDAA2D;AAC3D,6DAAoH;AACpH,yEAAoE;AACpE,2CAAwC;AACxC,6CAA0C;AAC1C,+CAAiD;AAE1C,KAAK,UAAU,iBAAiB,CAAC,WAAmB;IACzD,MAAM,IAAI,GAAG,MAAM,IAAA,qBAAS,GAAE,CAAC;IAC/B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG;QAChB,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,IAAA,uBAAU,GAAE;QACvB,QAAQ,EAAE,IAAA,2CAAsB,GAAE;QAClC,WAAW,EAAE,IAAA,8CAAyB,GAAE;QACxC,WAAW,EAAE,IAAA,8CAAyB,GAAE;QACxC,aAAa,EAAE,IAAA,wCAAuB,GAAE;QACxC,YAAY,EAAE,IAAA,kDAAoB,GAAE;QACpC,UAAU,EAAE,IAAA,iDAAsB,GAAE;QACpC,aAAa,EAAE,WAAW;KAC3B,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,IAAA,yBAAW,EAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAC,OAAe,EAAE,MAAc;IACvE,MAAM,SAAS,GAAG;QAChB,MAAM;KACP,CAAA;IAED,KAAK,IAAA,8BAAgB,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function updateQmateUsage(id: string, usageData: {
2
+ result: string;
3
+ }): Promise<void>;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateQmateUsage = updateQmateUsage;
4
+ const undici_1 = require("undici");
5
+ async function updateQmateUsage(id, usageData) {
6
+ const urlUsage = `https://stats.qmate.proc.only.sap/api/usage/qmate/${id}`;
7
+ try {
8
+ const response = await (0, undici_1.fetch)(urlUsage, {
9
+ method: "PUT",
10
+ headers: {
11
+ "Content-Type": "application/json",
12
+ },
13
+ body: JSON.stringify(usageData),
14
+ dispatcher: new undici_1.Agent({
15
+ connect: {
16
+ rejectUnauthorized: false,
17
+ }
18
+ })
19
+ });
20
+ if (!response.ok) {
21
+ // Intentionally ignore
22
+ }
23
+ }
24
+ catch (error) {
25
+ // Intentionally ignore
26
+ }
27
+ }
28
+ //# sourceMappingURL=updateUsage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateUsage.js","sourceRoot":"","sources":["../../../src/scripts/stats/updateUsage.ts"],"names":[],"mappings":";;AAEA,4CAsBC;AAxBD,mCAAsC;AAE/B,KAAK,UAAU,gBAAgB,CAAC,EAAU,EAAE,SAA6B;IAC9E,MAAM,QAAQ,GAAG,qDAAqD,EAAE,EAAE,CAAC;IAC3E,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAA,cAAK,EAAC,QAAQ,EAAE;YACrC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YAC/B,UAAU,EAAE,IAAI,cAAK,CAAC;gBACpB,OAAO,EAAE;oBACP,kBAAkB,EAAE,KAAK;iBAC1B;aACF,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,uBAAuB;QACzB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,uBAAuB;IACzB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sap_oss/wdio-qmate-service",
3
- "version": "2.12.2",
3
+ "version": "2.13.1",
4
4
  "author": "SAP SE",
5
5
  "types": "./@types/index.d.ts",
6
6
  "main": "./lib/index.js",
@@ -135,23 +135,28 @@
135
135
  "axios": "^1.7.7",
136
136
  "deepmerge": "^4.2.2",
137
137
  "fs-extra": "^10.0.0",
138
+ "node-localstorage": "^3.0.5",
138
139
  "path": "^0.12.7",
139
140
  "pdf-parse": "^1.1.1",
140
141
  "query-string": "^7.1.0",
142
+ "sha.js": "^2.4.11",
141
143
  "supertest": "^7.0.0",
144
+ "undici": "^7.1.0",
142
145
  "xlsx": "^0.18.5",
143
146
  "xml2js": "^0.6.0",
144
147
  "yargs": "^17.1.1"
145
148
  },
146
149
  "devDependencies": {
147
150
  "@types/fs-extra": "^11.0.1",
151
+ "@types/node-localstorage": "^1.3.3",
148
152
  "@types/pdf-parse": "^1.1.1",
153
+ "@types/sha.js": "^2.4.4",
149
154
  "@types/xml2js": "^0.4.11",
155
+ "@wdio/appium-service": "^8.39.1",
150
156
  "@wdio/cli": "^8.29.7",
151
157
  "@wdio/local-runner": "^8.29.7",
152
158
  "@wdio/mocha-framework": "^8.29.3",
153
159
  "@wdio/sauce-service": "^8.27.0",
154
- "@wdio/appium-service": "^8.39.1",
155
160
  "@wdio/shared-store-service": "^8.29.7",
156
161
  "@wdio/spec-reporter": "^8.29.7",
157
162
  "@wdio/static-server-service": "^8.29.1",
@@ -159,7 +164,6 @@
159
164
  "appium": "2.12.0",
160
165
  "appium-uiautomator2-driver": "^3.7.4",
161
166
  "appium-xcuitest-driver": "^7.24.3",
162
- "wdio-chromedriver-service": "^8.0.0",
163
167
  "chai": "^4.3.4",
164
168
  "chromedriver": "^120.0.1",
165
169
  "concurrently": "^7.6.0",
@@ -173,7 +177,8 @@
173
177
  "prettier": "^2.8.1",
174
178
  "rimraf": "^3.0.2",
175
179
  "ts-node": "^10.9.2",
176
- "typescript": "^5.3.3"
180
+ "typescript": "^5.3.3",
181
+ "wdio-chromedriver-service": "^8.0.0"
177
182
  },
178
183
  "overrides": {
179
184
  "got": "^11.8.5"
@@ -1,6 +1,6 @@
1
1
  {
2
- "baseUrl": "c1bbc2b33bcca4a0ca6ed541e91b746baf0783d855596075e604d703d040679027cfa25e32a9f5b37c3854ef6722e0f2a0f69d6c2b9357e085f2162111fd76a243a156cb9c81533f1478c2b0530787424dc2a63cd54d652b52a16f2585183f184de650b3eea927b8343be0c2d139baa26f69ea962d14a828958c47f47b570d1654d88263bc1cc95f9a417400802253303fb6c3d856f67517e51ffdd9e2051ca74e59e496799c72a8ec7bf4a0a310ee43f97ce598e7328e7310f5f1e1385aa358fd69d42af1c67bcc13d8be3a6f55b17e2cd4bc755107a0e2e2bd29e817637f0a2c7c70e772612c54b5821540fc395a734271f8ccb6b1c70cf4896b7a1622dbcb54e3eca3d7d89e35fe39b2c3dcad60759d1025744a3e9ba00140db98c29d38ffc8b1251311349e09c76a370071bcfa325cd1c6748a00c99cb5d600113d5151d174609cc314a9775a444937ff55b63112ce9f09714bdab3e6bcb35c6e9682404f",
3
- "systemUrl": "9693baf8f7eb9c12c938eaad6e539be5e448e8a76f6215d2fc8177e1a71f0f03cab56efa90a82227b1beece8e020a1f59d68ebd0436dc3b3519bdec41c40d2f06ba22bb7a588ac6cfe7ff9d6cfc475e67a4dcb0f2738fc7d97c54233ed347598b4f3e8348ba7c3759fe78fe743887d88d7fd745893afc087d2da751f1694a946020ec393aa15549a7f1aedeb046f459f68a356322c9b473dd4fb4c01341b2e3dd49a2d35ec0bb6d5325d9664365610acf35cef5ee4e8efe65893ac7bd994c66c214f7d8b93c9fc251b82353f1c7b7416d779c11f89eb03aea79e5f16d4dee9122a7591d0a63f33c15847e5fdd432982de692835167f798702e279261dd6d89d3b0dad071ff6101e0fa8b2607f9d6c48e2b0a3f67af63b3075e54030cef20d1e8dc2ea657087f294a6df7394d0c57d9d61f4152d41a0d01b2449edb2dcdb4954b5dcb6ef695e435937b0ddf0485baf5d9ce48ced177a351f957fcb780ba3b783e",
4
- "username": "b03e3e5d34425372952a9a0e55365e642738650748ed145fd92e89c4aee4fcd7300c13c388bfc8522a30fbe2b32b410ddef556e05803f5a3a7d9754e01c0175ad8a75f2b603d5c7fccc09c0a909be587ab5caad09602849a88614d7067805d89360786dafaa4f40ada36789cc77c699426e3bf0a3976b23a9603011d8ec88b60943ef919ed6784433e4be4a862e0d66bf0e70a0b6ffa5fb08bcf0a2af2977ff75c7b259de579fc91e1d05f830581a4f37640fd4a6fd62285e8e7ff0d558c072fd7a2307a783a8a5752b80bb07d52908a8261648f69dca61b2d5037f286caa32a57d82e92eeb78753a50218364c88d9038babcbe064916bcd8375b8c170535c4093c74e440ba821c2a5dc37cc2e9cbfb6e36a7b6c22bedacd271598f4a42f2681e3bbdf5e26bb6c38e695ee361c2ee5434c1fe5c6738896050126aca87a64a209ad81a3eabf3af0fb00d3ceec1795b330935e7c22eb0655c4df167450421bcc2c",
2
+ "baseUrl": "ff15b4297a13063b1ac3a39febf8604cbda1b45ca633f4486821a37600af9e42bdaf1f165d6e13c75935dfad436e02801e32ca497c61dc7543c7f2d1e491795bdf227aaca4433ff11fbc52ea9b3333212c87f8f860df92d9c14195c41e6aeaa2eff3a7d900d2ae4a0e304c419a0fa5ede0cf046f9b938e8ce76b2432432b9a099601e9b934919b923ba54680b716106d4eac856f4f5dabd4cc186a03463b168f93dfa559829b9e9b5d6326bea1249254340ed054a14ab311dc03d2817892dd7d4c0a226a5a615f6ce9637a485c18ccf256f619fb524923e21fbcb55e004ce336d99f29a393846dc35414083104b43f150d3c2695f17ce29a9b6f7e7fe2299f40adc89a21e920de02e2df31730f5b8facfa2ec9449f31898bb343afd104001747800184c4cce22a06f06ed3bab2a0db3d8ad59dc330b520427e78416ae340f2c375e62b7c8006e0b49c627e951b4dea51de059eeabc7f11b39c2cb3f12cdf0299",
3
+ "systemUrl": "cca476c6015846bf5af4dd3d2d56bf3cb2778e25ced298129f3c975221bd9f461e4d2648e3571ed2d5bfc58014654f09d4c04146918c7edbbbe10b481edab8182a7b012bcf90ef6d52465c15be16d82bef521211e3166226fde522e64e0fd9a802261e51303bcebb3913740862a036a2d88620576a285b025c68a67607dd07917ac6055855d34427033cf525674ea44a1b66a3c9ea861b4a36962ff74264d2f3d1e34bdb5bb2e20c00c06aa20abdcb9b6170d19c52a384c1fa36fc8a3ca81f95f55131423ce64abf51d392c5546fac41925034c6881cc779704edd191978b10fddcb5151c4000c1ecdc0c569b166296d94f6ce13567a4f4e4747c474765c44cdc4224a039300539fe5689b872e2a78b93a44ffaba8fbd3865a9d83087fd527ebfef645fac3d497795435bbbec22b4f9121faa8d964a034916bdc014e1ec49c98c13d6843288a0f374a3c164df9f0b625d5c7032efe52da5f9949004dbefb2e5e",
4
+ "username": "cd5d64bf00a47ee406c8ef22e03a8f2eaae240da55484227f9b23ae679399c13ad284bb4b6810fc0d6d50d76b0564e5bea49489a5089a495d96de0fa5f57c9112187f15dcb583c2f22d0e25727be2e6ff07cde6d65daeb0ec9ce5411642380ad4f3f46f1e30fdc5488e2cec7862224dbebc809880af96fb434865988302b7b8d96137cf446eedbeac8b26145d2223707b46665147d72fce9be86434873f13587933544f1546be8905c5d453e516f35757c2d98b582d35762e16245c407f071854d26e75498ddfbe0f896cfd07c9d526f89de288d99181ef8336cfd5c9e936d8808f422cbf6a7b705851436b367fed47c58a28adc00f2448f6b8adf44d7737b5762cf1ce41eb9a8c5310b5746c07573ea1aaa0af54f496ba6fc2158dff614e92eeeef57c22d040c97664e54d119fc2e6d106ebcc754cff4d4b885c32c273f68d700822f5d573a1ffd2cb3465296074dbf4b0b46171a69bdd8f3427d285f93f8d2",
5
5
  "password": "f29d3de7092b06610ea12aa60513a9bc5178c69f67286c4377414ef34b0bdf8727aa2787807cf4678376ccdb2d51715ea34e88450544a510137e3eb552fab98f7bdbc302e9b3c30a25744d4719246181bb63eeac931a1807da43f587baf309a097c9af216639796c97ed4068332af4f33594eea8eba02c5eec31a852167b7ab0eadee460b4534d51c5278b81e5cab4fe5f67ffddeb1070f40d2b0b521e4a9acf30fc408899ff08d22d53c2fc67ca92bd94ae2f9d193240a03f97bb197bed107e9e591d48d8830845794f9bd0016e1ae065b42a3830134ed9241e3cb37f8c7e5d5d76fa8df9cb973eb968ce945db5de10c0c8bb004e8504a6e0e4554f58350add6da6d8efd1bdb55d12bbcbe676fa04170ac3e2ad831c97f37b6251ce7bbcbb10a7f2212d599875f61566833ec3e03a9f58dff2463c326202887302dc71f3e09b73cd3eaf7bd07977abff0962ea4d7bd890cc9dadbf5240bedc2c3e1802156504"
6
6
  }
@@ -7,13 +7,31 @@ describe("userLocks", function () {
7
7
 
8
8
  it("Preparation: Set systemUrl ", async function () {
9
9
  browser.config.params.systemUrl = util.data.decrypt(data.systemUrl);
10
+ browser.config.baseUrl = util.data.decrypt(data.baseUrl);
10
11
  user = util.data.decrypt(data.username);
11
12
  pw = util.data.decrypt(data.password);
12
13
  });
13
14
 
15
+ it("Preparation: Navigate to application", async function () {
16
+ await ui5.navigation.navigateToApplication("ForeignExchangeFixingReference-createFXFixingReference");
17
+ });
18
+
19
+ it("Preparation: Login", async function () {
20
+ await ui5.session.login(user, pw);
21
+ });
22
+
23
+ it("Preparation: Switch to iframe", async function () {
24
+ await util.browser.switchToIframe("iframe[id='application-ForeignExchangeFixingReference-createFXFixingReference-iframe']");
25
+ });
26
+
27
+ it("Preparation: Click 'New Entry'", async function () {
28
+ await nonUi5.userInteraction.click("div[id='M0:48::btn[5]']");
29
+ });
30
+
14
31
  it("Execution & Verification: delete existing locks", async function () {
15
32
  await flp.userLocks.deleteExistingLockEntries(user, pw);
16
33
  });
34
+
17
35
  });
18
36
 
19
37
  });
@@ -8,6 +8,7 @@ describe("userLocks", function () {
8
8
 
9
9
  it("Preparation: Set systemUrl ", async function () {
10
10
  browser.config.params.systemUrl = util.data.decrypt(data.systemUrl);
11
+ browser.config.baseUrl = util.data.decrypt(data.baseUrl);
11
12
  user = util.data.decrypt(data.username);
12
13
  pw = util.data.decrypt(data.password);
13
14
  });
@@ -0,0 +1,6 @@
1
+ {
2
+ "baseUrl": "2ce343d5118887f39b71fe56b87046fc65f3030054a46e36aac4495a08e67249bfce49360fc998b3690191fa98e4d6f8c04d54986fb51bb976aea0322918d18d6a52250865f30bd284c98188692bbc8eb4e218409e2d7e9b54c58334642b8f97df100e9d03afad2045d85b05b58df5382da68e82fc29005ae1842ecf0ba4baeeedbf0ab5206d461e3c2aaa91c1c3906be29346f7c898edd9aa739d857c1f0be520975c24c964ddf7557489fe920a10d1baaff81dc5f2eb4ebbb3d95b5a6f1748216f16ef1248e45c229217114bbfd4b5ca4e1595e4e2fcb54a41118c6ad0eaf837aa1564ac73d781e25177699a4b5f6aa4560b4160264264906f99df8b02de5aafae2d43bccfe0f5aa1b8aa3fafeeec7770c73dcd6d4ad0a893ed06a0ca0076ebbc6b39ba2d3d1fc277dcbd03457b1ae51d181e4a4e4a99e60d0eb643a887e45263f8671b80375b03f74c1dc2c426ffca679c9cac9bee21691d8ff9ea4a7e34d",
3
+ "systemUrl": "817bac533d84867cf08db1aa05d763453bad031d3e6ba5f674452da8ed1c7a525085003a481053a59e7b382f0c71461f641beabf6043e4fb3a76aabde151bdbf0ed76f12c8512bba93c263315b7b23a1a986a99cbc727a24124faed74445fe48759aea0256d9df9839c409872cbc41889c5f3d9955560af97088221aac7bbbd4df3899945cdc8eccd6389eb77dd6e4d7eec0a91fb3389ced2077fb24118a0b00337ef7e6f992048cb5f9bfc3c5af8bf14e3b278decc1663c3109086e0db1f736e3abc3235b5929f3df19fe605aea3e8239b842f98e66095c9c3ef975aa9f9c0cae77beee7b6c8f5bc37e8a32f06ada9ba0202262c525f33354cbde790c98b6195e157431b52f85e380232c449c46753b9a964d399d68a27a6d775918092b61ead6cb743207219d3ae61964d2d7c9ebeb870f2e69e1c613bfa083bd954b556b6a07f7bcc2db78ada63457f4f376e60f17fa2a4c3548a435e901260b1a7ca7bb93",
4
+ "username": "2ab173a889f752d3a42db739f2dd2cd179e72d747550b028db67f774aa8530e3ea3a95e582446015634449be9ab658098b9048401833d69a998be483fdaa7676214a21af6fbbe4f4273207b2a39f4efec5998266b1b4f45b1423aa7133fc31dc56041ba4049c278ec3fddbed766b3f0dc114fb1a9cef2058aebb3c4b9d91200a2d9531dc93bae58514f233f0e2f49f5b64cbb78d6035053a1f7353c80cfe151fed90f6e6300568a32a3e3226324a5a20e42492e5fbc42c1a9c6c8c136d4c91be327f939bed973d5991abbbd98c509c232028bcaf0a40b9a8c805ae66a48fd899ef919b92cad8b094c9c8f0aac44222a4bc973964958ead8ec7252c45ffcdaca0aa44b81580af603f6e3c3ee61943dec6de61f32ac5a3c3d89c85d16fb108caf85cd2967f6553418f520f9c3eabbb28907535d1ccb8cc205f934473eb64259d12385bb44b51dcf146d0f8718eb0379610895bd27c718a1be046a5c5f12e596bd2",
5
+ "password": "f29d3de7092b06610ea12aa60513a9bc5178c69f67286c4377414ef34b0bdf8727aa2787807cf4678376ccdb2d51715ea34e88450544a510137e3eb552fab98f7bdbc302e9b3c30a25744d4719246181bb63eeac931a1807da43f587baf309a097c9af216639796c97ed4068332af4f33594eea8eba02c5eec31a852167b7ab0eadee460b4534d51c5278b81e5cab4fe5f67ffddeb1070f40d2b0b521e4a9acf30fc408899ff08d22d53c2fc67ca92bd94ae2f9d193240a03f97bb197bed107e9e591d48d8830845794f9bd0016e1ae065b42a3830134ed9241e3cb37f8c7e5d5d76fa8df9cb973eb968ce945db5de10c0c8bb004e8504a6e0e4554f58350add6da6d8efd1bdb55d12bbcbe676fa04170ac3e2ad831c97f37b6251ce7bbcbb10a7f2212d599875f61566833ec3e03a9f58dff2463c326202887302dc71f3e09b73cd3eaf7bd07977abff0962ea4d7bd890cc9dadbf5240bedc2c3e1802156504"
6
+ }
@@ -0,0 +1,21 @@
1
+ const data = require("./data/data.json");
2
+
3
+ describe("userSettings", function () {
4
+ const DATE_FORMAT_LENGTH = 10;
5
+
6
+ describe("getDateFormatFromUserSettings.spec - passing date format", function () {
7
+
8
+ it("Preparation: Set systemUrl ", async function () {
9
+ browser.config.params.systemUrl = util.data.decrypt(data.systemUrl);
10
+ });
11
+
12
+ it("Execution & Verification: Set User Date", async function () {
13
+ const userDateFormat = await util.userSettings.getDateFormatFromUserSettings(util.data.decrypt(data.username), util.data.decrypt(data.password));
14
+ const date = await common.date.getToday("yyyy/mm/dd");
15
+ const userDate = await common.date.getToday(userDateFormat);
16
+ //Ensure returned date is a valid date
17
+ common.assertion.expectEqual(new Date(date), new Date(userDate));
18
+ });
19
+ });
20
+
21
+ });
@@ -0,0 +1,15 @@
1
+ const data = require("./data/data.json");
2
+
3
+ describe("userSettings", function () {
4
+ describe("getLanguageFromUserSettings.spec", function () {
5
+
6
+ it("Preparation: Set systemUrl ", async function () {
7
+ browser.config.params.systemUrl = util.data.decrypt(data.systemUrl);
8
+ });
9
+
10
+ it("Execution & Verification", async function () {
11
+ const userLanguage = await util.userSettings.getLanguageFromUserSettings(util.data.decrypt(data.username), util.data.decrypt(data.password));
12
+ common.assertion.expectEqual(userLanguage.length, 2);
13
+ });
14
+ });
15
+ });
@@ -0,0 +1,17 @@
1
+ const data = require("./data/data.json");
2
+
3
+
4
+ describe("userSettings", function () {
5
+ describe("getTimeFormatFromUserSettings.spec", function () {
6
+
7
+ it("Preparation: Set systemUrl ", async function () {
8
+ browser.config.params.systemUrl = util.data.decrypt(data.systemUrl);
9
+ });
10
+
11
+ it("Execution", async function () {
12
+ const userTimeFormat = await util.userSettings.getTimeFormatFromUserSettings(util.data.decrypt(data.username), util.data.decrypt(data.password));
13
+ common.assertion.expectDefined(userTimeFormat); //12 Hour Format (Example: 12:05:10 PM)
14
+ });
15
+
16
+ });
17
+ });
@@ -0,0 +1,16 @@
1
+ const data = require("./data/data.json");
2
+
3
+ describe("userSettings", function () {
4
+ describe("getTimeZoneFromUserSettings.spec", function () {
5
+
6
+ it("Preparation: Set systemUrl ", async function () {
7
+ browser.config.params.systemUrl = util.data.decrypt(data.systemUrl);
8
+ });
9
+
10
+ it("Execution", async function () {
11
+ const userTimeZone = await util.userSettings.getTimeZoneFromUserSettings(util.data.decrypt(data.username), util.data.decrypt(data.password));
12
+ common.assertion.expectDefined(userTimeZone); //Europe, Berlin was set.
13
+ });
14
+
15
+ });
16
+ });
@@ -0,0 +1,33 @@
1
+ const data = require("./data/data.json");
2
+
3
+ describe("userSettings", function () {
4
+ describe("setDateFormatFromUserSettings.spec - passing date format", function () {
5
+
6
+ it("Preparation: Set systemUrl ", async function () {
7
+ browser.config.params.systemUrl = util.data.decrypt(data.systemUrl);
8
+ });
9
+
10
+ it("Execution & Verification: Set User Date", async function () {
11
+ await util.userSettings.setDateFormatFromUserSettings(util.data.decrypt(data.username), util.data.decrypt(data.password));
12
+ const date = await common.date.getToday("yyyy/mm/dd");
13
+ const userDate = await common.date.getToday(process.env.USER_SETTINGS_DATE_FORMAT);
14
+ //Ensure returned date is a valid date
15
+ common.assertion.expectEqual(new Date(date), new Date(userDate));
16
+ });
17
+ });
18
+
19
+ describe("setDateFormatFromUserSettings.spec - do not pass format, defaulted env(process.env.USER_SETTINGS_DATE_FORMAT) is taken", function () {
20
+ it("Preparation: Set systemUrl ", async function () {
21
+ browser.config.params.systemUrl = util.data.decrypt(data.systemUrl);
22
+ });
23
+
24
+ it("Execution & Verification ", async function () {
25
+ await util.userSettings.setDateFormatFromUserSettings(util.data.decrypt(data.username), util.data.decrypt(data.password));
26
+ const date = await common.date.getToday("yyyy/mm/dd");
27
+ const userDate = await common.date.getToday();
28
+ //Ensure returned date is a valid date
29
+ common.assertion.expectEqual(new Date(date), new Date(userDate));
30
+ });
31
+ });
32
+
33
+ });
@@ -0,0 +1,16 @@
1
+ const data = require("./data/data.json");
2
+
3
+ describe("userSettings", function () {
4
+ describe("setLanguageFromUserSettings.spec", function () {
5
+
6
+ it("Preparation: Set systemUrl ", async function () {
7
+ browser.config.params.systemUrl = util.data.decrypt(data.systemUrl);
8
+ });
9
+
10
+ it("Execution & Verification", async function () {
11
+ await util.userSettings.setLanguageFromUserSettings(util.data.decrypt(data.username), util.data.decrypt(data.password));
12
+ common.assertion.expectEqual(process.env.USER_SETTINGS_LANG_KEY.length, 2); //Output: en
13
+ });
14
+ });
15
+
16
+ });
@@ -0,0 +1,16 @@
1
+ const data = require("./data/data.json");
2
+
3
+
4
+ describe("userSettings", function () {
5
+ describe("setNumberFormatFromUserSettings.spec", function () {
6
+
7
+ it("Preparation: Set systemUrl ", async function () {
8
+ browser.config.params.systemUrl = util.data.decrypt(data.systemUrl);
9
+ });
10
+
11
+ it("Execution", async function () {
12
+ await util.userSettings.setNumberFormatFromUserSettings(util.data.decrypt(data.username), util.data.decrypt(data.password));
13
+ common.assertion.expectDefined(process.env.USER_SETTINGS_NUMBER_FORMAT); //Output: 1,234,567.89
14
+ });
15
+ });
16
+ });
@@ -0,0 +1,37 @@
1
+ const data = require("./data/data.json");
2
+
3
+ describe("userSettings", function () {
4
+ describe("setS4UserSettings.spec - apply all s4 user settings", function () {
5
+
6
+ it("Preparation: Set systemUrl ", async function () {
7
+ browser.config.params.systemUrl = util.data.decrypt(data.systemUrl);
8
+ });
9
+
10
+ it("Execution & Verification: Set User Date", async function () {
11
+ await util.userSettings.setS4UserSettings(util.data.decrypt(data.username), util.data.decrypt(data.password));
12
+ common.assertion.expectDefined(process.env.USER_SETTINGS_NUMBER_FORMAT);
13
+ common.assertion.expectDefined(process.env.USER_SETTINGS_TIME_ZONE);
14
+ common.assertion.expectDefined(process.env.USER_SETTINGS_TIME_FORMAT);
15
+ common.assertion.expectDefined(process.env.USER_SETTINGS_DATE_FORMAT);
16
+ common.assertion.expectDefined(process.env.USER_SETTINGS_LANG_KEY);
17
+ });
18
+
19
+ describe("setS4UserSettings.spec - apply all s4 user settings via config<->login", function () {
20
+ it("Preparation: Set systemUrl and baseUrl ", async function () {
21
+ browser.config.params.systemUrl = util.data.decrypt(data.systemUrl);
22
+ browser.config.baseUrl = util.data.decrypt(data.baseUrl);
23
+ });
24
+
25
+ it("Execution & Verification", async function () {
26
+ await ui5.navigation.navigateToApplication("BusinessUser-maintain");
27
+ await ui5.session.login(util.data.decrypt(data.username), util.data.decrypt(data.password));
28
+ common.assertion.expectDefined(process.env.USER_SETTINGS_NUMBER_FORMAT);
29
+ common.assertion.expectDefined(process.env.USER_SETTINGS_TIME_ZONE);
30
+ common.assertion.expectDefined(process.env.USER_SETTINGS_TIME_FORMAT);
31
+ common.assertion.expectDefined(process.env.USER_SETTINGS_DATE_FORMAT);
32
+ common.assertion.expectDefined(process.env.USER_SETTINGS_LANG_KEY);
33
+ });
34
+ });
35
+
36
+ });
37
+ });
@@ -0,0 +1,17 @@
1
+ const data = require("./data/data.json");
2
+
3
+
4
+ describe("userSettings", function () {
5
+ describe("setTimeFormatFromUserSettings.spec", function () {
6
+
7
+ it("Preparation: Set systemUrl ", async function () {
8
+ browser.config.params.systemUrl = util.data.decrypt(data.systemUrl);
9
+ });
10
+
11
+ it("Execution & Verification", async function () {
12
+ await util.userSettings.setTimeFormatFromUserSettings(util.data.decrypt(data.username), util.data.decrypt(data.password));
13
+ common.assertion.expectDefined(process.env.USER_SETTINGS_TIME_FORMAT); //12 Hour Format
14
+ });
15
+
16
+ });
17
+ });
@@ -0,0 +1,16 @@
1
+ const data = require("./data/data.json");
2
+
3
+ describe("userSettings", function () {
4
+ describe("setTimeZoneFromUserSettings.spec", function () {
5
+
6
+ it("Preparation: Set systemUrl ", async function () {
7
+ browser.config.params.systemUrl = util.data.decrypt(data.systemUrl);
8
+ });
9
+
10
+ it("Execution & Verification", async function () {
11
+ await util.userSettings.setTimeZoneFromUserSettings(util.data.decrypt(data.username), util.data.decrypt(data.password));
12
+ common.assertion.expectDefined(process.env.USER_SETTINGS_TIME_ZONE); //Output: "Europe/Berlin"
13
+ });
14
+
15
+ });
16
+ });
@@ -0,0 +1,16 @@
1
+ const path = require("path");
2
+ const merge = require("deepmerge");
3
+ const qmateConfiguration = require("../../../helper/configurations/chrome.headless.conf");
4
+ exports.config = merge(qmateConfiguration.config, {
5
+ params: {
6
+ import: {
7
+ data: "./data/"
8
+ },
9
+ applyS4UserSettings: true
10
+ },
11
+ maxInstances: 1,
12
+
13
+ specs: [
14
+ path.resolve(__dirname, "setS4UserSettings.spec.js")
15
+ ]
16
+ });
@@ -0,0 +1,24 @@
1
+ const path = require("path");
2
+ const merge = require("deepmerge");
3
+ const qmateConfiguration = require("../../../helper/configurations/chrome.headless.conf");
4
+ exports.config = merge(qmateConfiguration.config, {
5
+ params: {
6
+ import: {
7
+ data: "./data/"
8
+ }
9
+ },
10
+ maxInstances: 1,
11
+
12
+ specs: [
13
+ path.resolve(__dirname, "setLanguageFromUserSettings.spec.js"),
14
+ path.resolve(__dirname, "setDateFormatFromUserSettings.spec.js"),
15
+ path.resolve(__dirname, "setTimeFormatFromUserSettings.spec.js"),
16
+ path.resolve(__dirname, "setTimeZoneFromUserSettings.spec.js"),
17
+ path.resolve(__dirname, "setNumberFormatFromUserSettings.spec.js"),
18
+ path.resolve(__dirname, "getLanguageFromUserSettings.spec.js"),
19
+ path.resolve(__dirname, "getDateFormatFromUserSettings.spec.js"),
20
+ path.resolve(__dirname, "getTimeFormatFromUserSettings.spec.js"),
21
+ path.resolve(__dirname, "getTimeZoneFromUserSettings.spec.js"),
22
+ path.resolve(__dirname, "getNumberFormatFromUserSettings.spec.js")
23
+ ]
24
+ });