@azure/microsoft-playwright-testing 1.0.0-alpha.20250716.1 → 1.0.0-alpha.20250721.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 (170) hide show
  1. package/dist/browser/common/constants.js +100 -100
  2. package/dist/browser/common/constants.js.map +1 -1
  3. package/dist/browser/common/customerConfig.js +3 -0
  4. package/dist/browser/common/customerConfig.js.map +1 -1
  5. package/dist/browser/common/entraIdAccessToken.js +46 -43
  6. package/dist/browser/common/entraIdAccessToken.js.map +1 -1
  7. package/dist/browser/common/environmentVariables.js +8 -0
  8. package/dist/browser/common/environmentVariables.js.map +1 -1
  9. package/dist/browser/common/executor.js +1 -2
  10. package/dist/browser/common/executor.js.map +1 -1
  11. package/dist/browser/common/multimap.js +1 -0
  12. package/dist/browser/common/multimap.js.map +1 -1
  13. package/dist/browser/common/playwrightServiceConfig.js +34 -28
  14. package/dist/browser/common/playwrightServiceConfig.js.map +1 -1
  15. package/dist/browser/core/playwrightService.js +13 -8
  16. package/dist/browser/core/playwrightService.js.map +1 -1
  17. package/dist/browser/core/playwrightServiceEntra.js +36 -33
  18. package/dist/browser/core/playwrightServiceEntra.js.map +1 -1
  19. package/dist/browser/model/entraTokenDetails.js +4 -0
  20. package/dist/browser/model/entraTokenDetails.js.map +1 -1
  21. package/dist/browser/model/mptTokenDetails.js +8 -0
  22. package/dist/browser/model/mptTokenDetails.js.map +1 -1
  23. package/dist/browser/model/shard.js +10 -0
  24. package/dist/browser/model/shard.js.map +1 -1
  25. package/dist/browser/model/storageUri.js +4 -0
  26. package/dist/browser/model/storageUri.js.map +1 -1
  27. package/dist/browser/model/testResult.js +18 -0
  28. package/dist/browser/model/testResult.js.map +1 -1
  29. package/dist/browser/model/testRun.js +8 -3
  30. package/dist/browser/model/testRun.js.map +1 -1
  31. package/dist/browser/reporter/mptReporter.js +53 -47
  32. package/dist/browser/reporter/mptReporter.js.map +1 -1
  33. package/dist/browser/utils/cIInfoProvider.js +8 -9
  34. package/dist/browser/utils/cIInfoProvider.js.map +1 -1
  35. package/dist/browser/utils/packageManager.js +21 -27
  36. package/dist/browser/utils/packageManager.js.map +1 -1
  37. package/dist/browser/utils/reporterUtils.js +34 -31
  38. package/dist/browser/utils/reporterUtils.js.map +1 -1
  39. package/dist/browser/utils/serviceClient.js +7 -2
  40. package/dist/browser/utils/serviceClient.js.map +1 -1
  41. package/dist/browser/utils/utils.js +1 -1
  42. package/dist/browser/utils/utils.js.map +1 -1
  43. package/dist/commonjs/common/constants.js +101 -101
  44. package/dist/commonjs/common/constants.js.map +1 -1
  45. package/dist/commonjs/common/customerConfig.js +3 -0
  46. package/dist/commonjs/common/customerConfig.js.map +1 -1
  47. package/dist/commonjs/common/entraIdAccessToken.js +46 -43
  48. package/dist/commonjs/common/entraIdAccessToken.js.map +1 -1
  49. package/dist/commonjs/common/environmentVariables.js +8 -0
  50. package/dist/commonjs/common/environmentVariables.js.map +1 -1
  51. package/dist/commonjs/common/executor.js +1 -2
  52. package/dist/commonjs/common/executor.js.map +1 -1
  53. package/dist/commonjs/common/multimap.js +1 -0
  54. package/dist/commonjs/common/multimap.js.map +1 -1
  55. package/dist/commonjs/common/playwrightServiceConfig.js +34 -28
  56. package/dist/commonjs/common/playwrightServiceConfig.js.map +1 -1
  57. package/dist/commonjs/core/playwrightService.js +13 -8
  58. package/dist/commonjs/core/playwrightService.js.map +1 -1
  59. package/dist/commonjs/core/playwrightServiceEntra.js +36 -33
  60. package/dist/commonjs/core/playwrightServiceEntra.js.map +1 -1
  61. package/dist/commonjs/model/entraTokenDetails.js +4 -0
  62. package/dist/commonjs/model/entraTokenDetails.js.map +1 -1
  63. package/dist/commonjs/model/mptTokenDetails.js +8 -0
  64. package/dist/commonjs/model/mptTokenDetails.js.map +1 -1
  65. package/dist/commonjs/model/shard.js +10 -0
  66. package/dist/commonjs/model/shard.js.map +1 -1
  67. package/dist/commonjs/model/storageUri.js +4 -0
  68. package/dist/commonjs/model/storageUri.js.map +1 -1
  69. package/dist/commonjs/model/testResult.js +18 -0
  70. package/dist/commonjs/model/testResult.js.map +1 -1
  71. package/dist/commonjs/model/testRun.js +8 -3
  72. package/dist/commonjs/model/testRun.js.map +1 -1
  73. package/dist/commonjs/reporter/mptReporter.js +53 -47
  74. package/dist/commonjs/reporter/mptReporter.js.map +1 -1
  75. package/dist/commonjs/tsdoc-metadata.json +11 -11
  76. package/dist/commonjs/utils/cIInfoProvider.js +8 -9
  77. package/dist/commonjs/utils/cIInfoProvider.js.map +1 -1
  78. package/dist/commonjs/utils/packageManager.js +21 -27
  79. package/dist/commonjs/utils/packageManager.js.map +1 -1
  80. package/dist/commonjs/utils/reporterUtils.js +34 -31
  81. package/dist/commonjs/utils/reporterUtils.js.map +1 -1
  82. package/dist/commonjs/utils/serviceClient.js +7 -2
  83. package/dist/commonjs/utils/serviceClient.js.map +1 -1
  84. package/dist/commonjs/utils/utils.js +1 -1
  85. package/dist/commonjs/utils/utils.js.map +1 -1
  86. package/dist/esm/common/constants.js +100 -100
  87. package/dist/esm/common/constants.js.map +1 -1
  88. package/dist/esm/common/customerConfig.js +3 -0
  89. package/dist/esm/common/customerConfig.js.map +1 -1
  90. package/dist/esm/common/entraIdAccessToken.js +46 -43
  91. package/dist/esm/common/entraIdAccessToken.js.map +1 -1
  92. package/dist/esm/common/environmentVariables.js +8 -0
  93. package/dist/esm/common/environmentVariables.js.map +1 -1
  94. package/dist/esm/common/executor.js +1 -2
  95. package/dist/esm/common/executor.js.map +1 -1
  96. package/dist/esm/common/multimap.js +1 -0
  97. package/dist/esm/common/multimap.js.map +1 -1
  98. package/dist/esm/common/playwrightServiceConfig.js +34 -28
  99. package/dist/esm/common/playwrightServiceConfig.js.map +1 -1
  100. package/dist/esm/core/playwrightService.js +13 -8
  101. package/dist/esm/core/playwrightService.js.map +1 -1
  102. package/dist/esm/core/playwrightServiceEntra.js +36 -33
  103. package/dist/esm/core/playwrightServiceEntra.js.map +1 -1
  104. package/dist/esm/model/entraTokenDetails.js +4 -0
  105. package/dist/esm/model/entraTokenDetails.js.map +1 -1
  106. package/dist/esm/model/mptTokenDetails.js +8 -0
  107. package/dist/esm/model/mptTokenDetails.js.map +1 -1
  108. package/dist/esm/model/shard.js +10 -0
  109. package/dist/esm/model/shard.js.map +1 -1
  110. package/dist/esm/model/storageUri.js +4 -0
  111. package/dist/esm/model/storageUri.js.map +1 -1
  112. package/dist/esm/model/testResult.js +18 -0
  113. package/dist/esm/model/testResult.js.map +1 -1
  114. package/dist/esm/model/testRun.js +8 -3
  115. package/dist/esm/model/testRun.js.map +1 -1
  116. package/dist/esm/reporter/mptReporter.js +53 -47
  117. package/dist/esm/reporter/mptReporter.js.map +1 -1
  118. package/dist/esm/utils/cIInfoProvider.js +8 -9
  119. package/dist/esm/utils/cIInfoProvider.js.map +1 -1
  120. package/dist/esm/utils/packageManager.js +21 -27
  121. package/dist/esm/utils/packageManager.js.map +1 -1
  122. package/dist/esm/utils/reporterUtils.js +34 -31
  123. package/dist/esm/utils/reporterUtils.js.map +1 -1
  124. package/dist/esm/utils/serviceClient.js +7 -2
  125. package/dist/esm/utils/serviceClient.js.map +1 -1
  126. package/dist/esm/utils/utils.js +1 -1
  127. package/dist/esm/utils/utils.js.map +1 -1
  128. package/dist/react-native/common/constants.js +100 -100
  129. package/dist/react-native/common/constants.js.map +1 -1
  130. package/dist/react-native/common/customerConfig.js +3 -0
  131. package/dist/react-native/common/customerConfig.js.map +1 -1
  132. package/dist/react-native/common/entraIdAccessToken.js +46 -43
  133. package/dist/react-native/common/entraIdAccessToken.js.map +1 -1
  134. package/dist/react-native/common/environmentVariables.js +8 -0
  135. package/dist/react-native/common/environmentVariables.js.map +1 -1
  136. package/dist/react-native/common/executor.js +1 -2
  137. package/dist/react-native/common/executor.js.map +1 -1
  138. package/dist/react-native/common/multimap.js +1 -0
  139. package/dist/react-native/common/multimap.js.map +1 -1
  140. package/dist/react-native/common/playwrightServiceConfig.js +34 -28
  141. package/dist/react-native/common/playwrightServiceConfig.js.map +1 -1
  142. package/dist/react-native/core/playwrightService.js +13 -8
  143. package/dist/react-native/core/playwrightService.js.map +1 -1
  144. package/dist/react-native/core/playwrightServiceEntra.js +36 -33
  145. package/dist/react-native/core/playwrightServiceEntra.js.map +1 -1
  146. package/dist/react-native/model/entraTokenDetails.js +4 -0
  147. package/dist/react-native/model/entraTokenDetails.js.map +1 -1
  148. package/dist/react-native/model/mptTokenDetails.js +8 -0
  149. package/dist/react-native/model/mptTokenDetails.js.map +1 -1
  150. package/dist/react-native/model/shard.js +10 -0
  151. package/dist/react-native/model/shard.js.map +1 -1
  152. package/dist/react-native/model/storageUri.js +4 -0
  153. package/dist/react-native/model/storageUri.js.map +1 -1
  154. package/dist/react-native/model/testResult.js +18 -0
  155. package/dist/react-native/model/testResult.js.map +1 -1
  156. package/dist/react-native/model/testRun.js +8 -3
  157. package/dist/react-native/model/testRun.js.map +1 -1
  158. package/dist/react-native/reporter/mptReporter.js +53 -47
  159. package/dist/react-native/reporter/mptReporter.js.map +1 -1
  160. package/dist/react-native/utils/cIInfoProvider.js +8 -9
  161. package/dist/react-native/utils/cIInfoProvider.js.map +1 -1
  162. package/dist/react-native/utils/packageManager.js +21 -27
  163. package/dist/react-native/utils/packageManager.js.map +1 -1
  164. package/dist/react-native/utils/reporterUtils.js +34 -31
  165. package/dist/react-native/utils/reporterUtils.js.map +1 -1
  166. package/dist/react-native/utils/serviceClient.js +7 -2
  167. package/dist/react-native/utils/serviceClient.js.map +1 -1
  168. package/dist/react-native/utils/utils.js +1 -1
  169. package/dist/react-native/utils/utils.js.map +1 -1
  170. package/package.json +2 -2
