donobu 2.17.1 → 2.18.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 (85) hide show
  1. package/dist/assets/generated/parameter-schemas.json +104 -4
  2. package/dist/assets/generated/version +1 -1
  3. package/dist/esm/assets/generated/parameter-schemas.json +104 -4
  4. package/dist/esm/assets/generated/version +1 -1
  5. package/dist/esm/lib/testExtension.d.ts.map +1 -1
  6. package/dist/esm/lib/testExtension.js +6 -1
  7. package/dist/esm/lib/testExtension.js.map +1 -1
  8. package/dist/esm/lib/utils/TestFileUpdater.d.ts +56 -0
  9. package/dist/esm/lib/utils/TestFileUpdater.d.ts.map +1 -0
  10. package/dist/esm/lib/utils/TestFileUpdater.js +224 -0
  11. package/dist/esm/lib/utils/TestFileUpdater.js.map +1 -0
  12. package/dist/esm/lib/utils/donobuTestStack.d.ts +0 -4
  13. package/dist/esm/lib/utils/donobuTestStack.d.ts.map +1 -1
  14. package/dist/esm/lib/utils/donobuTestStack.js +0 -1
  15. package/dist/esm/lib/utils/donobuTestStack.js.map +1 -1
  16. package/dist/esm/lib/utils/selfHealing.d.ts.map +1 -1
  17. package/dist/esm/lib/utils/selfHealing.js +53 -2
  18. package/dist/esm/lib/utils/selfHealing.js.map +1 -1
  19. package/dist/esm/managers/CodeGenerator.d.ts.map +1 -1
  20. package/dist/esm/managers/CodeGenerator.js +8 -1
  21. package/dist/esm/managers/CodeGenerator.js.map +1 -1
  22. package/dist/esm/managers/DonobuFlow.d.ts.map +1 -1
  23. package/dist/esm/managers/DonobuFlow.js +2 -1
  24. package/dist/esm/managers/DonobuFlow.js.map +1 -1
  25. package/dist/esm/managers/ToolManager.d.ts.map +1 -1
  26. package/dist/esm/managers/ToolManager.js +2 -0
  27. package/dist/esm/managers/ToolManager.js.map +1 -1
  28. package/dist/esm/models/BrowserFramework.d.ts +1 -1
  29. package/dist/esm/models/BrowserFramework.d.ts.map +1 -1
  30. package/dist/esm/models/BrowserFramework.js +4 -4
  31. package/dist/esm/models/BrowserFramework.js.map +1 -1
  32. package/dist/esm/persistence/flows/FlowsPersistenceSqlite.d.ts.map +1 -1
  33. package/dist/esm/persistence/flows/FlowsPersistenceSqlite.js.map +1 -1
  34. package/dist/esm/tools/ReplayableInteraction.d.ts +1 -1
  35. package/dist/esm/tools/ReplayableInteraction.d.ts.map +1 -1
  36. package/dist/esm/tools/ReplayableInteraction.js +13 -5
  37. package/dist/esm/tools/ReplayableInteraction.js.map +1 -1
  38. package/dist/esm/tools/RunAccessibilityTestTool.js +2 -2
  39. package/dist/esm/tools/SolveMfaChallenge.d.ts +7 -3
  40. package/dist/esm/tools/SolveMfaChallenge.d.ts.map +1 -1
  41. package/dist/esm/tools/SolveMfaChallenge.js +79 -100
  42. package/dist/esm/tools/SolveMfaChallenge.js.map +1 -1
  43. package/dist/lib/testExtension.d.ts.map +1 -1
  44. package/dist/lib/testExtension.js +6 -1
  45. package/dist/lib/testExtension.js.map +1 -1
  46. package/dist/lib/utils/TestFileUpdater.d.ts +56 -0
  47. package/dist/lib/utils/TestFileUpdater.d.ts.map +1 -0
  48. package/dist/lib/utils/TestFileUpdater.js +224 -0
  49. package/dist/lib/utils/TestFileUpdater.js.map +1 -0
  50. package/dist/lib/utils/donobuTestStack.d.ts +0 -4
  51. package/dist/lib/utils/donobuTestStack.d.ts.map +1 -1
  52. package/dist/lib/utils/donobuTestStack.js +0 -1
  53. package/dist/lib/utils/donobuTestStack.js.map +1 -1
  54. package/dist/lib/utils/selfHealing.d.ts.map +1 -1
  55. package/dist/lib/utils/selfHealing.js +53 -2
  56. package/dist/lib/utils/selfHealing.js.map +1 -1
  57. package/dist/managers/CodeGenerator.d.ts.map +1 -1
  58. package/dist/managers/CodeGenerator.js +8 -1
  59. package/dist/managers/CodeGenerator.js.map +1 -1
  60. package/dist/managers/DonobuFlow.d.ts.map +1 -1
  61. package/dist/managers/DonobuFlow.js +2 -1
  62. package/dist/managers/DonobuFlow.js.map +1 -1
  63. package/dist/managers/ToolManager.d.ts.map +1 -1
  64. package/dist/managers/ToolManager.js +2 -0
  65. package/dist/managers/ToolManager.js.map +1 -1
  66. package/dist/models/BrowserFramework.d.ts +1 -1
  67. package/dist/models/BrowserFramework.d.ts.map +1 -1
  68. package/dist/models/BrowserFramework.js +4 -4
  69. package/dist/models/BrowserFramework.js.map +1 -1
  70. package/dist/persistence/flows/FlowsPersistenceSqlite.d.ts.map +1 -1
  71. package/dist/persistence/flows/FlowsPersistenceSqlite.js.map +1 -1
  72. package/dist/tools/CreatePageObjectModel.d.ts +16 -0
  73. package/dist/tools/CreatePageObjectModel.d.ts.map +1 -0
  74. package/dist/tools/CreatePageObjectModel.js +33 -0
  75. package/dist/tools/CreatePageObjectModel.js.map +1 -0
  76. package/dist/tools/ReplayableInteraction.d.ts +1 -1
  77. package/dist/tools/ReplayableInteraction.d.ts.map +1 -1
  78. package/dist/tools/ReplayableInteraction.js +13 -5
  79. package/dist/tools/ReplayableInteraction.js.map +1 -1
  80. package/dist/tools/RunAccessibilityTestTool.js +2 -2
  81. package/dist/tools/SolveMfaChallenge.d.ts +7 -3
  82. package/dist/tools/SolveMfaChallenge.d.ts.map +1 -1
  83. package/dist/tools/SolveMfaChallenge.js +79 -100
  84. package/dist/tools/SolveMfaChallenge.js.map +1 -1
  85. package/package.json +2 -1
