codeceptjs 3.5.12-beta.5 → 3.5.12-beta.6

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 (214) hide show
  1. package/lib/helper/Playwright.js +41 -22
  2. package/lib/helper/Puppeteer.js +23 -6
  3. package/lib/helper/WebDriver.js +23 -4
  4. package/lib/helper/errors/ElementAssertion.js +38 -0
  5. package/lib/locator.js +4 -13
  6. package/package.json +8 -10
  7. package/docs/advanced.md +0 -351
  8. package/docs/ai.md +0 -248
  9. package/docs/api.md +0 -323
  10. package/docs/basics.md +0 -979
  11. package/docs/bdd.md +0 -539
  12. package/docs/best.md +0 -237
  13. package/docs/books.md +0 -37
  14. package/docs/bootstrap.md +0 -135
  15. package/docs/build/ApiDataFactory.js +0 -410
  16. package/docs/build/Appium.js +0 -2027
  17. package/docs/build/Expect.js +0 -422
  18. package/docs/build/FileSystem.js +0 -228
  19. package/docs/build/GraphQL.js +0 -229
  20. package/docs/build/GraphQLDataFactory.js +0 -309
  21. package/docs/build/JSONResponse.js +0 -338
  22. package/docs/build/Mochawesome.js +0 -71
  23. package/docs/build/Nightmare.js +0 -2152
  24. package/docs/build/OpenAI.js +0 -126
  25. package/docs/build/Playwright.js +0 -5110
  26. package/docs/build/Protractor.js +0 -2706
  27. package/docs/build/Puppeteer.js +0 -3905
  28. package/docs/build/REST.js +0 -344
  29. package/docs/build/TestCafe.js +0 -2125
  30. package/docs/build/WebDriver.js +0 -4240
  31. package/docs/changelog.md +0 -2572
  32. package/docs/commands.md +0 -266
  33. package/docs/community-helpers.md +0 -58
  34. package/docs/configuration.md +0 -157
  35. package/docs/continuous-integration.md +0 -22
  36. package/docs/custom-helpers.md +0 -306
  37. package/docs/data.md +0 -379
  38. package/docs/detox.md +0 -235
  39. package/docs/docker.md +0 -136
  40. package/docs/email.md +0 -183
  41. package/docs/examples.md +0 -149
  42. package/docs/helpers/ApiDataFactory.md +0 -266
  43. package/docs/helpers/Appium.md +0 -1374
  44. package/docs/helpers/Detox.md +0 -586
  45. package/docs/helpers/Expect.md +0 -275
  46. package/docs/helpers/FileSystem.md +0 -152
  47. package/docs/helpers/GraphQL.md +0 -151
  48. package/docs/helpers/GraphQLDataFactory.md +0 -226
  49. package/docs/helpers/JSONResponse.md +0 -254
  50. package/docs/helpers/Mochawesome.md +0 -8
  51. package/docs/helpers/MockRequest.md +0 -377
  52. package/docs/helpers/Nightmare.md +0 -1305
  53. package/docs/helpers/OpenAI.md +0 -70
  54. package/docs/helpers/Playwright.md +0 -2759
  55. package/docs/helpers/Polly.md +0 -44
  56. package/docs/helpers/Protractor.md +0 -1769
  57. package/docs/helpers/Puppeteer-firefox.md +0 -86
  58. package/docs/helpers/Puppeteer.md +0 -2317
  59. package/docs/helpers/REST.md +0 -218
  60. package/docs/helpers/TestCafe.md +0 -1321
  61. package/docs/helpers/WebDriver.md +0 -2547
  62. package/docs/hooks.md +0 -340
  63. package/docs/index.md +0 -111
  64. package/docs/installation.md +0 -75
  65. package/docs/internal-api.md +0 -266
  66. package/docs/locators.md +0 -339
  67. package/docs/mobile-react-native-locators.md +0 -67
  68. package/docs/mobile.md +0 -338
  69. package/docs/pageobjects.md +0 -291
  70. package/docs/parallel.md +0 -400
  71. package/docs/playwright.md +0 -632
  72. package/docs/plugins.md +0 -1259
  73. package/docs/puppeteer.md +0 -316
  74. package/docs/quickstart.md +0 -162
  75. package/docs/react.md +0 -70
  76. package/docs/reports.md +0 -392
  77. package/docs/secrets.md +0 -36
  78. package/docs/shadow.md +0 -68
  79. package/docs/shared/keys.mustache +0 -31
  80. package/docs/shared/react.mustache +0 -1
  81. package/docs/testcafe.md +0 -174
  82. package/docs/translation.md +0 -247
  83. package/docs/tutorial.md +0 -271
  84. package/docs/typescript.md +0 -180
  85. package/docs/ui.md +0 -59
  86. package/docs/videos.md +0 -28
  87. package/docs/visual.md +0 -202
  88. package/docs/vue.md +0 -143
  89. package/docs/webapi/amOnPage.mustache +0 -11
  90. package/docs/webapi/appendField.mustache +0 -11
  91. package/docs/webapi/attachFile.mustache +0 -12
  92. package/docs/webapi/blur.mustache +0 -18
  93. package/docs/webapi/checkOption.mustache +0 -13
  94. package/docs/webapi/clearCookie.mustache +0 -9
  95. package/docs/webapi/clearField.mustache +0 -9
  96. package/docs/webapi/click.mustache +0 -25
  97. package/docs/webapi/clickLink.mustache +0 -8
  98. package/docs/webapi/closeCurrentTab.mustache +0 -7
  99. package/docs/webapi/closeOtherTabs.mustache +0 -8
  100. package/docs/webapi/dontSee.mustache +0 -11
  101. package/docs/webapi/dontSeeCheckboxIsChecked.mustache +0 -10
  102. package/docs/webapi/dontSeeCookie.mustache +0 -8
  103. package/docs/webapi/dontSeeCurrentUrlEquals.mustache +0 -10
  104. package/docs/webapi/dontSeeElement.mustache +0 -8
  105. package/docs/webapi/dontSeeElementInDOM.mustache +0 -8
  106. package/docs/webapi/dontSeeInCurrentUrl.mustache +0 -4
  107. package/docs/webapi/dontSeeInField.mustache +0 -11
  108. package/docs/webapi/dontSeeInSource.mustache +0 -8
  109. package/docs/webapi/dontSeeInTitle.mustache +0 -8
  110. package/docs/webapi/doubleClick.mustache +0 -13
  111. package/docs/webapi/downloadFile.mustache +0 -12
  112. package/docs/webapi/dragAndDrop.mustache +0 -9
  113. package/docs/webapi/dragSlider.mustache +0 -11
  114. package/docs/webapi/executeAsyncScript.mustache +0 -24
  115. package/docs/webapi/executeScript.mustache +0 -26
  116. package/docs/webapi/fillField.mustache +0 -16
  117. package/docs/webapi/focus.mustache +0 -13
  118. package/docs/webapi/forceClick.mustache +0 -28
  119. package/docs/webapi/forceRightClick.mustache +0 -18
  120. package/docs/webapi/grabAllWindowHandles.mustache +0 -7
  121. package/docs/webapi/grabAttributeFrom.mustache +0 -10
  122. package/docs/webapi/grabAttributeFromAll.mustache +0 -9
  123. package/docs/webapi/grabBrowserLogs.mustache +0 -9
  124. package/docs/webapi/grabCookie.mustache +0 -11
  125. package/docs/webapi/grabCssPropertyFrom.mustache +0 -11
  126. package/docs/webapi/grabCssPropertyFromAll.mustache +0 -10
  127. package/docs/webapi/grabCurrentUrl.mustache +0 -9
  128. package/docs/webapi/grabCurrentWindowHandle.mustache +0 -6
  129. package/docs/webapi/grabDataFromPerformanceTiming.mustache +0 -20
  130. package/docs/webapi/grabElementBoundingRect.mustache +0 -20
  131. package/docs/webapi/grabGeoLocation.mustache +0 -8
  132. package/docs/webapi/grabHTMLFrom.mustache +0 -10
  133. package/docs/webapi/grabHTMLFromAll.mustache +0 -9
  134. package/docs/webapi/grabNumberOfOpenTabs.mustache +0 -8
  135. package/docs/webapi/grabNumberOfVisibleElements.mustache +0 -9
  136. package/docs/webapi/grabPageScrollPosition.mustache +0 -8
  137. package/docs/webapi/grabPopupText.mustache +0 -5
  138. package/docs/webapi/grabSource.mustache +0 -8
  139. package/docs/webapi/grabTextFrom.mustache +0 -10
  140. package/docs/webapi/grabTextFromAll.mustache +0 -9
  141. package/docs/webapi/grabTitle.mustache +0 -8
  142. package/docs/webapi/grabValueFrom.mustache +0 -9
  143. package/docs/webapi/grabValueFromAll.mustache +0 -8
  144. package/docs/webapi/grabWebElement.mustache +0 -9
  145. package/docs/webapi/grabWebElements.mustache +0 -9
  146. package/docs/webapi/moveCursorTo.mustache +0 -12
  147. package/docs/webapi/openNewTab.mustache +0 -7
  148. package/docs/webapi/pressKey.mustache +0 -12
  149. package/docs/webapi/pressKeyDown.mustache +0 -12
  150. package/docs/webapi/pressKeyUp.mustache +0 -12
  151. package/docs/webapi/pressKeyWithKeyNormalization.mustache +0 -60
  152. package/docs/webapi/refreshPage.mustache +0 -6
  153. package/docs/webapi/resizeWindow.mustache +0 -6
  154. package/docs/webapi/rightClick.mustache +0 -14
  155. package/docs/webapi/saveElementScreenshot.mustache +0 -10
  156. package/docs/webapi/saveScreenshot.mustache +0 -12
  157. package/docs/webapi/say.mustache +0 -10
  158. package/docs/webapi/scrollIntoView.mustache +0 -11
  159. package/docs/webapi/scrollPageToBottom.mustache +0 -6
  160. package/docs/webapi/scrollPageToTop.mustache +0 -6
  161. package/docs/webapi/scrollTo.mustache +0 -12
  162. package/docs/webapi/see.mustache +0 -11
  163. package/docs/webapi/seeAttributesOnElements.mustache +0 -9
  164. package/docs/webapi/seeCheckboxIsChecked.mustache +0 -10
  165. package/docs/webapi/seeCookie.mustache +0 -8
  166. package/docs/webapi/seeCssPropertiesOnElements.mustache +0 -9
  167. package/docs/webapi/seeCurrentUrlEquals.mustache +0 -11
  168. package/docs/webapi/seeElement.mustache +0 -8
  169. package/docs/webapi/seeElementInDOM.mustache +0 -8
  170. package/docs/webapi/seeInCurrentUrl.mustache +0 -8
  171. package/docs/webapi/seeInField.mustache +0 -12
  172. package/docs/webapi/seeInPopup.mustache +0 -8
  173. package/docs/webapi/seeInSource.mustache +0 -7
  174. package/docs/webapi/seeInTitle.mustache +0 -8
  175. package/docs/webapi/seeNumberOfElements.mustache +0 -11
  176. package/docs/webapi/seeNumberOfVisibleElements.mustache +0 -10
  177. package/docs/webapi/seeTextEquals.mustache +0 -9
  178. package/docs/webapi/seeTitleEquals.mustache +0 -8
  179. package/docs/webapi/selectOption.mustache +0 -21
  180. package/docs/webapi/setCookie.mustache +0 -16
  181. package/docs/webapi/setGeoLocation.mustache +0 -12
  182. package/docs/webapi/switchTo.mustache +0 -9
  183. package/docs/webapi/switchToNextTab.mustache +0 -10
  184. package/docs/webapi/switchToPreviousTab.mustache +0 -10
  185. package/docs/webapi/type.mustache +0 -21
  186. package/docs/webapi/uncheckOption.mustache +0 -13
  187. package/docs/webapi/wait.mustache +0 -8
  188. package/docs/webapi/waitForClickable.mustache +0 -11
  189. package/docs/webapi/waitForDetached.mustache +0 -10
  190. package/docs/webapi/waitForElement.mustache +0 -11
  191. package/docs/webapi/waitForEnabled.mustache +0 -6
  192. package/docs/webapi/waitForFunction.mustache +0 -17
  193. package/docs/webapi/waitForInvisible.mustache +0 -10
  194. package/docs/webapi/waitForNumberOfTabs.mustache +0 -9
  195. package/docs/webapi/waitForText.mustache +0 -13
  196. package/docs/webapi/waitForValue.mustache +0 -10
  197. package/docs/webapi/waitForVisible.mustache +0 -10
  198. package/docs/webapi/waitInUrl.mustache +0 -9
  199. package/docs/webapi/waitNumberOfVisibleElements.mustache +0 -10
  200. package/docs/webapi/waitToHide.mustache +0 -10
  201. package/docs/webapi/waitUrlEquals.mustache +0 -10
  202. package/docs/webdriver.md +0 -701
  203. package/docs/wiki/Books-&-Posts.md +0 -27
  204. package/docs/wiki/Community-Helpers-&-Plugins.md +0 -53
  205. package/docs/wiki/Converting-Playwright-to-Istanbul-Coverage.md +0 -61
  206. package/docs/wiki/Examples.md +0 -145
  207. package/docs/wiki/Google-Summer-of-Code-(GSoC)-2020.md +0 -68
  208. package/docs/wiki/Home.md +0 -16
  209. package/docs/wiki/Migration-to-Appium-v2---CodeceptJS.md +0 -83
  210. package/docs/wiki/Release-Process.md +0 -24
  211. package/docs/wiki/Roadmap.md +0 -23
  212. package/docs/wiki/Tests.md +0 -1393
  213. package/docs/wiki/Upgrading-to-CodeceptJS-3.md +0 -153
  214. package/docs/wiki/Videos.md +0 -19