@@ -6,35 +6,13 @@ exports.PlaywrightServiceConfig = void 0;
6
6
  const constants_js_1 = require("./constants.js");
7
7
  const utils_js_1 = require("../utils/utils.js");
8
8
  class PlaywrightServiceConfig {
9
+ serviceOs;
10
+ runId;
11
+ timeout;
12
+ slowMo;
13
+ exposeNetwork;
14
+ runName;
9
15
  constructor() {
10
- this.setOptions = (options) => {
11
- if (options === null || options === void 0 ? void 0 : options.exposeNetwork) {
12
- this.exposeNetwork = options.exposeNetwork;
13
- }
14
- if (!process.env[constants_js_1.InternalEnvironmentVariables.MPT_SERVICE_RUN_ID]) {
15
- if (options === null || options === void 0 ? void 0 : options.runId) {
16
- this.runId = options.runId;
17
- process.env[constants_js_1.InternalEnvironmentVariables.MPT_SERVICE_RUN_ID] = this.runId;
18
- }
19
- else {
20
- this.runId = (0, utils_js_1.getAndSetRunId)();
21
- }
22
- }
23
- if (!process.env[constants_js_1.InternalEnvironmentVariables.MPT_SERVICE_RUN_NAME] && (options === null || options === void 0 ? void 0 : options.runName)) {
24
- this.runName = options.runName;
25
- process.env[constants_js_1.InternalEnvironmentVariables.MPT_SERVICE_RUN_NAME] = this.runName;
26
- }
27
- if (options === null || options === void 0 ? void 0 : options.os) {
28
- this.serviceOs = options.os;
29
- process.env[constants_js_1.InternalEnvironmentVariables.MPT_SERVICE_OS] = this.serviceOs;
30
- }
31
- if (options === null || options === void 0 ? void 0 : options.slowMo) {
32
- this.slowMo = options.slowMo;
33
- }
34
- if (options === null || options === void 0 ? void 0 : options.timeout) {
35
- this.timeout = options.timeout;
36
- }
37
- };
38
16
  this.serviceOs = (process.env[constants_js_1.InternalEnvironmentVariables.MPT_SERVICE_OS] ||
39
17
  constants_js_1.DefaultConnectOptionsConstants.DEFAULT_SERVICE_OS);
40
18
  this.runName = process.env[constants_js_1.InternalEnvironmentVariables.MPT_SERVICE_RUN_NAME] || "";
@@ -43,6 +21,34 @@ class PlaywrightServiceConfig {
43
21
  this.slowMo = constants_js_1.DefaultConnectOptionsConstants.DEFAULT_SLOW_MO;
44
22
  this.exposeNetwork = constants_js_1.DefaultConnectOptionsConstants.DEFAULT_EXPOSE_NETWORK;
45
23
  }
24
+ setOptions = (options) => {
25
+ if (options?.exposeNetwork) {
26
+ this.exposeNetwork = options.exposeNetwork;
27
+ }
28
+ if (!process.env[constants_js_1.InternalEnvironmentVariables.MPT_SERVICE_RUN_ID]) {
29
+ if (options?.runId) {
30
+ this.runId = options.runId;
31
+ process.env[constants_js_1.InternalEnvironmentVariables.MPT_SERVICE_RUN_ID] = this.runId;
32
+ }
33
+ else {
34
+ this.runId = (0, utils_js_1.getAndSetRunId)();
35
+ }
36
+ }
37
+ if (!process.env[constants_js_1.InternalEnvironmentVariables.MPT_SERVICE_RUN_NAME] && options?.runName) {
38
+ this.runName = options.runName;
39
+ process.env[constants_js_1.InternalEnvironmentVariables.MPT_SERVICE_RUN_NAME] = this.runName;
40
+ }
41
+ if (options?.os) {
42
+ this.serviceOs = options.os;
43
+ process.env[constants_js_1.InternalEnvironmentVariables.MPT_SERVICE_OS] = this.serviceOs;
44
+ }
45
+ if (options?.slowMo) {
46
+ this.slowMo = options.slowMo;
47
+ }
48
+ if (options?.timeout) {
49
+ this.timeout = options.timeout;
50
+ }
51
+ };
46
52
  }
47
53
  exports.PlaywrightServiceConfig = PlaywrightServiceConfig;
48
54
  //# sourceMappingURL=playwrightServiceConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"playwrightServiceConfig.js","sourceRoot":"","sources":["../../../src/common/playwrightServiceConfig.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,iDAA8F;AAE9F,gDAAmD;AAEnD,MAAM,uBAAuB;IAO3B;QAUA,eAAU,GAAG,CAAC,OAA4C,EAAQ,EAAE;YAClE,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,EAAE,CAAC;gBAC3B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;YAC7C,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,2CAA4B,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAClE,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,EAAE,CAAC;oBACnB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;oBAC3B,OAAO,CAAC,GAAG,CAAC,2CAA4B,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC5E,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,KAAK,GAAG,IAAA,yBAAc,GAAE,CAAC;gBAChC,CAAC;YACH,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,2CAA4B,CAAC,oBAAoB,CAAC,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAA,EAAE,CAAC;gBACxF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,2CAA4B,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;YAChF,CAAC;YACD,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,EAAE,CAAC;gBAChB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,2CAA4B,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;YAC5E,CAAC;YACD,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC/B,CAAC;YACD,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,EAAE,CAAC;gBACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YACjC,CAAC;QACH,CAAC,CAAC;QAnCA,IAAI,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,2CAA4B,CAAC,cAAc,CAAC;YACxE,6CAA8B,CAAC,kBAAkB,CAAW,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,2CAA4B,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;QACpF,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,2CAA4B,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;QAChF,IAAI,CAAC,OAAO,GAAG,6CAA8B,CAAC,eAAe,CAAC;QAC9D,IAAI,CAAC,MAAM,GAAG,6CAA8B,CAAC,eAAe,CAAC;QAC7D,IAAI,CAAC,aAAa,GAAG,6CAA8B,CAAC,sBAAsB,CAAC;IAC7E,CAAC;CA6BF;AAEQ,0DAAuB","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { DefaultConnectOptionsConstants, InternalEnvironmentVariables } from \"./constants.js\";\nimport type { PlaywrightServiceAdditionalOptions, OsType } from \"./types.js\";\nimport { getAndSetRunId } from \"../utils/utils.js\";\n\nclass PlaywrightServiceConfig {\n public serviceOs: OsType;\n public runId: string;\n public timeout: number;\n public slowMo: number;\n public exposeNetwork: string;\n public runName: string;\n constructor() {\n this.serviceOs = (process.env[InternalEnvironmentVariables.MPT_SERVICE_OS] ||\n DefaultConnectOptionsConstants.DEFAULT_SERVICE_OS) as OsType;\n this.runName = process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_NAME] || \"\";\n this.runId = process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_ID] || \"\";\n this.timeout = DefaultConnectOptionsConstants.DEFAULT_TIMEOUT;\n this.slowMo = DefaultConnectOptionsConstants.DEFAULT_SLOW_MO;\n this.exposeNetwork = DefaultConnectOptionsConstants.DEFAULT_EXPOSE_NETWORK;\n }\n\n setOptions = (options?: PlaywrightServiceAdditionalOptions): void => {\n if (options?.exposeNetwork) {\n this.exposeNetwork = options.exposeNetwork;\n }\n if (!process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_ID]) {\n if (options?.runId) {\n this.runId = options.runId;\n process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_ID] = this.runId;\n } else {\n this.runId = getAndSetRunId();\n }\n }\n if (!process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_NAME] && options?.runName) {\n this.runName = options.runName;\n process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_NAME] = this.runName;\n }\n if (options?.os) {\n this.serviceOs = options.os;\n process.env[InternalEnvironmentVariables.MPT_SERVICE_OS] = this.serviceOs;\n }\n if (options?.slowMo) {\n this.slowMo = options.slowMo;\n }\n if (options?.timeout) {\n this.timeout = options.timeout;\n }\n };\n}\n\nexport { PlaywrightServiceConfig };\n"]}
1
+ {"version":3,"file":"playwrightServiceConfig.js","sourceRoot":"","sources":["../../../src/common/playwrightServiceConfig.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,iDAA8F;AAE9F,gDAAmD;AAEnD,MAAM,uBAAuB;IACpB,SAAS,CAAS;IAClB,KAAK,CAAS;IACd,OAAO,CAAS;IAChB,MAAM,CAAS;IACf,aAAa,CAAS;IACtB,OAAO,CAAS;IACvB;QACE,IAAI,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,2CAA4B,CAAC,cAAc,CAAC;YACxE,6CAA8B,CAAC,kBAAkB,CAAW,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,2CAA4B,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;QACpF,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,2CAA4B,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;QAChF,IAAI,CAAC,OAAO,GAAG,6CAA8B,CAAC,eAAe,CAAC;QAC9D,IAAI,CAAC,MAAM,GAAG,6CAA8B,CAAC,eAAe,CAAC;QAC7D,IAAI,CAAC,aAAa,GAAG,6CAA8B,CAAC,sBAAsB,CAAC;IAC7E,CAAC;IAED,UAAU,GAAG,CAAC,OAA4C,EAAQ,EAAE;QAClE,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,2CAA4B,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAClE,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;gBACnB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,2CAA4B,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YAC5E,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,GAAG,IAAA,yBAAc,GAAE,CAAC;YAChC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,2CAA4B,CAAC,oBAAoB,CAAC,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACxF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,2CAA4B,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QAChF,CAAC;QACD,IAAI,OAAO,EAAE,EAAE,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,2CAA4B,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5E,CAAC;QACD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC/B,CAAC;QACD,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACjC,CAAC;IACH,CAAC,CAAC;CACH;AAEQ,0DAAuB","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { DefaultConnectOptionsConstants, InternalEnvironmentVariables } from \"./constants.js\";\nimport type { PlaywrightServiceAdditionalOptions, OsType } from \"./types.js\";\nimport { getAndSetRunId } from \"../utils/utils.js\";\n\nclass PlaywrightServiceConfig {\n public serviceOs: OsType;\n public runId: string;\n public timeout: number;\n public slowMo: number;\n public exposeNetwork: string;\n public runName: string;\n constructor() {\n this.serviceOs = (process.env[InternalEnvironmentVariables.MPT_SERVICE_OS] ||\n DefaultConnectOptionsConstants.DEFAULT_SERVICE_OS) as OsType;\n this.runName = process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_NAME] || \"\";\n this.runId = process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_ID] || \"\";\n this.timeout = DefaultConnectOptionsConstants.DEFAULT_TIMEOUT;\n this.slowMo = DefaultConnectOptionsConstants.DEFAULT_SLOW_MO;\n this.exposeNetwork = DefaultConnectOptionsConstants.DEFAULT_EXPOSE_NETWORK;\n }\n\n setOptions = (options?: PlaywrightServiceAdditionalOptions): void => {\n if (options?.exposeNetwork) {\n this.exposeNetwork = options.exposeNetwork;\n }\n if (!process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_ID]) {\n if (options?.runId) {\n this.runId = options.runId;\n process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_ID] = this.runId;\n } else {\n this.runId = getAndSetRunId();\n }\n }\n if (!process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_NAME] && options?.runName) {\n this.runName = options.runName;\n process.env[InternalEnvironmentVariables.MPT_SERVICE_RUN_NAME] = this.runName;\n }\n if (options?.os) {\n this.serviceOs = options.os;\n process.env[InternalEnvironmentVariables.MPT_SERVICE_OS] = this.serviceOs;\n }\n if (options?.slowMo) {\n this.slowMo = options.slowMo;\n }\n if (options?.timeout) {\n this.timeout = options.timeout;\n }\n };\n}\n\nexport { PlaywrightServiceConfig };\n"]}
@@ -16,7 +16,7 @@ const performOneTimeOperation = (options) => {
16
16
  if (oneTimeOperationFlag)
17
17
  return;
18
18
  process.env[constants_js_1.InternalEnvironmentVariables.ONE_TIME_OPERATION_FLAG] = "true";
19
- if ((options === null || options === void 0 ? void 0 : options.serviceAuthType) === constants_js_1.ServiceAuth.ACCESS_TOKEN) {
19
+ if (options?.serviceAuthType === constants_js_1.ServiceAuth.ACCESS_TOKEN) {
20
20
  (0, utils_js_1.warnIfAccessTokenCloseToExpiry)();
21
21
  }
22
22
  };
@@ -55,7 +55,7 @@ const getServiceConfig = (config, options) => {
55
55
  (0, utils_js_1.validateServiceUrl)();
56
56
  const playwrightVersionInfo = (0, utils_js_1.getVersionInfo)((0, utils_js_1.getPlaywrightVersion)());
57
57
  const isMultipleGlobalFileSupported = playwrightVersionInfo.major >= 1 && playwrightVersionInfo.minor >= 49;
58
- if (options === null || options === void 0 ? void 0 : options.credential) {
58
+ if (options?.credential) {
59
59
  playwrightServiceEntra_js_1.default.entraIdAccessToken = options.credential;
60
60
  }
61
61
  // if global setup/teardown is string -
@@ -100,7 +100,7 @@ const getServiceConfig = (config, options) => {
100
100
  playwrightServiceConfig.setOptions(options);
101
101
  (0, utils_js_1.emitReportingUrl)();
102
102
  const globalFunctions = {};
103
- if ((options === null || options === void 0 ? void 0 : options.serviceAuthType) === constants_js_1.ServiceAuth.ACCESS_TOKEN) {
103
+ if (options?.serviceAuthType === constants_js_1.ServiceAuth.ACCESS_TOKEN) {
104
104
  // mpt PAT requested and set by the customer, no need to setup entra lifecycle handlers
105
105
  (0, utils_js_1.validateMptPAT)(utils_js_1.exitWithFailureMessage);
106
106
  }
@@ -125,14 +125,17 @@ const getServiceConfig = (config, options) => {
125
125
  }
126
126
  }
127
127
  performOneTimeOperation(options);
128
- if ((options === null || options === void 0 ? void 0 : options.useCloudHostedBrowsers) === false) {
129
- return Object.assign({}, globalFunctions);
128
+ if (options?.useCloudHostedBrowsers === false) {
129
+ return {
130
+ ...globalFunctions,
131
+ };
130
132
  }
131
133
  if (!process.env[constants_js_1.InternalEnvironmentVariables.MPT_CLOUD_HOSTED_BROWSER_USED]) {
132
134
  process.env[constants_js_1.InternalEnvironmentVariables.MPT_CLOUD_HOSTED_BROWSER_USED] = "true";
133
135
  console.log("\nRunning tests using Microsoft Playwright Testing service.");
134
136
  }
135
- return Object.assign({ use: {
137
+ return {
138
+ use: {
136
139
  connectOptions: {
137
140
  wsEndpoint: (0, utils_js_1.getServiceWSEndpoint)(playwrightServiceConfig.runId, playwrightServiceConfig.serviceOs),
138
141
  headers: {
@@ -143,7 +146,9 @@ const getServiceConfig = (config, options) => {
143
146
  exposeNetwork: playwrightServiceConfig.exposeNetwork,
144
147
  slowMo: playwrightServiceConfig.slowMo,
145
148
  },
146
- } }, globalFunctions);
149
+ },
150
+ ...globalFunctions,
151
+ };
147
152
  };
148
153
  exports.getServiceConfig = getServiceConfig;
149
154
  /**
@@ -177,7 +182,7 @@ exports.getServiceConfig = getServiceConfig;
177
182
  const getConnectOptions = async (options) => {
178
183
  const playwrightServiceConfig = new playwrightServiceConfig_js_1.PlaywrightServiceConfig();
179
184
  playwrightServiceConfig.setOptions(options);
180
- const token = await (0, utils_js_1.fetchOrValidateAccessToken)(options === null || options === void 0 ? void 0 : options.credential);
185
+ const token = await (0, utils_js_1.fetchOrValidateAccessToken)(options?.credential);
181
186
  return {
182
187
  wsEndpoint: (0, utils_js_1.getServiceWSEndpoint)(playwrightServiceConfig.runId, playwrightServiceConfig.serviceOs),
183
188
  options: {
@@ -1 +1 @@
1
- {"version":3,"file":"playwrightService.js","sourceRoot":"","sources":["../../../src/core/playwrightService.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { InternalEnvironmentVariables, ServiceAuth } from \"../common/constants.js\";\nimport customerConfig from \"../common/customerConfig.js\";\nimport { PlaywrightServiceConfig } from \"../common/playwrightServiceConfig.js\";\nimport playwrightServiceEntra from \"./playwrightServiceEntra.js\";\nimport type { PlaywrightServiceAdditionalOptions, BrowserConnectOptions } from \"../common/types.js\";\nimport {\n emitReportingUrl,\n fetchOrValidateAccessToken,\n getAccessToken,\n getServiceWSEndpoint,\n validateMptPAT,\n warnIfAccessTokenCloseToExpiry,\n validatePlaywrightVersion,\n validateServiceUrl,\n exitWithFailureMessage,\n getPackageVersion,\n getPlaywrightVersion,\n getVersionInfo,\n} from \"../utils/utils.js\";\nimport { ServiceErrorMessageConstants } from \"../common/messages.js\";\nimport type { PlaywrightTestConfig } from \"@playwright/test\";\nimport { globalSetupPath, globalTeardownPath } from \"./playwrightServiceUtils.js\";\n\nconst performOneTimeOperation = (options?: PlaywrightServiceAdditionalOptions): void => {\n const oneTimeOperationFlag =\n process.env[InternalEnvironmentVariables.ONE_TIME_OPERATION_FLAG] === \"true\";\n if (oneTimeOperationFlag) return;\n process.env[InternalEnvironmentVariables.ONE_TIME_OPERATION_FLAG] = \"true\";\n if (options?.serviceAuthType === ServiceAuth.ACCESS_TOKEN) {\n warnIfAccessTokenCloseToExpiry();\n }\n};\n/**\n * @public\n *\n * Generate playwright configuration integrated with Microsoft Playwright Testing.\n *\n * @param config - base playwright configuration\n * @param options - additional options for the service\n * @returns PlaywrightConfig\n *\n * @example\n * ```\n * import { defineConfig } from \"playwright/test\";\n * import { getServiceConfig } from \"@azure/microsoft-playwright-testing\";\n * import playwrightConfig from \"./playwright.config\";\n *\n * export default defineConfig(playwrightConfig, getServiceConfig(playwrightConfig));\n * ```\n *\n * @example\n * ```\n * import { defineConfig } from \"playwright/test\";\n * import { getServiceConfig, ServiceOS } from \"@azure/microsoft-playwright-testing\";\n * import playwrightConfig from \"./playwright.config\";\n *\n * export default defineConfig(playwrightConfig, getServiceConfig(playwrightConfig, {\n * runId: \"custom run id\",\n * os: ServiceOS.WINDOWS\n * }));\n * ```\n */\nconst getServiceConfig = (\n config: PlaywrightTestConfig,\n options?: PlaywrightServiceAdditionalOptions,\n): PlaywrightTestConfig => {\n validatePlaywrightVersion();\n validateServiceUrl();\n const playwrightVersionInfo = getVersionInfo(getPlaywrightVersion());\n const isMultipleGlobalFileSupported =\n playwrightVersionInfo.major >= 1 && playwrightVersionInfo.minor >= 49;\n if (options?.credential) {\n playwrightServiceEntra.entraIdAccessToken = options.credential;\n }\n\n // if global setup/teardown is string -\n // 1. if multiple global file is supported, convert it to array\n // 2. wrap playwright-service global setup/teardown with customer provided global setup/teardown\n\n // if global setup/teardown is array -\n // 1. if multiple global file is not supported, throw error\n // 2. append playwright-service global setup/teardown with customer provided global setup/teardown\n if (config && config.globalSetup) {\n if (typeof config.globalSetup === \"string\") {\n if (isMultipleGlobalFileSupported) {\n customerConfig.globalSetup = [config.globalSetup];\n } else {\n customerConfig.globalSetup = config.globalSetup;\n }\n } else {\n if (!isMultipleGlobalFileSupported) {\n throw new Error(\n ServiceErrorMessageConstants.MULTIPLE_SETUP_FILE_PLAYWRIGHT_VERSION_ERROR.message,\n );\n }\n customerConfig.globalSetup = config.globalSetup;\n }\n }\n\n if (config && config.globalTeardown) {\n if (typeof config.globalTeardown === \"string\") {\n if (isMultipleGlobalFileSupported) {\n customerConfig.globalTeardown = [config.globalTeardown];\n } else {\n customerConfig.globalTeardown = config.globalTeardown;\n }\n } else {\n if (!isMultipleGlobalFileSupported) {\n throw new Error(\n ServiceErrorMessageConstants.MULTIPLE_SETUP_FILE_PLAYWRIGHT_VERSION_ERROR.message,\n );\n }\n customerConfig.globalTeardown = config.globalTeardown;\n }\n }\n\n const playwrightServiceConfig = new PlaywrightServiceConfig();\n playwrightServiceConfig.setOptions(options);\n emitReportingUrl();\n\n const globalFunctions: any = {};\n\n if (options?.serviceAuthType === ServiceAuth.ACCESS_TOKEN) {\n // mpt PAT requested and set by the customer, no need to setup entra lifecycle handlers\n validateMptPAT(exitWithFailureMessage);\n } else {\n // If multiple global file is supported, append playwright-service global setup/teardown with customer provided global setup/teardown\n if (isMultipleGlobalFileSupported) {\n globalFunctions.globalSetup = [] as string[];\n globalFunctions.globalTeardown = [] as string[];\n if (customerConfig.globalSetup) {\n globalFunctions.globalSetup.push(...(customerConfig.globalSetup as string[]));\n }\n if (customerConfig.globalTeardown) {\n globalFunctions.globalTeardown.push(...(customerConfig.globalTeardown as string[]));\n }\n globalFunctions.globalSetup.push(globalSetupPath);\n globalFunctions.globalTeardown.push(globalTeardownPath);\n } else {\n // If multiple global file is not supported, wrap playwright-service global setup/teardown with customer provided global setup/teardown\n globalFunctions.globalSetup = globalSetupPath;\n globalFunctions.globalTeardown = globalTeardownPath;\n }\n }\n performOneTimeOperation(options);\n if (options?.useCloudHostedBrowsers === false) {\n return {\n ...globalFunctions,\n };\n }\n if (!process.env[InternalEnvironmentVariables.MPT_CLOUD_HOSTED_BROWSER_USED]) {\n process.env[InternalEnvironmentVariables.MPT_CLOUD_HOSTED_BROWSER_USED] = \"true\";\n console.log(\"\\nRunning tests using Microsoft Playwright Testing service.\");\n }\n\n return {\n use: {\n connectOptions: {\n wsEndpoint: getServiceWSEndpoint(\n playwrightServiceConfig.runId,\n playwrightServiceConfig.serviceOs,\n ),\n headers: {\n Authorization: `Bearer ${getAccessToken()}`,\n \"x-ms-package-version\": `@azure/microsoft-playwright-testing/${getPackageVersion()}`,\n },\n timeout: playwrightServiceConfig.timeout,\n exposeNetwork: playwrightServiceConfig.exposeNetwork,\n slowMo: playwrightServiceConfig.slowMo,\n },\n },\n ...globalFunctions,\n };\n};\n\n/**\n * @public\n *\n * Get connect options required to connect to Microsoft Playwright Testing's cloud hosted browsers.\n *\n * @param options - additional options for the service\n * @returns BrowserConnectOptions\n *\n * @example\n * ```\n * import playwright, { test, expect, BrowserType } from \"@playwright/test\";\n * import { getConnectOptions } from \"@azure/microsoft-playwright-testing\";\n *\n * test('has title', async ({ browserName }) => {\n * const { wsEndpoint, options } = await getConnectOptions();\n * const browser = await (playwright[browserName] as BrowserType).connect(wsEndpoint, options);\n * const context = await browser.newContext();\n * const page = await context.newPage();\n *\n * await page.goto('https://playwright.dev/');\n * await expect(page).toHaveTitle(/Playwright/);\n *\n * await page.close();\n * await context.close();\n * await browser.close();\n * });\n * ```\n */\nconst getConnectOptions = async (\n options?: Omit<PlaywrightServiceAdditionalOptions, \"serviceAuthType\">,\n): Promise<BrowserConnectOptions> => {\n const playwrightServiceConfig = new PlaywrightServiceConfig();\n playwrightServiceConfig.setOptions(options);\n\n const token = await fetchOrValidateAccessToken(options?.credential);\n return {\n wsEndpoint: getServiceWSEndpoint(\n playwrightServiceConfig.runId,\n playwrightServiceConfig.serviceOs,\n ),\n options: {\n headers: {\n Authorization: `Bearer ${token}`,\n \"x-ms-package-version\": `@azure/microsoft-playwright-testing/${getPackageVersion()}`,\n },\n timeout: playwrightServiceConfig.timeout,\n exposeNetwork: playwrightServiceConfig.exposeNetwork,\n slowMo: playwrightServiceConfig.slowMo,\n },\n };\n};\n\nexport { getServiceConfig, getConnectOptions };\n"]}
1
+ {"version":3,"file":"playwrightService.js","sourceRoot":"","sources":["../../../src/core/playwrightService.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { InternalEnvironmentVariables, ServiceAuth } from \"../common/constants.js\";\nimport customerConfig from \"../common/customerConfig.js\";\nimport { PlaywrightServiceConfig } from \"../common/playwrightServiceConfig.js\";\nimport playwrightServiceEntra from \"./playwrightServiceEntra.js\";\nimport type { PlaywrightServiceAdditionalOptions, BrowserConnectOptions } from \"../common/types.js\";\nimport {\n emitReportingUrl,\n fetchOrValidateAccessToken,\n getAccessToken,\n getServiceWSEndpoint,\n validateMptPAT,\n warnIfAccessTokenCloseToExpiry,\n validatePlaywrightVersion,\n validateServiceUrl,\n exitWithFailureMessage,\n getPackageVersion,\n getPlaywrightVersion,\n getVersionInfo,\n} from \"../utils/utils.js\";\nimport { ServiceErrorMessageConstants } from \"../common/messages.js\";\nimport type { PlaywrightTestConfig } from \"@playwright/test\";\nimport { globalSetupPath, globalTeardownPath } from \"./playwrightServiceUtils.js\";\n\nconst performOneTimeOperation = (options?: PlaywrightServiceAdditionalOptions): void => {\n const oneTimeOperationFlag =\n process.env[InternalEnvironmentVariables.ONE_TIME_OPERATION_FLAG] === \"true\";\n if (oneTimeOperationFlag) return;\n process.env[InternalEnvironmentVariables.ONE_TIME_OPERATION_FLAG] = \"true\";\n if (options?.serviceAuthType === ServiceAuth.ACCESS_TOKEN) {\n warnIfAccessTokenCloseToExpiry();\n }\n};\n/**\n * @public\n *\n * Generate playwright configuration integrated with Microsoft Playwright Testing.\n *\n * @param config - base playwright configuration\n * @param options - additional options for the service\n * @returns PlaywrightConfig\n *\n * @example\n * ```\n * import { defineConfig } from \"playwright/test\";\n * import { getServiceConfig } from \"@azure/microsoft-playwright-testing\";\n * import playwrightConfig from \"./playwright.config\";\n *\n * export default defineConfig(playwrightConfig, getServiceConfig(playwrightConfig));\n * ```\n *\n * @example\n * ```\n * import { defineConfig } from \"playwright/test\";\n * import { getServiceConfig, ServiceOS } from \"@azure/microsoft-playwright-testing\";\n * import playwrightConfig from \"./playwright.config\";\n *\n * export default defineConfig(playwrightConfig, getServiceConfig(playwrightConfig, {\n * runId: \"custom run id\",\n * os: ServiceOS.WINDOWS\n * }));\n * ```\n */\nconst getServiceConfig = (\n config: PlaywrightTestConfig,\n options?: PlaywrightServiceAdditionalOptions,\n): PlaywrightTestConfig => {\n validatePlaywrightVersion();\n validateServiceUrl();\n const playwrightVersionInfo = getVersionInfo(getPlaywrightVersion());\n const isMultipleGlobalFileSupported =\n playwrightVersionInfo.major >= 1 && playwrightVersionInfo.minor >= 49;\n if (options?.credential) {\n playwrightServiceEntra.entraIdAccessToken = options.credential;\n }\n\n // if global setup/teardown is string -\n // 1. if multiple global file is supported, convert it to array\n // 2. wrap playwright-service global setup/teardown with customer provided global setup/teardown\n\n // if global setup/teardown is array -\n // 1. if multiple global file is not supported, throw error\n // 2. append playwright-service global setup/teardown with customer provided global setup/teardown\n if (config && config.globalSetup) {\n if (typeof config.globalSetup === \"string\") {\n if (isMultipleGlobalFileSupported) {\n customerConfig.globalSetup = [config.globalSetup];\n } else {\n customerConfig.globalSetup = config.globalSetup;\n }\n } else {\n if (!isMultipleGlobalFileSupported) {\n throw new Error(\n ServiceErrorMessageConstants.MULTIPLE_SETUP_FILE_PLAYWRIGHT_VERSION_ERROR.message,\n );\n }\n customerConfig.globalSetup = config.globalSetup;\n }\n }\n\n if (config && config.globalTeardown) {\n if (typeof config.globalTeardown === \"string\") {\n if (isMultipleGlobalFileSupported) {\n customerConfig.globalTeardown = [config.globalTeardown];\n } else {\n customerConfig.globalTeardown = config.globalTeardown;\n }\n } else {\n if (!isMultipleGlobalFileSupported) {\n throw new Error(\n ServiceErrorMessageConstants.MULTIPLE_SETUP_FILE_PLAYWRIGHT_VERSION_ERROR.message,\n );\n }\n customerConfig.globalTeardown = config.globalTeardown;\n }\n }\n\n const playwrightServiceConfig = new PlaywrightServiceConfig();\n playwrightServiceConfig.setOptions(options);\n emitReportingUrl();\n\n const globalFunctions: any = {};\n\n if (options?.serviceAuthType === ServiceAuth.ACCESS_TOKEN) {\n // mpt PAT requested and set by the customer, no need to setup entra lifecycle handlers\n validateMptPAT(exitWithFailureMessage);\n } else {\n // If multiple global file is supported, append playwright-service global setup/teardown with customer provided global setup/teardown\n if (isMultipleGlobalFileSupported) {\n globalFunctions.globalSetup = [] as string[];\n globalFunctions.globalTeardown = [] as string[];\n if (customerConfig.globalSetup) {\n globalFunctions.globalSetup.push(...(customerConfig.globalSetup as string[]));\n }\n if (customerConfig.globalTeardown) {\n globalFunctions.globalTeardown.push(...(customerConfig.globalTeardown as string[]));\n }\n globalFunctions.globalSetup.push(globalSetupPath);\n globalFunctions.globalTeardown.push(globalTeardownPath);\n } else {\n // If multiple global file is not supported, wrap playwright-service global setup/teardown with customer provided global setup/teardown\n globalFunctions.globalSetup = globalSetupPath;\n globalFunctions.globalTeardown = globalTeardownPath;\n }\n }\n performOneTimeOperation(options);\n if (options?.useCloudHostedBrowsers === false) {\n return {\n ...globalFunctions,\n };\n }\n if (!process.env[InternalEnvironmentVariables.MPT_CLOUD_HOSTED_BROWSER_USED]) {\n process.env[InternalEnvironmentVariables.MPT_CLOUD_HOSTED_BROWSER_USED] = \"true\";\n console.log(\"\\nRunning tests using Microsoft Playwright Testing service.\");\n }\n\n return {\n use: {\n connectOptions: {\n wsEndpoint: getServiceWSEndpoint(\n playwrightServiceConfig.runId,\n playwrightServiceConfig.serviceOs,\n ),\n headers: {\n Authorization: `Bearer ${getAccessToken()}`,\n \"x-ms-package-version\": `@azure/microsoft-playwright-testing/${getPackageVersion()}`,\n },\n timeout: playwrightServiceConfig.timeout,\n exposeNetwork: playwrightServiceConfig.exposeNetwork,\n slowMo: playwrightServiceConfig.slowMo,\n },\n },\n ...globalFunctions,\n };\n};\n\n/**\n * @public\n *\n * Get connect options required to connect to Microsoft Playwright Testing's cloud hosted browsers.\n *\n * @param options - additional options for the service\n * @returns BrowserConnectOptions\n *\n * @example\n * ```\n * import playwright, { test, expect, BrowserType } from \"@playwright/test\";\n * import { getConnectOptions } from \"@azure/microsoft-playwright-testing\";\n *\n * test('has title', async ({ browserName }) => {\n * const { wsEndpoint, options } = await getConnectOptions();\n * const browser = await (playwright[browserName] as BrowserType).connect(wsEndpoint, options);\n * const context = await browser.newContext();\n * const page = await context.newPage();\n *\n * await page.goto('https://playwright.dev/');\n * await expect(page).toHaveTitle(/Playwright/);\n *\n * await page.close();\n * await context.close();\n * await browser.close();\n * });\n * ```\n */\nconst getConnectOptions = async (\n options?: Omit<PlaywrightServiceAdditionalOptions, \"serviceAuthType\">,\n): Promise<BrowserConnectOptions> => {\n const playwrightServiceConfig = new PlaywrightServiceConfig();\n playwrightServiceConfig.setOptions(options);\n\n const token = await fetchOrValidateAccessToken(options?.credential);\n return {\n wsEndpoint: getServiceWSEndpoint(\n playwrightServiceConfig.runId,\n playwrightServiceConfig.serviceOs,\n ),\n options: {\n headers: {\n Authorization: `Bearer ${token}`,\n \"x-ms-package-version\": `@azure/microsoft-playwright-testing/${getPackageVersion()}`,\n },\n timeout: playwrightServiceConfig.timeout,\n exposeNetwork: playwrightServiceConfig.exposeNetwork,\n slowMo: playwrightServiceConfig.slowMo,\n },\n };\n};\n\nexport { getServiceConfig, getConnectOptions };\n"]}
@@ -6,46 +6,49 @@ const constants_js_1 = require("../common/constants.js");
6
6
  const logger_js_1 = require("../common/logger.js");
7
7
  const entraIdAccessToken_js_1 = require("../common/entraIdAccessToken.js");
8
8
  class PlaywrightServiceEntra {
9
+ _entraIdAccessTokenRotationInterval;
10
+ static instance;
11
+ _entraIdAccessToken;
12
+ static getInstance = () => {
13
+ if (!PlaywrightServiceEntra.instance) {
14
+ PlaywrightServiceEntra.instance = new PlaywrightServiceEntra();
15
+ }
16
+ return PlaywrightServiceEntra.instance;
17
+ };
9
18
  set entraIdAccessToken(credential) {
10
19
  this._entraIdAccessToken = new entraIdAccessToken_js_1.EntraIdAccessToken(credential);
11
20
  }
12
21
  constructor() {
13
- this.globalSetup = async () => {
14
- logger_js_1.coreLogger.info("Entra id access token setup start");
15
- await this._entraIdAccessToken.fetchEntraIdAccessToken();
16
- this.entraIdGlobalSetupRotationHandler();
17
- };
18
- this.globalTeardown = () => {
19
- logger_js_1.coreLogger.info("Entra id access token teardown start");
20
- if (this._entraIdAccessTokenRotationInterval) {
21
- clearInterval(this._entraIdAccessTokenRotationInterval);
22
- logger_js_1.coreLogger.info("Entra id access token rotation interval cleared");
23
- }
24
- };
25
- this.entraIdGlobalSetupRotationHandler = () => {
26
- this._entraIdAccessTokenRotationInterval = setInterval(this.entraIdAccessTokenRotation, constants_js_1.EntraIdAccessTokenConstants.ROTATION_INTERVAL_PERIOD_IN_MINUTES * 60 * 1000);
27
- logger_js_1.coreLogger.info("Entra id access token rotation handler setup done");
28
- };
29
- this.entraIdAccessTokenRotation = async () => {
30
- logger_js_1.coreLogger.info("Entra id access token rotation handler");
31
- try {
32
- if (this._entraIdAccessToken.doesEntraIdAccessTokenNeedRotation()) {
33
- await this._entraIdAccessToken.fetchEntraIdAccessToken();
34
- }
35
- }
36
- catch (err) {
37
- logger_js_1.coreLogger.error(err); // log error and continue if it's an intermittent issue (optimistic approach)
38
- }
39
- };
40
22
  this._entraIdAccessToken = new entraIdAccessToken_js_1.EntraIdAccessToken();
41
23
  }
24
+ globalSetup = async () => {
25
+ logger_js_1.coreLogger.info("Entra id access token setup start");
26
+ await this._entraIdAccessToken.fetchEntraIdAccessToken();
27
+ this.entraIdGlobalSetupRotationHandler();
28
+ };
29
+ globalTeardown = () => {
30
+ logger_js_1.coreLogger.info("Entra id access token teardown start");
31
+ if (this._entraIdAccessTokenRotationInterval) {
32
+ clearInterval(this._entraIdAccessTokenRotationInterval);
33
+ logger_js_1.coreLogger.info("Entra id access token rotation interval cleared");
34
+ }
35
+ };
36
+ entraIdGlobalSetupRotationHandler = () => {
37
+ this._entraIdAccessTokenRotationInterval = setInterval(this.entraIdAccessTokenRotation, constants_js_1.EntraIdAccessTokenConstants.ROTATION_INTERVAL_PERIOD_IN_MINUTES * 60 * 1000);
38
+ logger_js_1.coreLogger.info("Entra id access token rotation handler setup done");
39
+ };
40
+ entraIdAccessTokenRotation = async () => {
41
+ logger_js_1.coreLogger.info("Entra id access token rotation handler");
42
+ try {
43
+ if (this._entraIdAccessToken.doesEntraIdAccessTokenNeedRotation()) {
44
+ await this._entraIdAccessToken.fetchEntraIdAccessToken();
45
+ }
46
+ }
47
+ catch (err) {
48
+ logger_js_1.coreLogger.error(err); // log error and continue if it's an intermittent issue (optimistic approach)
49
+ }
50
+ };
42
51
  }
43
- PlaywrightServiceEntra.getInstance = () => {
44
- if (!PlaywrightServiceEntra.instance) {
45
- PlaywrightServiceEntra.instance = new PlaywrightServiceEntra();
46
- }
47
- return PlaywrightServiceEntra.instance;
48
- };
49
52
  const instance = PlaywrightServiceEntra.getInstance();
50
53
  exports.default = instance;
51
54
  //# sourceMappingURL=playwrightServiceEntra.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"playwrightServiceEntra.js","sourceRoot":"","sources":["../../../src/core/playwrightServiceEntra.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAElC,yDAAqE;AACrE,mDAAiD;AACjD,2EAAqE;AAGrE,MAAM,sBAAsB;IAY1B,IAAI,kBAAkB,CAAC,UAA2B;QAChD,IAAI,CAAC,mBAAmB,GAAG,IAAI,0CAAkB,CAAC,UAAU,CAAC,CAAC;IAChE,CAAC;IAED;QAIO,gBAAW,GAAG,KAAK,IAAmB,EAAE;YAC7C,sBAAU,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YACrD,MAAM,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,CAAC;YACzD,IAAI,CAAC,iCAAiC,EAAE,CAAC;QAC3C,CAAC,CAAC;QAEK,mBAAc,GAAG,GAAS,EAAE;YACjC,sBAAU,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YACxD,IAAI,IAAI,CAAC,mCAAmC,EAAE,CAAC;gBAC7C,aAAa,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;gBACxD,sBAAU,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;QACH,CAAC,CAAC;QAEM,sCAAiC,GAAG,GAAS,EAAE;YACrD,IAAI,CAAC,mCAAmC,GAAG,WAAW,CACpD,IAAI,CAAC,0BAA0B,EAC/B,0CAA2B,CAAC,mCAAmC,GAAG,EAAE,GAAG,IAAI,CAC5E,CAAC;YACF,sBAAU,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC,CAAC;QAEM,+BAA0B,GAAG,KAAK,IAAmB,EAAE;YAC7D,sBAAU,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YAC1D,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,mBAAmB,CAAC,kCAAkC,EAAE,EAAE,CAAC;oBAClE,MAAM,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,CAAC;gBAC3D,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,sBAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,6EAA6E;YACtG,CAAC;QACH,CAAC,CAAC;QAlCA,IAAI,CAAC,mBAAmB,GAAG,IAAI,0CAAkB,EAAE,CAAC;IACtD,CAAC;;AAbM,kCAAW,GAAG,GAA2B,EAAE;IAChD,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC;QACrC,sBAAsB,CAAC,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAC;IACjE,CAAC;IACD,OAAO,sBAAsB,CAAC,QAAQ,CAAC;AACzC,CAAC,AALiB,CAKhB;AA4CJ,MAAM,QAAQ,GAAG,sBAAsB,CAAC,WAAW,EAAE,CAAC;AACtD,kBAAe,QAAQ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { EntraIdAccessTokenConstants } from \"../common/constants.js\";\nimport { coreLogger } from \"../common/logger.js\";\nimport { EntraIdAccessToken } from \"../common/entraIdAccessToken.js\";\nimport type { TokenCredential } from \"@azure/identity\";\n\nclass PlaywrightServiceEntra {\n private _entraIdAccessTokenRotationInterval?: NodeJS.Timeout;\n private static instance: PlaywrightServiceEntra;\n private _entraIdAccessToken: EntraIdAccessToken;\n\n static getInstance = (): PlaywrightServiceEntra => {\n if (!PlaywrightServiceEntra.instance) {\n PlaywrightServiceEntra.instance = new PlaywrightServiceEntra();\n }\n return PlaywrightServiceEntra.instance;\n };\n\n set entraIdAccessToken(credential: TokenCredential) {\n this._entraIdAccessToken = new EntraIdAccessToken(credential);\n }\n\n constructor() {\n this._entraIdAccessToken = new EntraIdAccessToken();\n }\n\n public globalSetup = async (): Promise<void> => {\n coreLogger.info(\"Entra id access token setup start\");\n await this._entraIdAccessToken.fetchEntraIdAccessToken();\n this.entraIdGlobalSetupRotationHandler();\n };\n\n public globalTeardown = (): void => {\n coreLogger.info(\"Entra id access token teardown start\");\n if (this._entraIdAccessTokenRotationInterval) {\n clearInterval(this._entraIdAccessTokenRotationInterval);\n coreLogger.info(\"Entra id access token rotation interval cleared\");\n }\n };\n\n private entraIdGlobalSetupRotationHandler = (): void => {\n this._entraIdAccessTokenRotationInterval = setInterval(\n this.entraIdAccessTokenRotation,\n EntraIdAccessTokenConstants.ROTATION_INTERVAL_PERIOD_IN_MINUTES * 60 * 1000,\n );\n coreLogger.info(\"Entra id access token rotation handler setup done\");\n };\n\n private entraIdAccessTokenRotation = async (): Promise<void> => {\n coreLogger.info(\"Entra id access token rotation handler\");\n try {\n if (this._entraIdAccessToken.doesEntraIdAccessTokenNeedRotation()) {\n await this._entraIdAccessToken.fetchEntraIdAccessToken();\n }\n } catch (err) {\n coreLogger.error(err); // log error and continue if it's an intermittent issue (optimistic approach)\n }\n };\n}\n\nconst instance = PlaywrightServiceEntra.getInstance();\nexport default instance;\n"]}
1
+ {"version":3,"file":"playwrightServiceEntra.js","sourceRoot":"","sources":["../../../src/core/playwrightServiceEntra.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAElC,yDAAqE;AACrE,mDAAiD;AACjD,2EAAqE;AAGrE,MAAM,sBAAsB;IAClB,mCAAmC,CAAkB;IACrD,MAAM,CAAC,QAAQ,CAAyB;IACxC,mBAAmB,CAAqB;IAEhD,MAAM,CAAC,WAAW,GAAG,GAA2B,EAAE;QAChD,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC;YACrC,sBAAsB,CAAC,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAC;QACjE,CAAC;QACD,OAAO,sBAAsB,CAAC,QAAQ,CAAC;IACzC,CAAC,CAAC;IAEF,IAAI,kBAAkB,CAAC,UAA2B;QAChD,IAAI,CAAC,mBAAmB,GAAG,IAAI,0CAAkB,CAAC,UAAU,CAAC,CAAC;IAChE,CAAC;IAED;QACE,IAAI,CAAC,mBAAmB,GAAG,IAAI,0CAAkB,EAAE,CAAC;IACtD,CAAC;IAEM,WAAW,GAAG,KAAK,IAAmB,EAAE;QAC7C,sBAAU,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACrD,MAAM,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,CAAC;QACzD,IAAI,CAAC,iCAAiC,EAAE,CAAC;IAC3C,CAAC,CAAC;IAEK,cAAc,GAAG,GAAS,EAAE;QACjC,sBAAU,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,mCAAmC,EAAE,CAAC;YAC7C,aAAa,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YACxD,sBAAU,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CAAC;IAEM,iCAAiC,GAAG,GAAS,EAAE;QACrD,IAAI,CAAC,mCAAmC,GAAG,WAAW,CACpD,IAAI,CAAC,0BAA0B,EAC/B,0CAA2B,CAAC,mCAAmC,GAAG,EAAE,GAAG,IAAI,CAC5E,CAAC;QACF,sBAAU,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC,CAAC;IAEM,0BAA0B,GAAG,KAAK,IAAmB,EAAE;QAC7D,sBAAU,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QAC1D,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,mBAAmB,CAAC,kCAAkC,EAAE,EAAE,CAAC;gBAClE,MAAM,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,CAAC;YAC3D,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,sBAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,6EAA6E;QACtG,CAAC;IACH,CAAC,CAAC;;AAGJ,MAAM,QAAQ,GAAG,sBAAsB,CAAC,WAAW,EAAE,CAAC;AACtD,kBAAe,QAAQ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { EntraIdAccessTokenConstants } from \"../common/constants.js\";\nimport { coreLogger } from \"../common/logger.js\";\nimport { EntraIdAccessToken } from \"../common/entraIdAccessToken.js\";\nimport type { TokenCredential } from \"@azure/identity\";\n\nclass PlaywrightServiceEntra {\n private _entraIdAccessTokenRotationInterval?: NodeJS.Timeout;\n private static instance: PlaywrightServiceEntra;\n private _entraIdAccessToken: EntraIdAccessToken;\n\n static getInstance = (): PlaywrightServiceEntra => {\n if (!PlaywrightServiceEntra.instance) {\n PlaywrightServiceEntra.instance = new PlaywrightServiceEntra();\n }\n return PlaywrightServiceEntra.instance;\n };\n\n set entraIdAccessToken(credential: TokenCredential) {\n this._entraIdAccessToken = new EntraIdAccessToken(credential);\n }\n\n constructor() {\n this._entraIdAccessToken = new EntraIdAccessToken();\n }\n\n public globalSetup = async (): Promise<void> => {\n coreLogger.info(\"Entra id access token setup start\");\n await this._entraIdAccessToken.fetchEntraIdAccessToken();\n this.entraIdGlobalSetupRotationHandler();\n };\n\n public globalTeardown = (): void => {\n coreLogger.info(\"Entra id access token teardown start\");\n if (this._entraIdAccessTokenRotationInterval) {\n clearInterval(this._entraIdAccessTokenRotationInterval);\n coreLogger.info(\"Entra id access token rotation interval cleared\");\n }\n };\n\n private entraIdGlobalSetupRotationHandler = (): void => {\n this._entraIdAccessTokenRotationInterval = setInterval(\n this.entraIdAccessTokenRotation,\n EntraIdAccessTokenConstants.ROTATION_INTERVAL_PERIOD_IN_MINUTES * 60 * 1000,\n );\n coreLogger.info(\"Entra id access token rotation handler setup done\");\n };\n\n private entraIdAccessTokenRotation = async (): Promise<void> => {\n coreLogger.info(\"Entra id access token rotation handler\");\n try {\n if (this._entraIdAccessToken.doesEntraIdAccessTokenNeedRotation()) {\n await this._entraIdAccessToken.fetchEntraIdAccessToken();\n }\n } catch (err) {\n coreLogger.error(err); // log error and continue if it's an intermittent issue (optimistic approach)\n }\n };\n}\n\nconst instance = PlaywrightServiceEntra.getInstance();\nexport default instance;\n"]}
@@ -4,6 +4,10 @@
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.EntraTokenDetails = void 0;
6
6
  class EntraTokenDetails {
7
+ // userId
8
+ oid;
9
+ // name
10
+ name;
7
11
  }
8
12
  exports.EntraTokenDetails = EntraTokenDetails;
9
13
  //# sourceMappingURL=entraTokenDetails.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"entraTokenDetails.js","sourceRoot":"","sources":["../../../src/model/entraTokenDetails.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,MAAa,iBAAiB;CAK7B;AALD,8CAKC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport class EntraTokenDetails {\n // userId\n oid: string | undefined;\n // name\n name: string | undefined;\n}\n"]}
1
+ {"version":3,"file":"entraTokenDetails.js","sourceRoot":"","sources":["../../../src/model/entraTokenDetails.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,MAAa,iBAAiB;IAC5B,SAAS;IACT,GAAG,CAAqB;IACxB,OAAO;IACP,IAAI,CAAqB;CAC1B;AALD,8CAKC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport class EntraTokenDetails {\n // userId\n oid: string | undefined;\n // name\n name: string | undefined;\n}\n"]}
@@ -4,6 +4,14 @@
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.TokenType = exports.MPTTokenDetails = void 0;
6
6
  class MPTTokenDetails {
7
+ // accountId
8
+ aid;
9
+ // userId
10
+ oid;
11
+ // tokenId
12
+ id;
13
+ // userName
14
+ userName;
7
15
  }
8
16
  exports.MPTTokenDetails = MPTTokenDetails;
9
17
  var TokenType;
@@ -1 +1 @@
1
- {"version":3,"file":"mptTokenDetails.js","sourceRoot":"","sources":["../../../src/model/mptTokenDetails.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,MAAa,eAAe;CAS3B;AATD,0CASC;AAED,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,uCAAG,CAAA;IACH,2CAAK,CAAA;AACP,CAAC,EAHW,SAAS,yBAAT,SAAS,QAGpB","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport class MPTTokenDetails {\n // accountId\n aid: string | undefined;\n // userId\n oid: string | undefined;\n // tokenId\n id: string | undefined;\n // userName\n userName: string | undefined;\n}\n\nexport enum TokenType {\n MPT,\n ENTRA,\n}\n"]}
1
+ {"version":3,"file":"mptTokenDetails.js","sourceRoot":"","sources":["../../../src/model/mptTokenDetails.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,MAAa,eAAe;IAC1B,YAAY;IACZ,GAAG,CAAqB;IACxB,SAAS;IACT,GAAG,CAAqB;IACxB,UAAU;IACV,EAAE,CAAqB;IACvB,WAAW;IACX,QAAQ,CAAqB;CAC9B;AATD,0CASC;AAED,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,uCAAG,CAAA;IACH,2CAAK,CAAA;AACP,CAAC,EAHW,SAAS,yBAAT,SAAS,QAGpB","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport class MPTTokenDetails {\n // accountId\n aid: string | undefined;\n // userId\n oid: string | undefined;\n // tokenId\n id: string | undefined;\n // userName\n userName: string | undefined;\n}\n\nexport enum TokenType {\n MPT,\n ENTRA,\n}\n"]}
@@ -4,9 +4,19 @@
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.TestRunStatus = exports.TestResultStatus = exports.TestRunSummary = exports.Shard = void 0;
6
6
  class Shard {
7
+ shardId;
8
+ summary;
9
+ workers;
10
+ uploadCompleted;
7
11
  }
8
12
  exports.Shard = Shard;
9
13
  class TestRunSummary {
14
+ status;
15
+ startTime;
16
+ endTime;
17
+ totalTime;
18
+ errorMessages;
19
+ uploadMetadata;
10
20
  }
11
21
  exports.TestRunSummary = TestRunSummary;
12
22
  var TestResultStatus;
@@ -1 +1 @@
1
- {"version":3,"file":"shard.js","sourceRoot":"","sources":["../../../src/model/shard.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,MAAa,KAAK;CAKjB;AALD,sBAKC;AAED,MAAa,cAAc;CAO1B;AAPD,wCAOC;AAWD,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;IACjB,yCAAqB,CAAA;IACrB,+CAA2B,CAAA;AAC7B,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B;AAED,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,oDAAmC,CAAA;AACrC,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport class Shard {\n shardId!: string;\n summary!: TestRunSummary;\n workers?: number;\n uploadCompleted!: boolean;\n}\n\nexport class TestRunSummary {\n status?: string;\n startTime!: string;\n endTime?: string;\n totalTime?: number;\n errorMessages?: string[];\n uploadMetadata?: UploadMetadata;\n}\n\nexport type TestRunResultsSummary = {\n numTotalTests?: number;\n numFailedTests?: number;\n numSkippedTests?: number;\n numPassedTests?: number;\n numFlakyTests?: number;\n status?: TestResultStatus;\n};\n\nexport enum TestResultStatus {\n PASSED = \"passed\",\n FAILED = \"failed\",\n TIMEDOUT = \"timedout\",\n INTERRUPTED = \"interrupted\",\n}\n\nexport enum TestRunStatus {\n RUNNING = \"RUNNING\",\n CLIENT_COMPLETE = \"CLIENT_COMPLETE\",\n}\n\nexport type UploadMetadata = {\n numTestResults: number;\n numTotalAttachments: number;\n sizeTotalAttachments: number;\n};\n\nexport type ShardInfo = {\n total: number;\n};\n"]}
1
+ {"version":3,"file":"shard.js","sourceRoot":"","sources":["../../../src/model/shard.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,MAAa,KAAK;IAChB,OAAO,CAAU;IACjB,OAAO,CAAkB;IACzB,OAAO,CAAU;IACjB,eAAe,CAAW;CAC3B;AALD,sBAKC;AAED,MAAa,cAAc;IACzB,MAAM,CAAU;IAChB,SAAS,CAAU;IACnB,OAAO,CAAU;IACjB,SAAS,CAAU;IACnB,aAAa,CAAY;IACzB,cAAc,CAAkB;CACjC;AAPD,wCAOC;AAWD,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;IACjB,yCAAqB,CAAA;IACrB,+CAA2B,CAAA;AAC7B,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B;AAED,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,oDAAmC,CAAA;AACrC,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport class Shard {\n shardId!: string;\n summary!: TestRunSummary;\n workers?: number;\n uploadCompleted!: boolean;\n}\n\nexport class TestRunSummary {\n status?: string;\n startTime!: string;\n endTime?: string;\n totalTime?: number;\n errorMessages?: string[];\n uploadMetadata?: UploadMetadata;\n}\n\nexport type TestRunResultsSummary = {\n numTotalTests?: number;\n numFailedTests?: number;\n numSkippedTests?: number;\n numPassedTests?: number;\n numFlakyTests?: number;\n status?: TestResultStatus;\n};\n\nexport enum TestResultStatus {\n PASSED = \"passed\",\n FAILED = \"failed\",\n TIMEDOUT = \"timedout\",\n INTERRUPTED = \"interrupted\",\n}\n\nexport enum TestRunStatus {\n RUNNING = \"RUNNING\",\n CLIENT_COMPLETE = \"CLIENT_COMPLETE\",\n}\n\nexport type UploadMetadata = {\n numTestResults: number;\n numTotalAttachments: number;\n sizeTotalAttachments: number;\n};\n\nexport type ShardInfo = {\n total: number;\n};\n"]}
@@ -4,6 +4,10 @@
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.AccessLevel = exports.StorageUri = void 0;
6
6
  class StorageUri {
7
+ uri;
8
+ createdAt;
9
+ expiresAt;
10
+ accessLevel;
7
11
  constructor(uri, createdAt, expiresAt, accessLevel) {
8
12
  this.uri = uri;
9
13
  this.createdAt = createdAt;
@@ -1 +1 @@
1
- {"version":3,"file":"storageUri.js","sourceRoot":"","sources":["../../../src/model/storageUri.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,MAAa,UAAU;IAKrB,YAAY,GAAW,EAAE,SAAiB,EAAE,SAAiB,EAAE,WAAwB;QACrF,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AAXD,gCAWC;AAED,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,6CAAI,CAAA;IACJ,+CAAK,CAAA;IACL,uDAAS,CAAA;IACT,yEAAkB,CAAA;AACpB,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport class StorageUri {\n uri: string;\n createdAt: string;\n expiresAt: string;\n accessLevel: AccessLevel;\n constructor(uri: string, createdAt: string, expiresAt: string, accessLevel: AccessLevel) {\n this.uri = uri;\n this.createdAt = createdAt;\n this.expiresAt = expiresAt;\n this.accessLevel = accessLevel;\n }\n}\n\nexport enum AccessLevel {\n Read,\n Write,\n ReadWrite,\n ReadAddCreateWrite,\n}\n"]}
1
+ {"version":3,"file":"storageUri.js","sourceRoot":"","sources":["../../../src/model/storageUri.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,MAAa,UAAU;IACrB,GAAG,CAAS;IACZ,SAAS,CAAS;IAClB,SAAS,CAAS;IAClB,WAAW,CAAc;IACzB,YAAY,GAAW,EAAE,SAAiB,EAAE,SAAiB,EAAE,WAAwB;QACrF,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AAXD,gCAWC;AAED,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,6CAAI,CAAA;IACJ,+CAAK,CAAA;IACL,uDAAS,CAAA;IACT,yEAAkB,CAAA;AACpB,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport class StorageUri {\n uri: string;\n createdAt: string;\n expiresAt: string;\n accessLevel: AccessLevel;\n constructor(uri: string, createdAt: string, expiresAt: string, accessLevel: AccessLevel) {\n this.uri = uri;\n this.createdAt = createdAt;\n this.expiresAt = expiresAt;\n this.accessLevel = accessLevel;\n }\n}\n\nexport enum AccessLevel {\n Read,\n Write,\n ReadWrite,\n ReadAddCreateWrite,\n}\n"]}
@@ -4,6 +4,24 @@
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.TestResult = void 0;
6
6
  class TestResult {
7
+ testId;
8
+ testExecutionId;
9
+ testCombinationId;
10
+ runId;
11
+ shardId;
12
+ accountId;
13
+ suiteId;
14
+ testTitle;
15
+ suiteTitle;
16
+ fileName;
17
+ lineNumber;
18
+ retry;
19
+ status;
20
+ tags;
21
+ annotations;
22
+ webTestConfig;
23
+ resultsSummary;
24
+ artifactsPath;
7
25
  }
8
26
  exports.TestResult = TestResult;
9
27
  //# sourceMappingURL=testResult.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"testResult.js","sourceRoot":"","sources":["../../../src/model/testResult.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAIlC,MAAa,UAAU;CAmBtB;AAnBD,gCAmBC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { RawTestStep } from \"../common/types.js\";\n\nexport class TestResult {\n testId!: string;\n testExecutionId!: string;\n testCombinationId!: string;\n runId!: string;\n shardId!: string;\n accountId!: string;\n suiteId!: string;\n testTitle!: string;\n suiteTitle!: string;\n fileName!: string;\n lineNumber!: number;\n retry!: number;\n status!: string;\n tags!: string[];\n annotations!: string[];\n webTestConfig!: WebTestConfig;\n resultsSummary!: TestResultsSummary;\n artifactsPath!: string[];\n}\n\nexport type WebTestConfig = {\n jobName: string;\n projectName: string;\n browserType?: string;\n os: string;\n};\n\nexport type TestResultsSummary = {\n status: string;\n duration: number;\n startTime: string;\n attachmentsMetadata: string;\n};\n\nexport type RawTestResult = {\n steps?: RawTestStep[];\n errors?: string;\n stdErr?: string;\n stdOut?: string;\n};\n"]}
1
+ {"version":3,"file":"testResult.js","sourceRoot":"","sources":["../../../src/model/testResult.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAIlC,MAAa,UAAU;IACrB,MAAM,CAAU;IAChB,eAAe,CAAU;IACzB,iBAAiB,CAAU;IAC3B,KAAK,CAAU;IACf,OAAO,CAAU;IACjB,SAAS,CAAU;IACnB,OAAO,CAAU;IACjB,SAAS,CAAU;IACnB,UAAU,CAAU;IACpB,QAAQ,CAAU;IAClB,UAAU,CAAU;IACpB,KAAK,CAAU;IACf,MAAM,CAAU;IAChB,IAAI,CAAY;IAChB,WAAW,CAAY;IACvB,aAAa,CAAiB;IAC9B,cAAc,CAAsB;IACpC,aAAa,CAAY;CAC1B;AAnBD,gCAmBC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { RawTestStep } from \"../common/types.js\";\n\nexport class TestResult {\n testId!: string;\n testExecutionId!: string;\n testCombinationId!: string;\n runId!: string;\n shardId!: string;\n accountId!: string;\n suiteId!: string;\n testTitle!: string;\n suiteTitle!: string;\n fileName!: string;\n lineNumber!: number;\n retry!: number;\n status!: string;\n tags!: string[];\n annotations!: string[];\n webTestConfig!: WebTestConfig;\n resultsSummary!: TestResultsSummary;\n artifactsPath!: string[];\n}\n\nexport type WebTestConfig = {\n jobName: string;\n projectName: string;\n browserType?: string;\n os: string;\n};\n\nexport type TestResultsSummary = {\n status: string;\n duration: number;\n startTime: string;\n attachmentsMetadata: string;\n};\n\nexport type RawTestResult = {\n steps?: RawTestStep[];\n errors?: string;\n stdErr?: string;\n stdOut?: string;\n};\n"]}
@@ -4,9 +4,14 @@
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.TestRun = void 0;
6
6
  class TestRun {
7
- constructor() {
8
- this.cloudReportingEnabled = "true"; // Default value set to 'true'
9
- }
7
+ testRunId;
8
+ displayName;
9
+ creatorId;
10
+ creatorName;
11
+ startTime;
12
+ ciConfig;
13
+ testRunConfig;
14
+ cloudReportingEnabled = "true"; // Default value set to 'true'
10
15
  }
11
16
  exports.TestRun = TestRun;
12
17
  //# sourceMappingURL=testRun.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"testRun.js","sourceRoot":"","sources":["../../../src/model/testRun.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAIlC,MAAa,OAAO;IAApB;QAQE,0BAAqB,GAAW,MAAM,CAAC,CAAC,8BAA8B;IACxE,CAAC;CAAA;AATD,0BASC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ShardInfo } from \"./shard.js\";\n\nexport class TestRun {\n testRunId!: string;\n displayName!: string;\n creatorId!: string;\n creatorName?: string;\n startTime!: string;\n ciConfig?: CIConfig;\n testRunConfig?: TestRunConfig;\n cloudReportingEnabled: string = \"true\"; // Default value set to 'true'\n}\n\nexport type CIConfig = {\n ciProviderName: string;\n branch: string;\n author: string;\n commitId: string;\n revisionUrl: string;\n};\n\nexport type TestRunConfig = {\n workers: number;\n pwVersion: string;\n timeout: number;\n shards: ShardInfo;\n retries?: number;\n repeatEach?: number;\n testFramework: TestFramework;\n testType: string;\n testSdkLanguage: string;\n reporterPackageVersion: string;\n};\n\nexport type TestFramework = {\n name: string;\n version: string;\n runnerName: string;\n};\n"]}
1
+ {"version":3,"file":"testRun.js","sourceRoot":"","sources":["../../../src/model/testRun.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAIlC,MAAa,OAAO;IAClB,SAAS,CAAU;IACnB,WAAW,CAAU;IACrB,SAAS,CAAU;IACnB,WAAW,CAAU;IACrB,SAAS,CAAU;IACnB,QAAQ,CAAY;IACpB,aAAa,CAAiB;IAC9B,qBAAqB,GAAW,MAAM,CAAC,CAAC,8BAA8B;CACvE;AATD,0BASC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ShardInfo } from \"./shard.js\";\n\nexport class TestRun {\n testRunId!: string;\n displayName!: string;\n creatorId!: string;\n creatorName?: string;\n startTime!: string;\n ciConfig?: CIConfig;\n testRunConfig?: TestRunConfig;\n cloudReportingEnabled: string = \"true\"; // Default value set to 'true'\n}\n\nexport type CIConfig = {\n ciProviderName: string;\n branch: string;\n author: string;\n commitId: string;\n revisionUrl: string;\n};\n\nexport type TestRunConfig = {\n workers: number;\n pwVersion: string;\n timeout: number;\n shards: ShardInfo;\n retries?: number;\n repeatEach?: number;\n testFramework: TestFramework;\n testType: string;\n testSdkLanguage: string;\n reporterPackageVersion: string;\n};\n\nexport type TestFramework = {\n name: string;\n version: string;\n runnerName: string;\n};\n"]}