@@ -88,7 +88,7 @@
88
88
  "type": "object",
89
89
  "additionalProperties": false
90
90
  },
91
- "__@validatorSymbol@6486": {
91
+ "__@validatorSymbol@6492": {
92
92
  "description": "Used to mark validator functions so we can support both Zod and custom schemas.",
93
93
  "type": "boolean",
94
94
  "const": true
@@ -100,15 +100,15 @@
100
100
  "$ref": "#/definitions/JSONSchema7",
101
101
  "description": "The JSON Schema for the schema. It is passed to the providers."
102
102
  },
103
- "__@schemaSymbol@6491": {
103
+ "__@schemaSymbol@6497": {
104
104
  "description": "Used to mark schemas so we can support both Zod and custom schemas.",
105
105
  "type": "boolean",
106
106
  "const": true
107
107
  }
108
108
  },
109
109
  "required": [
110
- "__@schemaSymbol@6491",
111
- "__@validatorSymbol@6486",
110
+ "__@schemaSymbol@6497",
111
+ "__@validatorSymbol@6492",
112
112
  "_type",
113
113
  "jsonSchema"
114
114
  ]
@@ -2077,6 +2077,106 @@
2077
2077
  "additionalProperties": false,
2078
2078
  "required": ["rationale", "text"]
2079
2079
  },
2080
+ "SolveMfaChallengeToolCoreParameters": {
2081
+ "type": "object",
2082
+ "properties": {
2083
+ "gmailClientId": {
2084
+ "description": "The Gmail client ID. This should be passed using an environment variable\nreference like {{$.env.GMAIL_CLIENT_ID}} or similar.",
2085
+ "type": "string"
2086
+ },
2087
+ "gmailClientSecret": {
2088
+ "description": "The Gmail client secret. This should be passed using an environment\nvariable reference like {{$.env.GMAIL_CLIENT_SECRET}} or similar.",
2089
+ "type": "string"
2090
+ },
2091
+ "gmailRefreshToken": {
2092
+ "description": "The Gmail refresh token. This should be passed using an environment\nvariable reference like {{$.env.GMAIL_REFRESH_TOKEN}} or similar.",
2093
+ "type": "string"
2094
+ }
2095
+ },
2096
+ "additionalProperties": false,
2097
+ "required": ["gmailClientId", "gmailClientSecret", "gmailRefreshToken"]
2098
+ },
2099
+ "SelectorBasedSolveMfaChallengeToolParameters": {
2100
+ "type": "object",
2101
+ "properties": {
2102
+ "selector": {
2103
+ "description": "A query structure used to resolve specific a HTML element in a webpage.",
2104
+ "type": "object",
2105
+ "properties": {
2106
+ "element": {
2107
+ "description": "An prioritized list of element selectors to use to attempt to resolve the\ndesired element, going from most specific to least specific. The first\nelement selector that is successfully used, wins, and the rest are ignored.",
2108
+ "type": "array",
2109
+ "items": {
2110
+ "type": "string"
2111
+ }
2112
+ },
2113
+ "frame": {
2114
+ "description": "A selector for the corresponding frame of the element to select.\nIf null, this means the primary frame of the page is used.",
2115
+ "type": "string"
2116
+ }
2117
+ },
2118
+ "additionalProperties": false,
2119
+ "required": ["element", "frame"]
2120
+ },
2121
+ "gmailClientId": {
2122
+ "description": "The Gmail client ID. This should be passed using an environment variable\nreference like {{$.env.GMAIL_CLIENT_ID}} or similar.",
2123
+ "type": "string"
2124
+ },
2125
+ "gmailClientSecret": {
2126
+ "description": "The Gmail client secret. This should be passed using an environment\nvariable reference like {{$.env.GMAIL_CLIENT_SECRET}} or similar.",
2127
+ "type": "string"
2128
+ },
2129
+ "gmailRefreshToken": {
2130
+ "description": "The Gmail refresh token. This should be passed using an environment\nvariable reference like {{$.env.GMAIL_REFRESH_TOKEN}} or similar.",
2131
+ "type": "string"
2132
+ }
2133
+ },
2134
+ "additionalProperties": false,
2135
+ "required": [
2136
+ "gmailClientId",
2137
+ "gmailClientSecret",
2138
+ "gmailRefreshToken",
2139
+ "selector"
2140
+ ]
2141
+ },
2142
+ "AnnotationBasedSolveMfaChallengeToolParameters": {
2143
+ "type": "object",
2144
+ "properties": {
2145
+ "whyThisAnnotation": {
2146
+ "description": "The reason why this particular numbered annotation was chosen.",
2147
+ "type": "string"
2148
+ },
2149
+ "annotation": {
2150
+ "description": "The numbered annotation of the element to click.",
2151
+ "type": "string"
2152
+ },
2153
+ "rationale": {
2154
+ "description": "The reason why this particular action is being taken. It MUST relate to the overall objective.",
2155
+ "type": "string"
2156
+ },
2157
+ "gmailClientId": {
2158
+ "description": "The Gmail client ID. This should be passed using an environment variable\nreference like {{$.env.GMAIL_CLIENT_ID}} or similar.",
2159
+ "type": "string"
2160
+ },
2161
+ "gmailClientSecret": {
2162
+ "description": "The Gmail client secret. This should be passed using an environment\nvariable reference like {{$.env.GMAIL_CLIENT_SECRET}} or similar.",
2163
+ "type": "string"
2164
+ },
2165
+ "gmailRefreshToken": {
2166
+ "description": "The Gmail refresh token. This should be passed using an environment\nvariable reference like {{$.env.GMAIL_REFRESH_TOKEN}} or similar.",
2167
+ "type": "string"
2168
+ }
2169
+ },
2170
+ "additionalProperties": false,
2171
+ "required": [
2172
+ "annotation",
2173
+ "gmailClientId",
2174
+ "gmailClientSecret",
2175
+ "gmailRefreshToken",
2176
+ "rationale",
2177
+ "whyThisAnnotation"
2178
+ ]
2179
+ },
2080
2180
  "AggregateExtractedStreetviewDataToolCoreParameters": {
2081
2181
  "type": "object",
2082
2182
  "additionalProperties": false,
@@ -1 +1 @@
1
- 1153
1
+ 1159
@@ -88,7 +88,7 @@
88
88
  "type": "object",
89
89
  "additionalProperties": false
90
90
  },