@@ -1,126 +0,0 @@
1
- const Helper = require('@codeceptjs/helper');
2
- const AiAssistant = require('../ai');
3
- const standardActingHelpers = require('../plugin/standardActingHelpers');
4
- const Container = require('../container');
5
- const { splitByChunks, minifyHtml } = require('../html');
6
-
7
- /**
8
- * OpenAI Helper for CodeceptJS.
9
- *
10
- * This helper class provides integration with the OpenAI GPT-3.5 or 4 language model for generating responses to questions or prompts within the context of web pages. It allows you to interact with the GPT-3.5 model to obtain intelligent responses based on HTML fragments or general prompts.
11
- * This helper should be enabled with any web helpers like Playwright or Puppeteer or WebDrvier to ensure the HTML context is available.
12
- *
13
- * ## Configuration
14
- *
15
- * This helper should be configured in codecept.json or codecept.conf.js
16
- *
17
- * * `chunkSize`: (optional, default: 80000) - The maximum number of characters to send to the OpenAI API at once. We split HTML fragments by 8000 chars to not exceed token limit. Increase this value if you use GPT-4.
18
- */
19
- class OpenAI extends Helper {
20
- constructor(config) {
21
- super(config);
22
- this.aiAssistant = new AiAssistant();
23
-
24
- this.options = {
25
- chunkSize: 80000,
26
- };
27
- this.options = { ...this.options, ...config };
28
- }
29
-
30
- _beforeSuite() {
31
- const helpers = Container.helpers();
32
-
33
- for (const helperName of standardActingHelpers) {
34
- if (Object.keys(helpers).indexOf(helperName) > -1) {
35
- this.helper = helpers[helperName];
36
- break;
37
- }
38
- }
39
- }
40
-
41
- /**
42
- * Asks the OpenAI GPT language model a question based on the provided prompt within the context of the current page's HTML.
43
- *
44
- * ```js
45
- * I.askGptOnPage('what does this page do?');
46
- * ```
47
- *
48
- * @async
49
- * @param {string} prompt - The question or prompt to ask the GPT model.
50
- * @returns {Promise<string>} - A Promise that resolves to the generated responses from the GPT model, joined by newlines.
51
- */
52
- async askGptOnPage(prompt) {
53
- const html = await this.helper.grabSource();
54
-
55
- const htmlChunks = splitByChunks(html, this.options.chunkSize);
56
-
57
- if (htmlChunks.length > 1) this.debug(`Splitting HTML into ${htmlChunks.length} chunks`);
58
-
59
- const responses = [];
60
-
61
- for (const chunk of htmlChunks) {
62
- const messages = [
63
- { role: 'user', content: prompt },
64
- { role: 'user', content: `Within this HTML: ${minifyHtml(chunk)}` },
65
- ];
66
-
67
- if (htmlChunks.length > 1) messages.push({ role: 'user', content: 'If action is not possible on this page, do not propose anything, I will send another HTML fragment' });
68
-
69
- const response = await this.aiAssistant.createCompletion(messages);
70
-
71
- console.log(response);
72
-
73
- responses.push(response);
74
- }
75
-
76
- return responses.join('\n\n');
77
- }
78
-
79
- /**
80
- * Asks the OpenAI GPT-3.5 language model a question based on the provided prompt within the context of a specific HTML fragment on the current page.
81
- *
82
- * ```js
83
- * I.askGptOnPageFragment('describe features of this screen', '.screen');
84
- * ```
85
- *
86
- * @async
87
- * @param {string} prompt - The question or prompt to ask the GPT-3.5 model.
88
- * @param {string} locator - The locator or selector used to identify the HTML fragment on the page.
89
- * @returns {Promise<string>} - A Promise that resolves to the generated response from the GPT model.
90
- */
91
- async askGptOnPageFragment(prompt, locator) {
92
- const html = await this.helper.grabHTMLFrom(locator);
93
-
94
- const messages = [
95
- { role: 'user', content: prompt },
96
- { role: 'user', content: `Within this HTML: ${minifyHtml(html)}` },
97
- ];
98
-
99
- const response = await this.aiAssistant.createCompletion(messages);
100
-
101
- console.log(response);
102
-
103
- return response;
104
- }
105
-
106
- /**
107
- * Send a general request to ChatGPT and return response.
108
- * @param {string} prompt
109
- * @returns {Promise<string>} - A Promise that resolves to the generated response from the GPT model.
110
- */
111
- async askGptGeneralPrompt(prompt) {
112
- const messages = [
113
- { role: 'user', content: prompt },
114
- ];
115
-
116
- const completion = await this.aiAssistant.createCompletion(messages);
117
-
118
- const response = completion?.data?.choices[0]?.message?.content;
119
-
120
- console.log(response);
121
-
122
- return response;
123
- }
124
- }
125
-
126
- module.exports = OpenAI;