91
- "__@validatorSymbol@6486": {
91
+ "__@validatorSymbol@6492": {
92
92
  "description": "Used to mark validator functions so we can support both Zod and custom schemas.",
93
93
  "type": "boolean",
94
94
  "const": true
@@ -100,15 +100,15 @@
100
100
  "$ref": "#/definitions/JSONSchema7",
101
101
  "description": "The JSON Schema for the schema. It is passed to the providers."
102
102
  },
103
- "__@schemaSymbol@6491": {
103
+ "__@schemaSymbol@6497": {
104
104
  "description": "Used to mark schemas so we can support both Zod and custom schemas.",
105
105
  "type": "boolean",
106
106
  "const": true
107
107
  }
108
108
  },
109
109
  "required": [
110
- "__@schemaSymbol@6491",
111
- "__@validatorSymbol@6486",
110
+ "__@schemaSymbol@6497",
111
+ "__@validatorSymbol@6492",
112
112
  "_type",
113
113
  "jsonSchema"
114
114
  ]
@@ -2077,6 +2077,106 @@
2077
2077
  "additionalProperties": false,
2078
2078
  "required": ["rationale", "text"]
2079
2079
  },
2080
+ "SolveMfaChallengeToolCoreParameters": {
2081
+ "type": "object",
2082
+ "properties": {
2083
+ "gmailClientId": {
2084
+ "description": "The Gmail client ID. This should be passed using an environment variable\nreference like {{$.env.GMAIL_CLIENT_ID}} or similar.",
2085
+ "type": "string"
2086
+ },
2087
+ "gmailClientSecret": {
2088
+ "description": "The Gmail client secret. This should be passed using an environment\nvariable reference like {{$.env.GMAIL_CLIENT_SECRET}} or similar.",
2089
+ "type": "string"
2090
+ },
2091
+ "gmailRefreshToken": {
2092
+ "description": "The Gmail refresh token. This should be passed using an environment\nvariable reference like {{$.env.GMAIL_REFRESH_TOKEN}} or similar.",
2093
+ "type": "string"
2094
+ }
2095
+ },
2096
+ "additionalProperties": false,
2097
+ "required": ["gmailClientId", "gmailClientSecret", "gmailRefreshToken"]
2098
+ },
2099
+ "SelectorBasedSolveMfaChallengeToolParameters": {
2100
+ "type": "object",
2101
+ "properties": {
2102
+ "selector": {
2103
+ "description": "A query structure used to resolve specific a HTML element in a webpage.",
2104
+ "type": "object",
2105
+ "properties": {
2106
+ "element": {
2107
+ "description": "An prioritized list of element selectors to use to attempt to resolve the\ndesired element, going from most specific to least specific. The first\nelement selector that is successfully used, wins, and the rest are ignored.",
2108
+ "type": "array",
2109
+ "items": {
2110
+ "type": "string"
2111
+ }
2112
+ },
2113
+ "frame": {
2114
+ "description": "A selector for the corresponding frame of the element to select.\nIf null, this means the primary frame of the page is used.",
2115
+ "type": "string"
2116
+ }
2117
+ },
2118
+ "additionalProperties": false,
2119
+ "required": ["element", "frame"]
2120
+ },
2121
+ "gmailClientId": {
2122
+ "description": "The Gmail client ID. This should be passed using an environment variable\nreference like {{$.env.GMAIL_CLIENT_ID}} or similar.",
2123
+ "type": "string"
2124
+ },
2125
+ "gmailClientSecret": {
2126
+ "description": "The Gmail client secret. This should be passed using an environment\nvariable reference like {{$.env.GMAIL_CLIENT_SECRET}} or similar.",
2127
+ "type": "string"
2128
+ },
2129
+ "gmailRefreshToken": {
2130
+ "description": "The Gmail refresh token. This should be passed using an environment\nvariable reference like {{$.env.GMAIL_REFRESH_TOKEN}} or similar.",
2131
+ "type": "string"
2132
+ }
2133
+ },
2134
+ "additionalProperties": false,
2135
+ "required": [
2136
+ "gmailClientId",
2137
+ "gmailClientSecret",
2138
+ "gmailRefreshToken",
2139
+ "selector"
2140
+ ]
2141
+ },
2142
+ "AnnotationBasedSolveMfaChallengeToolParameters": {
2143
+ "type": "object",
2144
+ "properties": {
2145
+ "whyThisAnnotation": {
2146
+ "description": "The reason why this particular numbered annotation was chosen.",
2147
+ "type": "string"
2148
+ },
2149
+ "annotation": {
2150
+ "description": "The numbered annotation of the element to click.",
2151
+ "type": "string"
2152
+ },
2153
+ "rationale": {
2154
+ "description": "The reason why this particular action is being taken. It MUST relate to the overall objective.",
2155
+ "type": "string"
2156
+ },
2157
+ "gmailClientId": {
2158
+ "description": "The Gmail client ID. This should be passed using an environment variable\nreference like {{$.env.GMAIL_CLIENT_ID}} or similar.",
2159
+ "type": "string"
2160
+ },
2161
+ "gmailClientSecret": {
2162
+ "description": "The Gmail client secret. This should be passed using an environment\nvariable reference like {{$.env.GMAIL_CLIENT_SECRET}} or similar.",
2163
+ "type": "string"
2164
+ },
2165
+ "gmailRefreshToken": {
2166
+ "description": "The Gmail refresh token. This should be passed using an environment\nvariable reference like {{$.env.GMAIL_REFRESH_TOKEN}} or similar.",
2167
+ "type": "string"
2168
+ }
2169
+ },
2170
+ "additionalProperties": false,
2171
+ "required": [
2172
+ "annotation",
2173
+ "gmailClientId",
2174
+ "gmailClientSecret",
2175
+ "gmailRefreshToken",
2176
+ "rationale",
2177
+ "whyThisAnnotation"
2178
+ ]
2179
+ },
2080
2180
  "AggregateExtractedStreetviewDataToolCoreParameters": {
2081
2181
  "type": "object",
2082
2182
  "additionalProperties": false,
@@ -1 +1 @@
1
- 1153
1
+ 1159
@@ -1 +1 @@
1
- {"version":3,"file":"testExtension.d.ts","sourceRoot":"","sources":["../../../src/lib/testExtension.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAmEjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,cAAc,iBAAiB,CAAC;AAIhC,eAAO,MAAM,IAAI;mBACA,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;gBACrD,SAAS;UACf,kBAAkB;wGAqaxB,CAAC"}
1
+ {"version":3,"file":"testExtension.d.ts","sourceRoot":"","sources":["../../../src/lib/testExtension.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAmEjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGpE,cAAc,iBAAiB,CAAC;AAIhC,eAAO,MAAM,IAAI;mBACA,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;gBACrD,SAAS;UACf,kBAAkB;wGA8axB,CAAC"}
@@ -46,6 +46,7 @@ const InputTextTool_1 = require("../tools/InputTextTool");
46
46
  const PressKeyTool_1 = require("../tools/PressKeyTool");
47
47
  const RunAccessibilityTestTool_1 = require("../tools/RunAccessibilityTestTool");
48
48
  const ScrollPageTool_1 = require("../tools/ScrollPageTool");
49
+ const BrowserFramework_1 = require("../models/BrowserFramework");
49
50
  __exportStar(require("playwright/test"), exports);
50
51
  const PLACEHOLDER_FLOW_URL = 'https://example.com';
51
52
  exports.test = test_1.test.extend({
@@ -84,6 +85,7 @@ exports.test = test_1.test.extend({
84
85
  name: testInfo.title,
85
86
  createdWithDonobuVersion: MiscUtils_1.MiscUtils.DONOBU_VERSION,
86
87
  browser: {
88
+ persistState: true,
87
89
  using: {
88
90
  type: 'device',
89
91
  deviceName: 'Desktop Chromium',
@@ -347,7 +349,7 @@ exports.test = test_1.test.extend({
347
349
  try {
348
350
  const persistenceLayer = await donobu.flowsPersistenceFactory.createPersistenceLayer();
349
351
  if (page._donobuFlowMetadata) {
350
- // Update metadata with final status
352
+ // Update metadata with final status.
351
353
  page._donobuFlowMetadata.state = isTestRunFailed
352
354
  ? 'FAILED'
353
355
  : 'SUCCESS';
@@ -357,6 +359,9 @@ exports.test = test_1.test.extend({
357
359
  body: JSON.stringify(page._donobuFlowMetadata, null, 2),
358
360
  contentType: 'application/json',
359
361
  });
362
+ // Persist the final browser state.
363
+ const browserState = await BrowserFramework_1.BrowserFramework.getBrowserStorageState(page.context());
364
+ await persistenceLayer.setBrowserState(page._donobuFlowMetadata.id, browserState);
360
365
  }
361
366
  }
362
367
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"testExtension.js","sourceRoot":"","sources":["../../../src/lib/testExtension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testExtension.js","sourceRoot":"","sources":["../../../src/lib/testExtension.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAsD;AACtD,+BAAkC;AAElC,oDAAiD;AAEjD,oEAAiE;AACjE,8DAA2D;AAC3D,6DAAiE;AACjE,qDAA+C;AAC/C,wCAA2C;AAC3C,kDAA+C;AAC/C,uEAAoE;AAEpE,sDAAoE;AACpE,8DAGkC;AAElC,6DAA0D;AAC1D,2DAAwD;AACxD,6EAA0E;AAE1E,yDAAsD;AACtD,sEAGsC;AACtC,oEAGqC;AACrC,4CAA4C;AAC5C,uDAAyD;AAEzD,wEAGuC;AACvC,8FAGkD;AAClD,oDAA2E;AAC3E,8EAG0C;AAC1C,4EAGyC;AACzC,kDAG4B;AAC5B,0FAAuF;AACvF,0DAGgC;AAChC,wDAG+B;AAC/B,gFAA6E;AAC7E,4DAGiC;AAEjC,iEAA8D;AAE9D,kDAAgC;AAEhC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAEtC,QAAA,IAAI,GAAG,WAAI,CAAC,MAAM,CAI5B;IACD,+EAA+E;IAC/E,SAAS,EAAE;QACT,SAAS,EAAE,UAAU;QACrB,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,oDAAoD;KACvE;IACD,oCAAoC;IACpC,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;QACjD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,SAAS,GAAG,MAAM,IAAA,wCAA2B,GAAE,CAAC;YAClD,CAAC;YAAC,OAAO,MAAM,EAAE,CAAC;gBAChB,+DAA+D;gBAC/D,uEAAuE;YACzE,CAAC;QACH,CAAC;QACD,8CAA8C;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAA,wCAAsB,GAAE,CAAC;QAC9C,MAAM,iCAAe,CAAC,wBAAwB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,IAAI,oBAAoB,GAAG,KAAK,CAAC;QACjC,IAAI,eAAe,GAAG,KAAK,CAAC;QAE5B,KAAK,UAAU,eAAe;YAC5B,IAAI,oBAAoB,EAAE,CAAC;gBACzB,OAAO;YACT,CAAC;YAED,MAAM,gBAAgB,GACpB,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC9B,OAAO,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;YAChC,CAAC,CAAC,EAAE,WAAW,IAAI,IAAI,CAAC;YAC1B,6EAA6E;YAC7E,MAAM,oBAAoB,GACxB,uCAAkB,CAAC,8BAA8B,CAC/C,gBAAgB,EAChB,IAAI,CACL,CAAC;YACJ,MAAM,sBAAsB,GAAiB;gBAC3C,EAAE,EAAE,IAAA,SAAI,GAAE;gBACV,IAAI,EAAE,QAAQ,CAAC,KAAK;gBACpB,wBAAwB,EAAE,qBAAS,CAAC,cAAc;gBAClD,OAAO,EAAE;oBACP,YAAY,EAAE,IAAI;oBAClB,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,kBAAkB;wBAC9B,QAAQ,EAAE,IAAI;qBACf;iBACF;gBACD,OAAO,EAAE,oBAAoB;gBAC7B,aAAa,EAAE,IAAI;gBACnB,wBAAwB,EAAE,KAAK;gBAC/B,WAAW,EAAE,IAAI;gBACjB,sBAAsB,EAAE,CAAC;gBACzB,OAAO,EAAE,eAAe;gBACxB,qBAAqB,EAAE,KAAK;gBAC5B,WAAW,EAAE,IAAI;gBACjB,aAAa,EAAE,oBAAoB;gBACnC,gBAAgB,EAAE,gBAAgB;gBAClC,YAAY,EAAE,EAAE;gBAChB,gBAAgB,EAAE,IAAI;gBACtB,MAAM,EAAE,IAAI;gBACZ,eAAe,EAAE,CAAC;gBAClB,oBAAoB,EAAE,CAAC;gBACvB,UAAU,EAAE,CAAC;gBACb,aAAa,EAAE,CAAC;gBAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;gBAC/B,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,gBAAgB;gBACvB,SAAS,EAAE,IAAI;aAChB,CAAC;YACF,MAAM,gBAAgB,GACpB,MAAM,MAAM,CAAC,uBAAuB,CAAC,sBAAsB,EAAE,CAAC;YAChE,MAAM,gBAAgB,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;YAC3D,IAAI,CAAC,mBAAmB,GAAG,sBAAsB,CAAC;YAClD,oBAAoB,GAAG,IAAI,CAAC;QAC9B,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;QAC/B,yEAAyE;QACzE,sEAAsE;QACtE,0EAA0E;QAC1E,IAAI,CAAC,IAAI,GAAG,KAAK,EACf,GAAW,EACX,OAIC,EACD,EAAE;YACF,MAAM,eAAe,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC3C,MAAM,gBAAgB,GACpB,MAAM,MAAM,CAAC,uBAAuB,CAAC,sBAAsB,EAAE,CAAC;YAChE,+DAA+D;YAC/D,oBAAoB;YACpB,IAAI,IAAI,CAAC,mBAAmB,CAAC,aAAa,KAAK,oBAAoB,EAAE,CAAC;gBACpE,IAAI,CAAC,mBAAmB,GAAG;oBACzB,GAAG,IAAI,CAAC,mBAAmB;oBAC3B,aAAa,EAAE,GAAG;iBACnB,CAAC;gBACF,MAAM,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC/D,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;gBACzD,MAAM,iCAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;gBACjD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;gBACrC,MAAM,aAAa,GAAG,MAAM,iCAAe,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBACjE,MAAM,eAAe,GAAG,MAAM,gBAAgB,CAAC,cAAc,CAC3D,MAAM,EACN,aAAa,CACd,CAAC;gBACF,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBACzC,MAAM,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE;oBAC1C,EAAE,EAAE,qBAAS,CAAC,qBAAqB,EAAE;oBACrC,QAAQ,EAAE,iCAAe,CAAC,IAAI;oBAC9B,UAAU,EAAE;wBACV,GAAG,EAAE,GAAG;qBAC+B;oBACzC,OAAO,EAAE;wBACP,YAAY,EAAE,IAAI;wBAClB,MAAM,EAAE,6BAA6B,GAAG,EAAE;wBAC1C,QAAQ,EAAE;4BACR,SAAS,EAAE,SAAS;4BACpB,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;yBACxB;qBACF;oBACD,eAAe,EAAE,eAAe;oBAChC,IAAI,EAAE,GAAG;oBACT,SAAS,EAAE,SAAS;oBACpB,WAAW,EAAE,WAAW;iBACN,CAAC,CAAC;gBACtB,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,aAAa,GAAG,MAAM,iCAAe,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBACjE,MAAM,eAAe,GAAG,MAAM,gBAAgB,CAAC,cAAc,CAC3D,MAAM,EACN,aAAa,CACd,CAAC;gBACF,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBACzC,MAAM,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE;oBAC1C,EAAE,EAAE,qBAAS,CAAC,qBAAqB,EAAE;oBACrC,QAAQ,EAAE,aAAa;oBACvB,UAAU,EAAE;wBACV,GAAG,EAAE,GAAG;qBAC+B;oBACzC,OAAO,EAAE;wBACP,YAAY,EAAE,KAAK;wBACnB,MAAM,EAAE,WAAW,OAAO,KAAK,KAAM,KAAa,CAAC,OAAO,EAAE;wBAC5D,QAAQ,EAAE,IAAI;qBACf;oBACD,eAAe,EAAE,eAAe;oBAChC,IAAI,EAAE,GAAG;oBACT,SAAS,EAAE,SAAS;oBACpB,WAAW,EAAE,WAAW;iBACN,CAAC,CAAC;gBAEtB,yCAAyC;gBACzC,eAAe,GAAG,IAAI,CAAC;gBACvB,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,GAAG,GAAG,KAAK,EACd,QAAgB,EAChB,UAAgB,EAChB,iBAA6C,EAC7C,EAAE;YACF,MAAM,eAAe,EAAE,CAAC;YACxB,IAAI,cAAc,GAAqB,IAAI,CAAC;YAE5C,IAAI,iBAAiB,EAAE,CAAC;gBACtB,IAAI,CAAC,CAAC,iBAAiB,YAAY,qBAAS,CAAC,EAAE,CAAC;oBAC9C,cAAc,GAAG,IAAI,qCAAiB,CAAC,iBAAiB,CAAC,CAAC;gBAC5D,CAAC;qBAAM,CAAC;oBACN,cAAc,GAAG,iBAAiB,CAAC;gBACrC,CAAC;YACH,CAAC;iBAAM,IAAI,SAAS,EAAE,CAAC;gBACrB,cAAc,GAAG,SAAS,CAAC;YAC7B,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,6BAAa,EAAE,CAAC;YAC1C,MAAM,YAAY,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAChE,MAAM,gBAAgB,GACpB,MAAM,MAAM,CAAC,uBAAuB,CAAC,sBAAsB,EAAE,CAAC;YAChE,MAAM,YAAY,GAAG,UAAU;gBAC7B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBACxC,CAAC,CAAC,EAAE,CAAC;YACP,YAAY,CAAC,SAAS,KAAtB,YAAY,CAAC,SAAS,GAAK,EAAE,EAAC;YAC9B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,YAAY,CACpD,IAAI,CAAC,mBAAmB,CAAC,OAAO,IAAI,EAAE,CACvC,CAAC;YACF,MAAM,eAAe,GAAG;gBACtB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,OAAO,EAAE,OAAO;gBAChB,aAAa,EAAE,aAAa;gBAC5B,YAAY,EAAE,YAAY;gBAC1B,WAAW,EAAE,gBAAgB;gBAC7B,SAAS,EAAE,cAAc;gBACzB,qBAAqB,EAAE,IAAI,6CAAqB,CAAC,CAAC,CAAC;gBACnD,iBAAiB,EAAE,EAAE;gBACrB,gBAAgB,EAAE,EAAE;gBACpB,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;gBACvB,QAAQ,EAAE,IAAI,CAAC,mBAAmB;gBAClC,UAAU,EACR,YAAY,CAAC,UAAU,IAAI,qBAAS,CAAC,qBAAqB,EAAE;aACrC,CAAC;YAE5B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,yBAAW,CAAC,yBAAW,CAAC,SAAS,CAAC,CAAC,UAAU,CACpE,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,KAAK,CACN,CAAC;gBAEF,MAAM,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAC7D,MAAM,gBAAgB,CAAC,YAAY,CACjC,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAC3B,MAAM,CACP,CAAC;gBAEF,yCAAyC;gBACzC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;oBACjC,MAAM,IAAI,KAAK,CACb,GAAG,QAAQ,sBAAsB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CACnE,CAAC;gBACJ,CAAC;gBAED,OAAO,MAAM,CAAC,OAAO,CAAC;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,mEAAmE;gBACnE,eAAe,GAAG,IAAI,CAAC;gBACvB,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,eAAe,GAAG,KAAK,EAC1B,MAAyC,EACzC,iBAA6C,EAC7C,EAAE;YACF,OAAO,IAAI,CAAC,GAAG,CAAC,yCAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACvE,CAAC,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,KAAK,EACzB,MAAwC,EACxC,iBAA6C,EAC7C,EAAE;YACF,OAAO,IAAI,CAAC,GAAG,CAAC,uCAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACtE,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,KAAK,EAAE,GAAW,EAAiB,EAAE;YACpD,sEAAsE;YACtE,0EAA0E;YAC1E,qCAAqC;YACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,iDAAuB,CAAC,IAAI,EAAE;gBAC1D,MAAM,EAAE,GAAG;aACoC,CAAC,CAAC;YAEnD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,oEAAoE;gBACpE,sEAAsE;gBACtE,WAAW;gBACX,OAAO,IAAI;qBACR,OAAO,EAAE;qBACT,KAAK,EAAE;qBACP,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,CAAE,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,KAAK,EAC7B,MAAqD,EACrD,EAAE;YACF,OAAO,IAAI,CAAC,GAAG,CAAC,+CAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,KAAK,EAAE,MAAwC,EAAE,EAAE;YACrE,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,KAAK,EAC7B,iBAA6C,EAC7C,EAAE;YACF,OAAO,IAAI,CAAC,GAAG,CAAC,6DAA6B,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QACzE,CAAC,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,KAAK,EAClB,MAGC,EACD,iBAA6C,EACX,EAAE;YACpC,MAAM,eAAe,EAAE,CAAC;YAExB,IAAI,cAAc,GAAqB,IAAI,CAAC;YAE5C,IAAI,iBAAiB,EAAE,CAAC;gBACtB,IAAI,CAAC,CAAC,iBAAiB,YAAY,qBAAS,CAAC,EAAE,CAAC;oBAC9C,cAAc,GAAG,IAAI,qCAAiB,CAAC,iBAAiB,CAAC,CAAC;gBAC5D,CAAC;qBAAM,CAAC;oBACN,cAAc,GAAG,iBAAiB,CAAC;gBACrC,CAAC;YACH,CAAC;iBAAM,IAAI,SAAS,EAAE,CAAC;gBACrB,cAAc,GAAG,SAAS,CAAC;YAC7B,CAAC;YAED,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,eAAe,GAAG,IAAI,CAAC;gBACvB,MAAM,KAAK,CACT,iEAAiE,CAClE,CAAC;YACJ,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,gBAAgB,GACpB,MAAM,MAAM,CAAC,uBAAuB,CAAC,sBAAsB,EAAE,CAAC;gBAChE,MAAM,eAAe,GAAG,MAAM,gBAAgB,CAAC,YAAY,CACzD,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAC5B,CAAC;gBACF,MAAM,uBAAuB,GAAG,MAAM,IAAA,4BAAe,EACnD,MAAM,CAAC,WAAW;oBAChB,wDAAwD,EAC1D,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,eAAe,EACf,cAAc,CACf,CAAC;gBACF,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC1D,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC;gBACjE,MAAM,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAC7D,OAAO,uBAAuB,CAAC,MAAM,CAAC;YACxC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,eAAe,GAAG,IAAI,CAAC;gBACvB,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,KAAK,EAC3B,MAAmD,EACnD,EAAE;YACF,OAAO,IAAI,CAAC,GAAG,CAAC,2CAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC,CAAC;QACF,IAAI,CAAC,2BAA2B,GAAG,KAAK,EACtC,MAA8D,EAC9D,EAAE;YACF,OAAO,IAAI,CAAC,GAAG,CAAC,iEAA+B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAChE,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,KAAK,EAAE,MAA4C,EAAE,EAAE;YACtE,OAAO,IAAI,CAAC,GAAG,CAAC,6BAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,KAAK,EAAE,MAA2C,EAAE,EAAE;YACpE,OAAO,IAAI,CAAC,GAAG,CAAC,2BAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC,CAAC;QACF,IAAI,CAAC,oBAAoB,GAAG,KAAK,IAAI,EAAE;YACrC,OAAO,IAAI,CAAC,GAAG,CAAC,mDAAwB,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,MAAoC,EAAE,EAAE;YAC3D,OAAO,IAAI,CAAC,GAAG,CAAC,+BAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,KAAK,EACzB,MAAgC,EAChC,iBAA6B,EAC7B,EAAE;YACF,OAAO,IAAI,CAAC,GAAG,CAAC,uBAAU,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;QAC9D,CAAC,CAAC;QAEF,IAAI,CAAC;YACH,2DAA2D;YAC3D,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;YAEhB,qDAAqD;YACrD,8DAA8D;YAC9D,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACnE,eAAe,GAAG,IAAI,CAAC;YACzB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sEAAsE;YACtE,eAAe,GAAG,IAAI,CAAC;YACvB,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBACH,MAAM,gBAAgB,GACpB,MAAM,MAAM,CAAC,uBAAuB,CAAC,sBAAsB,EAAE,CAAC;gBAEhE,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC7B,qCAAqC;oBACrC,IAAI,CAAC,mBAAmB,CAAC,KAAK,GAAG,eAAe;wBAC9C,CAAC,CAAC,QAAQ;wBACV,CAAC,CAAC,SAAS,CAAC;oBACd,IAAI,CAAC,mBAAmB,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;oBAC5D,MAAM,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBAC7D,MAAM,QAAQ,CAAC,MAAM,CAAC,yBAAyB,EAAE;wBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;wBACvD,WAAW,EAAE,kBAAkB;qBAChC,CAAC,CAAC;oBACH,mCAAmC;oBACnC,MAAM,YAAY,GAAG,MAAM,mCAAgB,CAAC,sBAAsB,CAChE,IAAI,CAAC,OAAO,EAAE,CACf,CAAC;oBACF,MAAM,gBAAgB,CAAC,eAAe,CACpC,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAC3B,YAAY,CACb,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,oDAAoD;gBACpD,kBAAS,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YACvD,CAAC;YAED,MAAM,uBAAuB,GAC3B,OAAO,CAAC,GAAG,CAAC,uBAAa,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,CAAC;YAE7D,IACE,eAAe;gBACf,CAAC,uBAAuB,KAAK,MAAM,IAAI,uBAAuB,KAAK,GAAG,CAAC,EACvE,CAAC;gBACD,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,kBAAS,CAAC,IAAI,CACZ,uDAAuD,CACxD,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,IAAA,sBAAQ,EAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAChE,CAAC;gBAAC,OAAO,aAAa,EAAE,CAAC;oBACvB,kBAAS,CAAC,KAAK,CAAC,qCAAqC,EAAE,aAAa,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * A class that handles the updating of test files based on test failures.
3
+ */
4
+ export declare class TestFileUpdater {
5
+ /**
6
+ * Updates a specific test case in a test file with new test code.
7
+ *
8
+ * @param testFilePath The path to the test file to update
9
+ * @param testName The name of the test case to update
10
+ * @param newTestCode The new test code to replace the old test with
11
+ * @param options Options for updating the file
12
+ * @returns True if the update was successful, false otherwise
13
+ */
14
+ static updateTestCase(testFilePath: string, testName: string, newTestCode: string): Promise<boolean>;
15
+ /**
16
+ * Extracts a specific test case from source code.
17
+ *
18
+ * @param sourceFile The TypeScript source file
19
+ * @param sourceCode The original source code string
20
+ * @param testName The name of the test to extract
21
+ * @returns The extracted test code or null if not found
22
+ */
23
+ private static extractTestCase;
24
+ /**
25
+ * Finds a specific test case in the original code and replaces it with new code.
26
+ *
27
+ * @param sourceFile The TypeScript source file
28
+ * @param sourceCode The original source code string
29
+ * @param testName The name of the test to replace
30
+ * @param newTestCode The new test code to insert
31
+ * @returns The updated source code
32
+ */
33
+ private static findAndReplaceTestCase;
34
+ /**
35
+ * Checks if a node is a test definition (test or it function call).
36
+ */
37
+ private static isTestNode;
38
+ /**
39
+ * Gets the title string from a test node.
40
+ */
41
+ private static getTestTitle;
42
+ /**
43
+ * Checks if a test title matches the target test name.
44
+ */
45
+ private static testTitleMatches;
46
+ /**
47
+ * Updates a test file based on a Playwright JSON reporter output.
48
+ *
49
+ * @param jsonReportPath Path to the Playwright JSON report
50
+ * @param testFilePath Path to the test file to update (if not specified, will be extracted from the report)
51
+ * @param newTestCode The new test code
52
+ * @returns True if the update was successful, false otherwise
53
+ */
54
+ static updateFromPlaywrightReport(jsonReportPath: string, newTestCode: string, testFilePath?: string): Promise<boolean>;
55
+ }
56
+ //# sourceMappingURL=TestFileUpdater.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestFileUpdater.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/TestFileUpdater.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,qBAAa,eAAe;IAC1B;;;;;;;;OAQG;WACiB,cAAc,CAChC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC;IAuEnB;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAsB9B;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IA2BrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAUzB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAc3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAM/B;;;;;;;OAOG;WACiB,0BAA0B,CAC5C,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC;CAmDpB"}
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.TestFileUpdater = void 0;
40
+ const fs = __importStar(require("fs"));
41
+ const typescript_1 = __importDefault(require("typescript"));
42
+ const Logger_1 = require("../../utils/Logger");
43
+ /**
44
+ * A class that handles the updating of test files based on test failures.
45
+ */
46
+ class TestFileUpdater {
47
+ /**
48
+ * Updates a specific test case in a test file with new test code.
49
+ *
50
+ * @param testFilePath The path to the test file to update
51
+ * @param testName The name of the test case to update
52
+ * @param newTestCode The new test code to replace the old test with
53
+ * @param options Options for updating the file
54
+ * @returns True if the update was successful, false otherwise
55
+ */
56
+ static async updateTestCase(testFilePath, testName, newTestCode) {
57
+ try {
58
+ // Verify the test file exists
59
+ if (!fs.existsSync(testFilePath)) {
60
+ Logger_1.appLogger.error(`Test file does not exist: ${testFilePath}`);
61
+ return false;
62
+ }
63
+ // Read the original test file
64
+ const originalTestCode = await fs.promises.readFile(testFilePath, 'utf8');
65
+ // Parse the original and new test code
66
+ const sourceFile = typescript_1.default.createSourceFile(testFilePath, originalTestCode, typescript_1.default.ScriptTarget.Latest, true);
67
+ const newTestSourceFile = typescript_1.default.createSourceFile('new-test.ts', newTestCode, typescript_1.default.ScriptTarget.Latest, true);
68
+ // Extract the new test case
69
+ const extractedNewTest = this.extractTestCase(newTestSourceFile, newTestCode, testName);
70
+ if (!extractedNewTest) {
71
+ Logger_1.appLogger.warn(`Could not extract the new test case "${testName}" from the provided code`);
72
+ await fs.promises.writeFile(testFilePath, newTestCode, 'utf8');
73
+ Logger_1.appLogger.info(`Replaced entire test file with new code`);
74
+ return true;
75
+ }
76
+ // Find and replace the old test case
77
+ const updatedCode = this.findAndReplaceTestCase(sourceFile, originalTestCode, testName, extractedNewTest);
78
+ if (updatedCode === originalTestCode) {
79
+ Logger_1.appLogger.warn(`Could not find the test case "${testName}" in the original file`);
80
+ await fs.promises.writeFile(testFilePath, newTestCode, 'utf8');
81
+ Logger_1.appLogger.info(`Replaced entire test file with new code`);
82
+ return true;
83
+ }
84
+ // Write the updated code back to the test file
85
+ await fs.promises.writeFile(testFilePath, updatedCode, 'utf8');
86
+ Logger_1.appLogger.info(`Successfully updated test case "${testName}" in ${testFilePath}`);
87
+ return true;
88
+ }
89
+ catch (error) {
90
+ Logger_1.appLogger.error(`Error updating test file ${testFilePath}:`, error);
91
+ return false;
92
+ }
93
+ }
94
+ /**
95
+ * Extracts a specific test case from source code.
96
+ *
97
+ * @param sourceFile The TypeScript source file
98
+ * @param sourceCode The original source code string
99
+ * @param testName The name of the test to extract
100
+ * @returns The extracted test code or null if not found
101
+ */
102
+ static extractTestCase(sourceFile, sourceCode, testName) {
103
+ let extractedTest = null;
104
+ typescript_1.default.forEachChild(sourceFile, (node) => {
105
+ if (extractedTest)
106
+ return; // Already found
107
+ if (this.isTestNode(node)) {
108
+ const title = this.getTestTitle(node);
109
+ if (title && this.testTitleMatches(title, testName)) {
110
+ extractedTest = sourceCode.substring(node.pos, node.end);
111
+ }
112
+ }
113
+ });
114
+ return extractedTest;
115
+ }
116
+ /**
117
+ * Finds a specific test case in the original code and replaces it with new code.
118
+ *
119
+ * @param sourceFile The TypeScript source file
120
+ * @param sourceCode The original source code string
121
+ * @param testName The name of the test to replace
122
+ * @param newTestCode The new test code to insert
123
+ * @returns The updated source code
124
+ */
125
+ static findAndReplaceTestCase(sourceFile, sourceCode, testName, newTestCode) {
126
+ let updatedCode = sourceCode;
127
+ typescript_1.default.forEachChild(sourceFile, (node) => {
128
+ if (updatedCode !== sourceCode)
129
+ return; // Already replaced
130
+ if (this.isTestNode(node)) {
131
+ const title = this.getTestTitle(node);
132
+ if (title && this.testTitleMatches(title, testName)) {
133
+ // Replace the test
134
+ updatedCode =
135
+ sourceCode.substring(0, node.pos) +
136
+ newTestCode +
137
+ sourceCode.substring(node.end);
138
+ }
139
+ }
140
+ });
141
+ return updatedCode;
142
+ }
143
+ /**
144
+ * Checks if a node is a test definition (test or it function call).
145
+ */
146
+ static isTestNode(node) {
147
+ return (typescript_1.default.isExpressionStatement(node) &&
148
+ typescript_1.default.isCallExpression(node.expression) &&
149
+ typescript_1.default.isIdentifier(node.expression.expression) &&
150
+ (node.expression.expression.text === 'test' ||
151
+ node.expression.expression.text === 'it'));
152
+ }
153
+ /**
154
+ * Gets the title string from a test node.
155
+ */
156
+ static getTestTitle(node) {
157
+ if (!this.isTestNode(node))
158
+ return null;
159
+ const callExpr = node
160
+ .expression;
161
+ const args = callExpr.arguments;
162
+ if (args.length >= 1 && typescript_1.default.isStringLiteral(args[0])) {
163
+ return args[0].text;
164
+ }
165
+ return null;
166
+ }
167
+ /**
168
+ * Checks if a test title matches the target test name.
169
+ */
170
+ static testTitleMatches(title, testName) {
171
+ return (title === testName || testName.includes(title) || title.includes(testName));
172
+ }
173
+ /**
174
+ * Updates a test file based on a Playwright JSON reporter output.
175
+ *
176
+ * @param jsonReportPath Path to the Playwright JSON report
177
+ * @param testFilePath Path to the test file to update (if not specified, will be extracted from the report)
178
+ * @param newTestCode The new test code
179
+ * @returns True if the update was successful, false otherwise
180
+ */
181
+ static async updateFromPlaywrightReport(jsonReportPath, newTestCode, testFilePath) {
182
+ try {
183
+ // Read and parse the Playwright report
184
+ const reportContent = await fs.promises.readFile(jsonReportPath, 'utf8');
185
+ const testResults = JSON.parse(reportContent);
186
+ // Extract failed test information
187
+ const failedTests = [];
188
+ for (const suite of testResults.suites || []) {
189
+ const file = suite.file;
190
+ for (const spec of suite.specs || []) {
191
+ if (!spec.ok) {
192
+ for (const test of spec.tests || []) {
193
+ if (!test.ok) {
194
+ failedTests.push({
195
+ file,
196
+ title: `${spec.title} ${test.title}`.trim(),
197
+ });
198
+ }
199
+ }
200
+ }
201
+ }
202
+ }
203
+ if (failedTests.length === 0) {
204
+ Logger_1.appLogger.warn('No failed tests found in the report');
205
+ return false;
206
+ }
207
+ // If test file path is not specified, use the first failed test's file
208
+ const targetTestFilePath = testFilePath || failedTests[0].file;
209
+ const targetTestName = failedTests[0].title;
210
+ if (!targetTestFilePath) {
211
+ Logger_1.appLogger.error('Could not determine test file path from report');
212
+ return false;
213
+ }
214
+ // Update the test file
215
+ return await this.updateTestCase(targetTestFilePath, targetTestName, newTestCode);
216
+ }
217
+ catch (error) {
218
+ Logger_1.appLogger.error(`Error updating from Playwright report:`, error);
219
+ return false;
220
+ }
221
+ }
222
+ }
223
+ exports.TestFileUpdater = TestFileUpdater;
224
+ //# sourceMappingURL=TestFileUpdater.js.map