@eclipse-che/che-e2e 7.124.0-next-c1c068e → 7.124.0-next-6307b25

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.
@@ -21,6 +21,7 @@ export const BASE_TEST_CONSTANTS: {
21
21
  OCP_VERSION: string;
22
22
  TESTING_APPLICATION_VERSION: string;
23
23
  TEST_ENVIRONMENT: string;
24
+ TS_AI_PROVIDER_API_KEY: string;
24
25
  TS_DEBUG_MODE: boolean;
25
26
  TS_LOAD_TESTS: string;
26
27
  TS_PLATFORM: string;
@@ -137,6 +138,11 @@ export const BASE_TEST_CONSTANTS: {
137
138
  */
138
139
  DELETE_WORKSPACE_ON_SUCCESSFUL_TEST: process.env.DELETE_WORKSPACE_ON_SUCCESSFUL_TEST !== 'false',
139
140
 
141
+ /**
142
+ * API key for AI Provider smoke test (e.g. OpenAI API key)
143
+ */
144
+ TS_AI_PROVIDER_API_KEY: process.env.TS_AI_PROVIDER_API_KEY || '',
145
+
140
146
  /**
141
147
  * constant, which prolong timeout constants for local debug.
142
148
  */
@@ -101,6 +101,10 @@ exports.BASE_TEST_CONSTANTS = {
101
101
  * true by default.
102
102
  */
103
103
  DELETE_WORKSPACE_ON_SUCCESSFUL_TEST: process.env.DELETE_WORKSPACE_ON_SUCCESSFUL_TEST !== 'false',
104
+ /**
105
+ * API key for AI Provider smoke test (e.g. OpenAI API key)
106
+ */
107
+ TS_AI_PROVIDER_API_KEY: process.env.TS_AI_PROVIDER_API_KEY || '',
104
108
  /**
105
109
  * constant, which prolong timeout constants for local debug.
106
110
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BASE_TEST_CONSTANTS.js","sourceRoot":"","sources":["../../constants/BASE_TEST_CONSTANTS.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;wEAQwE;AACxE,IAAY,QAGX;AAHD,WAAY,QAAQ;IACnB,mCAAuB,CAAA;IACvB,qCAAyB,CAAA;AAC1B,CAAC,EAHW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAGnB;AAEY,QAAA,mBAAmB,GAqB5B;IACH;;OAEG;IACH,oBAAoB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IAEnI;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE;IAEtC;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;IAE1C;;OAEG;IACH,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE;IAEpD;;OAEG;IACH,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;IAEhD;;OAEG;IACH,wBAAwB,EAAE,GAAW,EAAE;QACtC,OAAO,2BAAmB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,WAAW,CAAC;YACpE,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,2BAAmB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACzD,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,SAAS,CAAC;IACf,CAAC;IACD;;OAEG;IACH,2BAA2B,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,MAAM;IAE9E;;;OAGG;IACH,iCAAiC,EAAE,OAAO,CAAC,GAAG,CAAC,iCAAiC,KAAK,MAAM;IAE3F;;OAEG;IACH,uBAAuB,EAAE,GAAY,EAAE,CAAC,2BAAmB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAEnG;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,QAAQ,CAAC,SAAS;IAE1D;;;OAGG;IACH,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,UAAU;IAEhE;;OAEG;IACH,kCAAkC,EAAE,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,cAAc;IAEpG;;OAEG;IACH,iCAAiC,EAAE,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,QAAQ;IAE5F;;OAEG;IACH,qCAAqC,EAAE,OAAO,CAAC,GAAG,CAAC,qCAAqC,IAAI,gBAAgB;IAE5G;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO;IAEnD;;OAEG;IACH,+BAA+B,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B,KAAK,MAAM;IAEvF;;OAEG;IACH,gCAAgC,EAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC,KAAK,MAAM;IAEzF;;OAEG;IACH,+BAA+B,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B,KAAK,MAAM;IAEvF;;;OAGG;IACH,mCAAmC,EAAE,OAAO,CAAC,GAAG,CAAC,mCAAmC,KAAK,OAAO;IAEhG;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM;CACnD,CAAC"}
1
+ {"version":3,"file":"BASE_TEST_CONSTANTS.js","sourceRoot":"","sources":["../../constants/BASE_TEST_CONSTANTS.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;wEAQwE;AACxE,IAAY,QAGX;AAHD,WAAY,QAAQ;IACnB,mCAAuB,CAAA;IACvB,qCAAyB,CAAA;AAC1B,CAAC,EAHW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAGnB;AAEY,QAAA,mBAAmB,GAsB5B;IACH;;OAEG;IACH,oBAAoB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IAEnI;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE;IAEtC;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;IAE1C;;OAEG;IACH,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE;IAEpD;;OAEG;IACH,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;IAEhD;;OAEG;IACH,wBAAwB,EAAE,GAAW,EAAE;QACtC,OAAO,2BAAmB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,WAAW,CAAC;YACpE,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,2BAAmB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACzD,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,SAAS,CAAC;IACf,CAAC;IACD;;OAEG;IACH,2BAA2B,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,MAAM;IAE9E;;;OAGG;IACH,iCAAiC,EAAE,OAAO,CAAC,GAAG,CAAC,iCAAiC,KAAK,MAAM;IAE3F;;OAEG;IACH,uBAAuB,EAAE,GAAY,EAAE,CAAC,2BAAmB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAEnG;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,QAAQ,CAAC,SAAS;IAE1D;;;OAGG;IACH,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,UAAU;IAEhE;;OAEG;IACH,kCAAkC,EAAE,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,cAAc;IAEpG;;OAEG;IACH,iCAAiC,EAAE,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,QAAQ;IAE5F;;OAEG;IACH,qCAAqC,EAAE,OAAO,CAAC,GAAG,CAAC,qCAAqC,IAAI,gBAAgB;IAE5G;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO;IAEnD;;OAEG;IACH,+BAA+B,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B,KAAK,MAAM;IAEvF;;OAEG;IACH,gCAAgC,EAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC,KAAK,MAAM;IAEzF;;OAEG;IACH,+BAA+B,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B,KAAK,MAAM;IAEvF;;;OAGG;IACH,mCAAmC,EAAE,OAAO,CAAC,GAAG,CAAC,mCAAmC,KAAK,OAAO;IAEhG;;OAEG;IACH,sBAAsB,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE;IAEhE;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM;CACnD,CAAC"}
@@ -136,6 +136,32 @@ let CreateWorkspace = CreateWorkspace_1 = class CreateWorkspace {
136
136
  await this.driverHelper.wait(TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM); // wait for any potential UI updates before clicking
137
137
  await this.driverHelper.scrollToAndClick(CreateWorkspace_1.CREATE_NEW_WORKPACE_CHECKBOX, timeout);
138
138
  }
139
+ async waitAiProviderSectionVisible(timeout = TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT) {
140
+ Logger_1.Logger.debug();
141
+ await this.driverHelper.waitVisibility(CreateWorkspace_1.AI_PROVIDER_SELECTOR_HEADING, timeout);
142
+ }
143
+ async expandChooseAiProviderSection() {
144
+ Logger_1.Logger.debug();
145
+ const toggle = CreateWorkspace_1.AI_PROVIDER_CHOOSE_TOGGLE;
146
+ await this.driverHelper.waitAndClick(toggle);
147
+ await this.driverHelper.waitAttributeValue(toggle, 'aria-expanded', 'true', TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT);
148
+ }
149
+ async isAiProviderSectionVisible() {
150
+ Logger_1.Logger.debug();
151
+ return await this.driverHelper.isVisible(CreateWorkspace_1.AI_PROVIDER_SELECTOR_HEADING);
152
+ }
153
+ async isAiProviderCardVisible(providerId) {
154
+ Logger_1.Logger.debug(`providerId: "${providerId}"`);
155
+ return await this.driverHelper.isVisible(this.getAiProviderCardLocator(providerId));
156
+ }
157
+ async waitAiProviderCardVisible(providerId, timeout = TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT) {
158
+ Logger_1.Logger.debug(`providerId: "${providerId}"`);
159
+ await this.driverHelper.waitVisibility(this.getAiProviderCardLocator(providerId), timeout);
160
+ }
161
+ async isAiProviderKeyConfiguredBadgeVisible() {
162
+ Logger_1.Logger.debug();
163
+ return await this.driverHelper.isVisible(CreateWorkspace_1.AI_PROVIDER_KEY_CONFIGURED_BADGE);
164
+ }
139
165
  getEditorsDropdownListLocator(sampleName) {
140
166
  return selenium_webdriver_1.By.xpath(`//div[text()=\'${sampleName}\']//parent::article//button`);
141
167
  }
@@ -159,6 +185,10 @@ let CreateWorkspace = CreateWorkspace_1 = class CreateWorkspace {
159
185
  Logger_1.Logger.trace(`sampleName: ${sampleName}, used default editor`);
160
186
  return selenium_webdriver_1.By.xpath(`//div[contains(@id, 'sample-card') and text()='${sampleName}']`);
161
187
  }
188
+ getAiProviderCardLocator(providerId) {
189
+ const cardId = providerId.replace(/\//g, '-');
190
+ return selenium_webdriver_1.By.id(`ai-provider-card-${cardId}`);
191
+ }
162
192
  getGitBranchListItemLocator(branchName) {
163
193
  return selenium_webdriver_1.By.xpath(`//ul[@role="listbox"]//span[text()="${branchName}"]`);
164
194
  }
@@ -170,6 +200,9 @@ CreateWorkspace.GIT_FILTER_BRANCHES = selenium_webdriver_1.By.css('input[placeho
170
200
  CreateWorkspace.CREATE_AND_OPEN_BUTTON = selenium_webdriver_1.By.id('create-and-open-button');
171
201
  CreateWorkspace.CREATE_NEW_WORKPACE_CHECKBOX = selenium_webdriver_1.By.css('label[for="create-new-if-exist-switch"]');
172
202
  CreateWorkspace.CREATE_NEW_WORKPACE_CHECKBOX_VALUE = selenium_webdriver_1.By.id('create-new-if-exist-switch');
203
+ CreateWorkspace.AI_PROVIDER_SELECTOR_HEADING = selenium_webdriver_1.By.xpath('//h3[text()="AI Provider Selector"]');
204
+ CreateWorkspace.AI_PROVIDER_CHOOSE_TOGGLE = selenium_webdriver_1.By.id('accordion-item-ai-selector');
205
+ CreateWorkspace.AI_PROVIDER_KEY_CONFIGURED_BADGE = selenium_webdriver_1.By.xpath('//span[text()=" Key configured"]');
173
206
  CreateWorkspace = CreateWorkspace_1 = __decorate([
174
207
  (0, inversify_1.injectable)(),
175
208
  __param(0, (0, inversify_1.inject)(inversify_types_1.CLASSES.DriverHelper)),
@@ -1 +1 @@
1
- {"version":3,"file":"CreateWorkspace.js","sourceRoot":"","sources":["../../../pageobjects/dashboard/CreateWorkspace.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;;;;;;;;;;;;;;;AAExE,yCAA+C;AAC/C,mEAAwD;AACxD,2DAAwD;AACxD,2DAAyD;AACzD,+CAA4C;AAC5C,yEAAsE;AACtE,6EAA0E;AAC1E,yDAAsD;AAG/C,IAAM,eAAe,uBAArB,MAAM,eAAe;IAU3B,YAEkB,YAA0B,EAG1B,gBAAkC;QAHlC,iBAAY,GAAZ,YAAY,CAAc;QAG1B,qBAAgB,GAAhB,gBAAgB,CAAkB;IACjD,CAAC;IAEJ,KAAK,CAAC,iBAAiB,CAAC,YAAoB,EAAE,UAAkB,qCAAiB,CAAC,gCAAgC;QACjH,eAAM,CAAC,KAAK,CAAC,UAAU,YAAY,GAAG,CAAC,CAAC;QAExC,MAAM,gBAAgB,GAAO,uBAAE,CAAC,KAAK,CAAC,0BAA0B,YAAY,KAAK,CAAC,CAAC;QAEnF,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,UAAkB,qCAAiB,CAAC,6BAA6B;QAC/E,eAAM,CAAC,KAAK,EAAE,CAAC;QAEf,MAAM,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,8BAA8B,CACnC,UAAkB,EAClB,UAAkB,qCAAiB,CAAC,+BAA+B;QAEnE,eAAM,CAAC,KAAK,CAAC,gBAAgB,UAAU,GAAG,CAAC,CAAC;QAE5C,MAAM,aAAa,GAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAE5D,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,8BAA8B,CACnC,UAAkB,EAClB,UAAkB,qCAAiB,CAAC,+BAA+B;QAEnE,MAAM,IAAI,CAAC,gCAAgC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEjE,eAAM,CAAC,KAAK,CAAC,gBAAgB,UAAU,GAAG,CAAC,CAAC;QAE5C,MAAM,aAAa,GAAO,IAAI,CAAC,kCAAkC,CAAC,UAAU,CAAC,CAAC;QAC9E,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,oBAAoB,CACzB,UAAkB,EAClB,UAAmB,EACnB,UAAkB,qCAAiB,CAAC,gCAAgC;QAEpE,eAAM,CAAC,KAAK,CAAC,gBAAgB,UAAU,GAAG,CAAC,CAAC;QAE5C,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,iBAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC7E,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAe,CAAC,WAAW,EAAE,wBAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;QAE1F,IAAI,UAAU,EAAE;YACf,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,iBAAe,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;YAChF,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,iBAAe,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;YACvF,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,iBAAe,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;YACnF,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAe,CAAC,mBAAmB,EAAE,wBAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;YAClG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;SAC5F;QAED,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,iBAAe,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;QACtF,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,UAAkB,EAAE,UAAkB,qCAAiB,CAAC,+BAA+B;QAChH,eAAM,CAAC,KAAK,CAAC,gBAAgB,UAAU,GAAG,CAAC,CAAC;QAC5C,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,iBAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC7E,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAe,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAE/E,MAAM,gBAAgB,GAAW,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACzE,eAAM,CAAC,IAAI,CAAC,qCAAqC,gBAAgB,GAAG,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,UAAkB,qCAAiB,CAAC,+BAA+B;QAC5F,eAAM,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,iBAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,UAAkB,qCAAiB,CAAC,+BAA+B;QACnG,eAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,iBAAe,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,gCAAgC,CAAC,UAAkB,EAAE,OAAe;QACzE,eAAM,CAAC,KAAK,CAAC,gBAAgB,UAAU,YAAY,yCAAmB,CAAC,kBAAkB,GAAG,CAAC,CAAC;QAE9F,MAAM,yBAAyB,GAAO,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;QACrF,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC5B,eAAM,CAAC,KAAK,EAAE,CAAC;QAEf,IAAI;YACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC;SAC5C;QAAC,OAAO,CAAC,EAAE;YACX,eAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;SAClD;IACF,CAAC;IAED,KAAK,CAAC,mCAAmC,CAAC,UAAkB,qCAAiB,CAAC,wBAAwB;QACrG,eAAM,CAAC,KAAK,EAAE,CAAC;QAEf,MAAM,OAAO,GAAe,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,iBAAe,CAAC,kCAAkC,EAAE,OAAO,CAAC,CAAC;QAC9H,OAAO,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,oBAAoB,CACzB,aAAsB,EACtB,UAAkB,qCAAiB,CAAC,gCAAgC;QAEpE,eAAM,CAAC,KAAK,CAAC,8BAA8B,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAEtF,MAAM,OAAO,GAAW,GAAG,CAAC;QAC5B,MAAM,QAAQ,GAAW,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC;QAEtD,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;YAC1C,MAAM,YAAY,GAAY,MAAM,IAAI,CAAC,mCAAmC,EAAE,CAAC;YAC/E,IAAI,YAAY,KAAK,aAAa,EAAE;gBACnC,eAAM,CAAC,KAAK,CAAC,oCAAoC,aAAa,EAAE,CAAC,CAAC;gBAClE,OAAO;aACP;YACD,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACtC;QAED,MAAM,IAAI,KAAK,CAAC,yCAAyC,aAAa,WAAW,OAAO,IAAI,CAAC,CAAC;IAC/F,CAAC;IAED,KAAK,CAAC,iCAAiC,CAAC,UAAkB,qCAAiB,CAAC,wBAAwB;QACnG,eAAM,CAAC,KAAK,EAAE,CAAC;QAEf,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,iBAAe,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;IACjG,CAAC;IAED,KAAK,CAAC,6BAA6B,CAClC,UAAmB,IAAI,EACvB,UAAkB,qCAAiB,CAAC,wBAAwB;QAE5D,eAAM,CAAC,KAAK,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;QAEpC,sBAAsB;QACtB,MAAM,kBAAkB,GAAY,MAAM,IAAI,CAAC,mCAAmC,CAAC,OAAO,CAAC,CAAC;QAE5F,0CAA0C;QAC1C,IAAI,kBAAkB,KAAK,OAAO,EAAE;YACnC,eAAM,CAAC,KAAK,CAAC,uBAAuB,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,oBAAoB,CAAC,CAAC;YACnF,OAAO;SACP;QAED,wBAAwB;QACxB,eAAM,CAAC,KAAK,CAAC,eAAe,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,SAAS,CAAC,CAAC;QACjH,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,qCAAiB,CAAC,iCAAiC,CAAC,CAAC,CAAC,oDAAoD;QACvI,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,iBAAe,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;IACjG,CAAC;IAEO,6BAA6B,CAAC,UAAkB;QACvD,OAAO,uBAAE,CAAC,KAAK,CAAC,kBAAkB,UAAU,8BAA8B,CAAC,CAAC;IAC7E,CAAC;IAEO,kCAAkC,CAAC,UAAkB;QAC5D,IAAI,MAAM,GAAW,EAAE,CAAC;QACxB,QAAQ,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE;YACvC,KAAK,UAAU;gBACd,MAAM,GAAG,MAAM,CAAC;gBAChB,MAAM;YACP;gBACC,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;SACzE;QAED,eAAM,CAAC,KAAK,CAAC,eAAe,UAAU,aAAa,MAAM,GAAG,CAAC,CAAC;QAE9D,OAAO,uBAAE,CAAC,KAAK,CAAC,iBAAiB,UAAU;;;mBAG1B,MAAM;yBACA,CAAC,CAAC;IAC1B,CAAC;IAEO,gBAAgB,CAAC,UAAkB;QAC1C,eAAM,CAAC,KAAK,CAAC,eAAe,UAAU,uBAAuB,CAAC,CAAC;QAE/D,OAAO,uBAAE,CAAC,KAAK,CAAC,kDAAkD,UAAU,IAAI,CAAC,CAAC;IACnF,CAAC;IAEO,2BAA2B,CAAC,UAAkB;QACrD,OAAO,uBAAE,CAAC,KAAK,CAAC,uCAAuC,UAAU,IAAI,CAAC,CAAC;IACxE,CAAC;;AAtMuB,2BAAW,GAAO,uBAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;AACxC,gCAAgB,GAAO,uBAAE,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;AAErE,uCAAuB,GAAO,uBAAE,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;AACnG,mCAAmB,GAAO,uBAAE,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;AACzE,sCAAsB,GAAO,uBAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC;AAC7D,4CAA4B,GAAO,uBAAE,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;AACrF,kDAAkC,GAAO,uBAAE,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC;AARzF,eAAe;IAD3B,IAAA,sBAAU,GAAE;IAYV,WAAA,IAAA,kBAAM,EAAC,yBAAO,CAAC,YAAY,CAAC,CAAA;IAG5B,WAAA,IAAA,kBAAM,EAAC,yBAAO,CAAC,gBAAgB,CAAC,CAAA;qCAFF,2BAAY;QAGR,mCAAgB;GAfxC,eAAe,CAwM3B;AAxMY,0CAAe"}
1
+ {"version":3,"file":"CreateWorkspace.js","sourceRoot":"","sources":["../../../pageobjects/dashboard/CreateWorkspace.ts"],"names":[],"mappings":"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"}
@@ -217,6 +217,59 @@ let UserPreferences = UserPreferences_1 = class UserPreferences {
217
217
  await this.driverHelper.waitDisappearance(UserPreferences_1.GIT_SSH_KEY_NAME);
218
218
  Logger_1.Logger.info('SSH keys have been deleted');
219
219
  }
220
+ async openAiProviderKeysTab() {
221
+ Logger_1.Logger.debug();
222
+ await this.driverHelper.waitAndClick(UserPreferences_1.AI_PROVIDER_KEYS_TAB);
223
+ }
224
+ async waitAiProviderKeysTab(timeout = TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT) {
225
+ Logger_1.Logger.debug();
226
+ await this.driverHelper.waitVisibility(UserPreferences_1.AI_PROVIDER_KEYS_TAB, timeout);
227
+ }
228
+ async isAiProviderKeyPresent(providerId) {
229
+ Logger_1.Logger.debug(`providerId: "${providerId}"`);
230
+ return await this.driverHelper.isVisible(this.getAiProviderRowLocator(providerId));
231
+ }
232
+ async waitAiProviderKeyPresent(providerId, timeout = TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT) {
233
+ Logger_1.Logger.debug(`providerId: "${providerId}"`);
234
+ await this.driverHelper.waitVisibility(this.getAiProviderRowLocator(providerId), timeout);
235
+ }
236
+ async addAiProviderKey(providerName, apiKey) {
237
+ Logger_1.Logger.debug(`providerName: "${providerName}"`);
238
+ await this.driverHelper.waitAndClick(UserPreferences_1.AI_ADD_KEY_EMPTY_STATE_BUTTON);
239
+ await this.driverHelper.waitVisibility(UserPreferences_1.AI_ADD_EDIT_MODAL);
240
+ await this.selectAiProvider(providerName);
241
+ await this.driverHelper.waitVisibility(UserPreferences_1.AI_API_KEY_INPUT);
242
+ await this.driverHelper.enterValue(UserPreferences_1.AI_API_KEY_INPUT, apiKey);
243
+ await this.driverHelper.waitAndClick(UserPreferences_1.AI_SAVE_BUTTON);
244
+ const attempts = Math.ceil(TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT / TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING);
245
+ await this.driverHelper.waitDisappearance(UserPreferences_1.AI_ADD_EDIT_MODAL, attempts, TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING);
246
+ }
247
+ async selectAiProvider(providerName) {
248
+ Logger_1.Logger.debug(`providerName: "${providerName}"`);
249
+ await this.driverHelper.waitAndClick(UserPreferences_1.AI_PROVIDER_SELECT_TOGGLE);
250
+ await this.driverHelper.waitAndClick(this.getAiProviderSelectOptionLocator(providerName));
251
+ }
252
+ async getAiProviderEnvVarName(providerId) {
253
+ Logger_1.Logger.debug(`providerId: "${providerId}"`);
254
+ return await this.driverHelper.waitAndGetText(this.getAiProviderEnvVarLocator(providerId));
255
+ }
256
+ async deleteAiProviderKeys(providerName) {
257
+ Logger_1.Logger.debug(`providerName: "${providerName}"`);
258
+ Logger_1.Logger.info('Deleting AI Provider keys');
259
+ const rows = selenium_webdriver_1.By.css('table[aria-label="AI Provider Keys"] tbody tr input[type="checkbox"]');
260
+ const hasRows = await this.driverHelper.isVisible(rows);
261
+ if (!hasRows) {
262
+ Logger_1.Logger.info('No AI Provider keys to delete');
263
+ return;
264
+ }
265
+ const selectAllCheckbox = selenium_webdriver_1.By.css('table[aria-label="AI Provider Keys"] thead input[type="checkbox"]');
266
+ await this.driverHelper.waitAndClick(selectAllCheckbox);
267
+ await this.driverHelper.waitAndClick(UserPreferences_1.AI_BULK_DELETE_BUTTON);
268
+ await this.driverHelper.waitAndClick(UserPreferences_1.AI_DELETE_CONFIRM_CHECKBOX);
269
+ await this.driverHelper.waitAndClick(this.getAiDeleteConfirmButtonLocator(providerName));
270
+ await this.driverHelper.waitDisappearance(rows);
271
+ Logger_1.Logger.info('AI Provider keys have been deleted');
272
+ }
220
273
  getServiceConfig(service) {
221
274
  const gitService = {
222
275
  [FACTORY_TEST_CONSTANTS_1.GitProviderType.GITHUB]: 'GitHub',
@@ -231,6 +284,18 @@ let UserPreferences = UserPreferences_1 = class UserPreferences {
231
284
  getServicesListItemLocator(servicesName) {
232
285
  return selenium_webdriver_1.By.xpath(`//tr[td[text()='${servicesName}']]//input`);
233
286
  }
287
+ getAiProviderRowLocator(providerId) {
288
+ return selenium_webdriver_1.By.css(`tr[data-testid="${providerId}"]`);
289
+ }
290
+ getAiProviderSelectOptionLocator(providerName) {
291
+ return selenium_webdriver_1.By.xpath(`//button[@role="option"]//span[text()="${providerName}"]`);
292
+ }
293
+ getAiProviderEnvVarLocator(providerId) {
294
+ return selenium_webdriver_1.By.xpath(`//tr[@data-testid="${providerId}"]//td[@data-label="Environment Variable"]//code`);
295
+ }
296
+ getAiDeleteConfirmButtonLocator(providerName) {
297
+ return selenium_webdriver_1.By.xpath(`//div[@aria-label="Delete ${providerName} API Key"]//span[text()="Delete"]`);
298
+ }
234
299
  };
235
300
  UserPreferences.USER_SETTINGS_DROPDOWN = selenium_webdriver_1.By.xpath('//header//button/span[text()!=""]//parent::button');
236
301
  UserPreferences.USER_PREFERENCES_BUTTON = selenium_webdriver_1.By.xpath('//span[text()="User Preferences"]');
@@ -259,6 +324,14 @@ UserPreferences.CONFIRM_DELETE_SSH_KEYS_CHECKBOX = selenium_webdriver_1.By.id('d
259
324
  UserPreferences.CONFIRMATION_WINDOW = selenium_webdriver_1.By.xpath('//span[text()="Revoke Git Service"]');
260
325
  UserPreferences.DELETE_CONFIRMATION_CHECKBOX = selenium_webdriver_1.By.id('revoke-warning-info-check');
261
326
  UserPreferences.DELETE_ITEM_BUTTON_ENABLED = selenium_webdriver_1.By.css('button[data-testid="revoke-button"]:not([disabled])');
327
+ UserPreferences.AI_PROVIDER_KEYS_TAB = selenium_webdriver_1.By.xpath('//button[text()="AI Providers Keys"]');
328
+ UserPreferences.AI_ADD_KEY_EMPTY_STATE_BUTTON = selenium_webdriver_1.By.css('button[aria-label="Add AI Provider Key"]');
329
+ UserPreferences.AI_ADD_EDIT_MODAL = selenium_webdriver_1.By.css('div[aria-label="add-edit-ai-provider-key"]');
330
+ UserPreferences.AI_PROVIDER_SELECT_TOGGLE = selenium_webdriver_1.By.css('div[aria-label="add-edit-ai-provider-key"] button.pf-v6-c-menu-toggle');
331
+ UserPreferences.AI_API_KEY_INPUT = selenium_webdriver_1.By.id('ai-provider-api-key');
332
+ UserPreferences.AI_SAVE_BUTTON = selenium_webdriver_1.By.css('button[data-testid="save-button"]');
333
+ UserPreferences.AI_BULK_DELETE_BUTTON = selenium_webdriver_1.By.css('button[data-testid="bulk-delete-ai-key-button"]');
334
+ UserPreferences.AI_DELETE_CONFIRM_CHECKBOX = selenium_webdriver_1.By.id('delete-ai-key-warning-checkbox');
262
335
  UserPreferences = UserPreferences_1 = __decorate([
263
336
  (0, inversify_1.injectable)(),
264
337
  __param(0, (0, inversify_1.inject)(inversify_types_1.CLASSES.DriverHelper)),
@@ -1 +1 @@
1
- {"version":3,"file":"UserPreferences.js","sourceRoot":"","sources":["../../../pageobjects/dashboard/UserPreferences.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserPreferences.js","sourceRoot":"","sources":["../../../pageobjects/dashboard/UserPreferences.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /** *******************************************************************
4
+ * copyright (c) 2026 Red Hat, Inc.
5
+ *
6
+ * This program and the accompanying materials are made
7
+ * available under the terms of the Eclipse Public License 2.0
8
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
9
+ *
10
+ * SPDX-License-Identifier: EPL-2.0
11
+ **********************************************************************/
12
+ const inversify_config_1 = require("../../configs/inversify.config");
13
+ const inversify_types_1 = require("../../configs/inversify.types");
14
+ const WorkspaceHandlingTests_1 = require("../../tests-library/WorkspaceHandlingTests");
15
+ const MochaHooks_1 = require("../MochaHooks");
16
+ const BASE_TEST_CONSTANTS_1 = require("../../constants/BASE_TEST_CONSTANTS");
17
+ const chai_1 = require("chai");
18
+ const Logger_1 = require("../../utils/Logger");
19
+ const stackName = 'Empty Workspace';
20
+ suite(`OpenCode Provider Smoke Test ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
21
+ const workspaceHandlingTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.WorkspaceHandlingTests);
22
+ const projectAndFileTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ProjectAndFileTests);
23
+ const loginTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.LoginTests);
24
+ const browserTabsUtil = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.BrowserTabsUtil);
25
+ const userPreferences = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.UserPreferences);
26
+ const createWorkspace = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.CreateWorkspace);
27
+ const dashboard = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.Dashboard);
28
+ const testWorkspaceUtil = inversify_config_1.e2eContainer.get(inversify_types_1.TYPES.WorkspaceUtil);
29
+ const kubernetesCommandLineToolsExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor);
30
+ const containerTerminal = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ContainerTerminal);
31
+ const providerName = 'OpenCode';
32
+ const providerId = 'opencodeai/opencode';
33
+ const apiKey = BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TS_AI_PROVIDER_API_KEY;
34
+ const envVarName = 'OPENAI_API_KEY';
35
+ const openAiModel = 'gpt-4o-mini';
36
+ async function deleteAiProviderKeys() {
37
+ Logger_1.Logger.debug('Deleting AI Provider keys if they are present');
38
+ await userPreferences.openUserPreferencesPage();
39
+ await userPreferences.openAiProviderKeysTab();
40
+ await userPreferences.deleteAiProviderKeys(providerName);
41
+ }
42
+ suiteSetup('Login', async function () {
43
+ await loginTests.loginIntoChe();
44
+ await deleteAiProviderKeys();
45
+ });
46
+ suite('Add AI Provider API key', function () {
47
+ test('Navigate to AI Provider Keys tab', async function () {
48
+ await userPreferences.openUserPreferencesPage();
49
+ await userPreferences.waitAiProviderKeysTab();
50
+ await userPreferences.openAiProviderKeysTab();
51
+ });
52
+ test(`Add ${providerName} API key`, async function () {
53
+ await userPreferences.addAiProviderKey(providerName, apiKey);
54
+ });
55
+ test(`Verify ${providerName} key is present in the list`, async function () {
56
+ await userPreferences.waitAiProviderKeyPresent(providerId);
57
+ const actualEnvVarName = await userPreferences.getAiProviderEnvVarName(providerId);
58
+ (0, chai_1.expect)(actualEnvVarName).to.equal(envVarName);
59
+ });
60
+ });
61
+ suite('Verify AI Provider on Create Workspace page', function () {
62
+ test('Navigate to Create Workspace page', async function () {
63
+ await dashboard.clickCreateWorkspaceButton();
64
+ await createWorkspace.waitPage();
65
+ });
66
+ test('Verify AI Provider section is visible', async function () {
67
+ await createWorkspace.waitAiProviderSectionVisible();
68
+ });
69
+ test('Expand "Choose an AI Provider" section', async function () {
70
+ await createWorkspace.expandChooseAiProviderSection();
71
+ });
72
+ test(`Verify ${providerName} provider card is visible`, async function () {
73
+ await createWorkspace.waitAiProviderCardVisible(providerId);
74
+ });
75
+ test('Verify "Key configured" badge is displayed', async function () {
76
+ const isBadgeVisible = await createWorkspace.isAiProviderKeyConfiguredBadgeVisible();
77
+ (0, chai_1.expect)(isBadgeVisible, '"Key configured" badge should be visible').to.be.true;
78
+ });
79
+ });
80
+ suite('Create workspace and verify AI tool', function () {
81
+ test(`Create and open ${stackName}`, async function () {
82
+ await workspaceHandlingTests.createAndOpenWorkspace(stackName);
83
+ });
84
+ test('Obtain workspace name from workspace loader page', async function () {
85
+ await workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
86
+ });
87
+ test('Register running workspace', function () {
88
+ (0, MochaHooks_1.registerRunningWorkspace)(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
89
+ });
90
+ test('Wait workspace readiness', async function () {
91
+ await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
92
+ });
93
+ test('Connect to workspace container', function () {
94
+ kubernetesCommandLineToolsExecutor.workspaceName = WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName();
95
+ kubernetesCommandLineToolsExecutor.loginToOcp();
96
+ kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
97
+ });
98
+ test('Verify opencode binary is available in workspace', function () {
99
+ const output = containerTerminal.execInContainerCommand('which opencode || ls /injected-tools/opencode');
100
+ (0, chai_1.expect)(output.code, 'opencode binary should be present in the workspace').to.equal(0);
101
+ });
102
+ test(`Verify ${envVarName} environment variable is set`, function () {
103
+ const output = containerTerminal.execInContainerCommand(`printenv ${envVarName}`);
104
+ (0, chai_1.expect)(output.stdout.trim(), `${envVarName} environment variable should be set`).to.not.be.empty;
105
+ });
106
+ test('Verify opencode starts and reports version', function () {
107
+ const output = containerTerminal.execInContainerCommandWithTimeout('opencode --version 2>&1', undefined, '15');
108
+ (0, chai_1.expect)(output.code, 'opencode --version should exit with code 0').to.equal(0);
109
+ (0, chai_1.expect)(output.stdout, 'opencode should return version info').to.not.be.empty;
110
+ (0, chai_1.expect)(output.stdout.toLowerCase(), 'opencode --version should not contain errors').to.not.contain('error');
111
+ });
112
+ test('Verify API key reaches OpenAI and returns insufficient_quota', function () {
113
+ // call OpenAI API directly via curl to verify the injected API key works end-to-end.
114
+ // the key is valid but has no credits, so OpenAI returns "insufficient_quota" error.
115
+ // we use curl instead of "opencode run" because opencode's plugin initialization
116
+ // hangs in workspace containers that cannot reach the npm registry.
117
+ const curlCommand = 'curl -s -m 15 https://api.openai.com/v1/chat/completions ' +
118
+ '-H "Authorization: Bearer $OPENAI_API_KEY" ' +
119
+ '-H "Content-Type: application/json" ' +
120
+ `-d "{\\"model\\":\\"${openAiModel}\\",\\"messages\\":[{\\"role\\":\\"user\\",\\"content\\":\\"Say hello\\"}]}"`;
121
+ const output = containerTerminal.execInContainerCommand(curlCommand);
122
+ const response = output.stdout + output.stderr;
123
+ Logger_1.Logger.info(`OpenAI API response: ${response}`);
124
+ (0, chai_1.expect)(response, 'OpenAI API should return insufficient_quota for a key with no credits').to.contain('insufficient_quota');
125
+ });
126
+ });
127
+ suiteTeardown('Open dashboard and close all other tabs', async function () {
128
+ await dashboard.openDashboard();
129
+ await browserTabsUtil.closeAllTabsExceptCurrent();
130
+ });
131
+ suiteTeardown('Stop and delete the workspace by API', async function () {
132
+ await testWorkspaceUtil.stopAndDeleteWorkspaceByName(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
133
+ });
134
+ suiteTeardown('Unregister running workspace', function () {
135
+ (0, MochaHooks_1.registerRunningWorkspace)('');
136
+ });
137
+ });
138
+ //# sourceMappingURL=OpenCodeProviderSmokeTest.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenCodeProviderSmokeTest.spec.js","sourceRoot":"","sources":["../../../specs/miscellaneous/OpenCodeProviderSmokeTest.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-che/che-e2e",
3
- "version": "7.124.0-next-c1c068e",
3
+ "version": "7.124.0-next-6307b25",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -28,6 +28,10 @@ export class CreateWorkspace {
28
28
  private static readonly CREATE_NEW_WORKPACE_CHECKBOX: By = By.css('label[for="create-new-if-exist-switch"]');
29
29
  private static readonly CREATE_NEW_WORKPACE_CHECKBOX_VALUE: By = By.id('create-new-if-exist-switch');
30
30
 
31
+ private static readonly AI_PROVIDER_SELECTOR_HEADING: By = By.xpath('//h3[text()="AI Provider Selector"]');
32
+ private static readonly AI_PROVIDER_CHOOSE_TOGGLE: By = By.id('accordion-item-ai-selector');
33
+ private static readonly AI_PROVIDER_KEY_CONFIGURED_BADGE: By = By.xpath('//span[text()=" Key configured"]');
34
+
31
35
  constructor(
32
36
  @inject(CLASSES.DriverHelper)
33
37
  private readonly driverHelper: DriverHelper,
@@ -186,6 +190,47 @@ export class CreateWorkspace {
186
190
  await this.driverHelper.scrollToAndClick(CreateWorkspace.CREATE_NEW_WORKPACE_CHECKBOX, timeout);
187
191
  }
188
192
 
193
+ async waitAiProviderSectionVisible(timeout: number = TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT): Promise<void> {
194
+ Logger.debug();
195
+
196
+ await this.driverHelper.waitVisibility(CreateWorkspace.AI_PROVIDER_SELECTOR_HEADING, timeout);
197
+ }
198
+
199
+ async expandChooseAiProviderSection(): Promise<void> {
200
+ Logger.debug();
201
+
202
+ const toggle: By = CreateWorkspace.AI_PROVIDER_CHOOSE_TOGGLE;
203
+ await this.driverHelper.waitAndClick(toggle);
204
+ await this.driverHelper.waitAttributeValue(toggle, 'aria-expanded', 'true', TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT);
205
+ }
206
+
207
+ async isAiProviderSectionVisible(): Promise<boolean> {
208
+ Logger.debug();
209
+
210
+ return await this.driverHelper.isVisible(CreateWorkspace.AI_PROVIDER_SELECTOR_HEADING);
211
+ }
212
+
213
+ async isAiProviderCardVisible(providerId: string): Promise<boolean> {
214
+ Logger.debug(`providerId: "${providerId}"`);
215
+
216
+ return await this.driverHelper.isVisible(this.getAiProviderCardLocator(providerId));
217
+ }
218
+
219
+ async waitAiProviderCardVisible(
220
+ providerId: string,
221
+ timeout: number = TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT
222
+ ): Promise<void> {
223
+ Logger.debug(`providerId: "${providerId}"`);
224
+
225
+ await this.driverHelper.waitVisibility(this.getAiProviderCardLocator(providerId), timeout);
226
+ }
227
+
228
+ async isAiProviderKeyConfiguredBadgeVisible(): Promise<boolean> {
229
+ Logger.debug();
230
+
231
+ return await this.driverHelper.isVisible(CreateWorkspace.AI_PROVIDER_KEY_CONFIGURED_BADGE);
232
+ }
233
+
189
234
  private getEditorsDropdownListLocator(sampleName: string): By {
190
235
  return By.xpath(`//div[text()=\'${sampleName}\']//parent::article//button`);
191
236
  }
@@ -215,6 +260,11 @@ export class CreateWorkspace {
215
260
  return By.xpath(`//div[contains(@id, 'sample-card') and text()='${sampleName}']`);
216
261
  }
217
262
 
263
+ private getAiProviderCardLocator(providerId: string): By {
264
+ const cardId: string = providerId.replace(/\//g, '-');
265
+ return By.id(`ai-provider-card-${cardId}`);
266
+ }
267
+
218
268
  private getGitBranchListItemLocator(branchName: string): By {
219
269
  return By.xpath(`//ul[@role="listbox"]//span[text()="${branchName}"]`);
220
270
  }
@@ -54,6 +54,15 @@ export class UserPreferences {
54
54
  private static readonly DELETE_CONFIRMATION_CHECKBOX: By = By.id('revoke-warning-info-check');
55
55
  private static readonly DELETE_ITEM_BUTTON_ENABLED: By = By.css('button[data-testid="revoke-button"]:not([disabled])');
56
56
 
57
+ private static readonly AI_PROVIDER_KEYS_TAB: By = By.xpath('//button[text()="AI Providers Keys"]');
58
+ private static readonly AI_ADD_KEY_EMPTY_STATE_BUTTON: By = By.css('button[aria-label="Add AI Provider Key"]');
59
+ private static readonly AI_ADD_EDIT_MODAL: By = By.css('div[aria-label="add-edit-ai-provider-key"]');
60
+ private static readonly AI_PROVIDER_SELECT_TOGGLE: By = By.css('div[aria-label="add-edit-ai-provider-key"] button.pf-v6-c-menu-toggle');
61
+ private static readonly AI_API_KEY_INPUT: By = By.id('ai-provider-api-key');
62
+ private static readonly AI_SAVE_BUTTON: By = By.css('button[data-testid="save-button"]');
63
+ private static readonly AI_BULK_DELETE_BUTTON: By = By.css('button[data-testid="bulk-delete-ai-key-button"]');
64
+ private static readonly AI_DELETE_CONFIRM_CHECKBOX: By = By.id('delete-ai-key-warning-checkbox');
65
+
57
66
  constructor(
58
67
  @inject(CLASSES.DriverHelper)
59
68
  readonly driverHelper: DriverHelper
@@ -286,6 +295,87 @@ export class UserPreferences {
286
295
  Logger.info('SSH keys have been deleted');
287
296
  }
288
297
 
298
+ async openAiProviderKeysTab(): Promise<void> {
299
+ Logger.debug();
300
+
301
+ await this.driverHelper.waitAndClick(UserPreferences.AI_PROVIDER_KEYS_TAB);
302
+ }
303
+
304
+ async waitAiProviderKeysTab(timeout: number = TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT): Promise<void> {
305
+ Logger.debug();
306
+
307
+ await this.driverHelper.waitVisibility(UserPreferences.AI_PROVIDER_KEYS_TAB, timeout);
308
+ }
309
+
310
+ async isAiProviderKeyPresent(providerId: string): Promise<boolean> {
311
+ Logger.debug(`providerId: "${providerId}"`);
312
+
313
+ return await this.driverHelper.isVisible(this.getAiProviderRowLocator(providerId));
314
+ }
315
+
316
+ async waitAiProviderKeyPresent(
317
+ providerId: string,
318
+ timeout: number = TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT
319
+ ): Promise<void> {
320
+ Logger.debug(`providerId: "${providerId}"`);
321
+
322
+ await this.driverHelper.waitVisibility(this.getAiProviderRowLocator(providerId), timeout);
323
+ }
324
+
325
+ async addAiProviderKey(providerName: string, apiKey: string): Promise<void> {
326
+ Logger.debug(`providerName: "${providerName}"`);
327
+
328
+ await this.driverHelper.waitAndClick(UserPreferences.AI_ADD_KEY_EMPTY_STATE_BUTTON);
329
+ await this.driverHelper.waitVisibility(UserPreferences.AI_ADD_EDIT_MODAL);
330
+ await this.selectAiProvider(providerName);
331
+ await this.driverHelper.waitVisibility(UserPreferences.AI_API_KEY_INPUT);
332
+ await this.driverHelper.enterValue(UserPreferences.AI_API_KEY_INPUT, apiKey);
333
+ await this.driverHelper.waitAndClick(UserPreferences.AI_SAVE_BUTTON);
334
+
335
+ const attempts: number = Math.ceil(
336
+ TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT / TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING
337
+ );
338
+ await this.driverHelper.waitDisappearance(
339
+ UserPreferences.AI_ADD_EDIT_MODAL,
340
+ attempts,
341
+ TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING
342
+ );
343
+ }
344
+
345
+ async selectAiProvider(providerName: string): Promise<void> {
346
+ Logger.debug(`providerName: "${providerName}"`);
347
+
348
+ await this.driverHelper.waitAndClick(UserPreferences.AI_PROVIDER_SELECT_TOGGLE);
349
+ await this.driverHelper.waitAndClick(this.getAiProviderSelectOptionLocator(providerName));
350
+ }
351
+
352
+ async getAiProviderEnvVarName(providerId: string): Promise<string> {
353
+ Logger.debug(`providerId: "${providerId}"`);
354
+
355
+ return await this.driverHelper.waitAndGetText(this.getAiProviderEnvVarLocator(providerId));
356
+ }
357
+
358
+ async deleteAiProviderKeys(providerName: string): Promise<void> {
359
+ Logger.debug(`providerName: "${providerName}"`);
360
+
361
+ Logger.info('Deleting AI Provider keys');
362
+ const rows: By = By.css('table[aria-label="AI Provider Keys"] tbody tr input[type="checkbox"]');
363
+ const hasRows: boolean = await this.driverHelper.isVisible(rows);
364
+
365
+ if (!hasRows) {
366
+ Logger.info('No AI Provider keys to delete');
367
+ return;
368
+ }
369
+
370
+ const selectAllCheckbox: By = By.css('table[aria-label="AI Provider Keys"] thead input[type="checkbox"]');
371
+ await this.driverHelper.waitAndClick(selectAllCheckbox);
372
+ await this.driverHelper.waitAndClick(UserPreferences.AI_BULK_DELETE_BUTTON);
373
+ await this.driverHelper.waitAndClick(UserPreferences.AI_DELETE_CONFIRM_CHECKBOX);
374
+ await this.driverHelper.waitAndClick(this.getAiDeleteConfirmButtonLocator(providerName));
375
+ await this.driverHelper.waitDisappearance(rows);
376
+ Logger.info('AI Provider keys have been deleted');
377
+ }
378
+
289
379
  getServiceConfig(service: string): string {
290
380
  const gitService: { [key: string]: string } = {
291
381
  [GitProviderType.GITHUB]: 'GitHub',
@@ -302,4 +392,20 @@ export class UserPreferences {
302
392
  private getServicesListItemLocator(servicesName: string): By {
303
393
  return By.xpath(`//tr[td[text()='${servicesName}']]//input`);
304
394
  }
395
+
396
+ private getAiProviderRowLocator(providerId: string): By {
397
+ return By.css(`tr[data-testid="${providerId}"]`);
398
+ }
399
+
400
+ private getAiProviderSelectOptionLocator(providerName: string): By {
401
+ return By.xpath(`//button[@role="option"]//span[text()="${providerName}"]`);
402
+ }
403
+
404
+ private getAiProviderEnvVarLocator(providerId: string): By {
405
+ return By.xpath(`//tr[@data-testid="${providerId}"]//td[@data-label="Environment Variable"]//code`);
406
+ }
407
+
408
+ private getAiDeleteConfirmButtonLocator(providerName: string): By {
409
+ return By.xpath(`//div[@aria-label="Delete ${providerName} API Key"]//span[text()="Delete"]`);
410
+ }
305
411
  }
@@ -0,0 +1,175 @@
1
+ /** *******************************************************************
2
+ * copyright (c) 2026 Red Hat, Inc.
3
+ *
4
+ * This program and the accompanying materials are made
5
+ * available under the terms of the Eclipse Public License 2.0
6
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
7
+ *
8
+ * SPDX-License-Identifier: EPL-2.0
9
+ **********************************************************************/
10
+ import { e2eContainer } from '../../configs/inversify.config';
11
+ import { CLASSES, TYPES } from '../../configs/inversify.types';
12
+ import { WorkspaceHandlingTests } from '../../tests-library/WorkspaceHandlingTests';
13
+ import { ProjectAndFileTests } from '../../tests-library/ProjectAndFileTests';
14
+ import { LoginTests } from '../../tests-library/LoginTests';
15
+ import { registerRunningWorkspace } from '../MochaHooks';
16
+ import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
17
+ import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
18
+
19
+ import { UserPreferences } from '../../pageobjects/dashboard/UserPreferences';
20
+ import { CreateWorkspace } from '../../pageobjects/dashboard/CreateWorkspace';
21
+ import { Dashboard } from '../../pageobjects/dashboard/Dashboard';
22
+ import { ITestWorkspaceUtil } from '../../utils/workspace/ITestWorkspaceUtil';
23
+ import { KubernetesCommandLineToolsExecutor, ContainerTerminal } from '../../utils/KubernetesCommandLineToolsExecutor';
24
+ import { ShellString } from 'shelljs';
25
+ import { expect } from 'chai';
26
+ import { Logger } from '../../utils/Logger';
27
+
28
+ const stackName: string = 'Empty Workspace';
29
+
30
+ suite(`OpenCode Provider Smoke Test ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function (): void {
31
+ const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests);
32
+ const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests);
33
+ const loginTests: LoginTests = e2eContainer.get(CLASSES.LoginTests);
34
+ const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
35
+ const userPreferences: UserPreferences = e2eContainer.get(CLASSES.UserPreferences);
36
+ const createWorkspace: CreateWorkspace = e2eContainer.get(CLASSES.CreateWorkspace);
37
+ const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard);
38
+ const testWorkspaceUtil: ITestWorkspaceUtil = e2eContainer.get(TYPES.WorkspaceUtil);
39
+ const kubernetesCommandLineToolsExecutor: KubernetesCommandLineToolsExecutor = e2eContainer.get(
40
+ CLASSES.KubernetesCommandLineToolsExecutor
41
+ );
42
+ const containerTerminal: ContainerTerminal = e2eContainer.get(CLASSES.ContainerTerminal);
43
+
44
+ const providerName: string = 'OpenCode';
45
+ const providerId: string = 'opencodeai/opencode';
46
+ const apiKey: string = BASE_TEST_CONSTANTS.TS_AI_PROVIDER_API_KEY;
47
+ const envVarName: string = 'OPENAI_API_KEY';
48
+ const openAiModel: string = 'gpt-4o-mini';
49
+
50
+ async function deleteAiProviderKeys(): Promise<void> {
51
+ Logger.debug('Deleting AI Provider keys if they are present');
52
+ await userPreferences.openUserPreferencesPage();
53
+ await userPreferences.openAiProviderKeysTab();
54
+ await userPreferences.deleteAiProviderKeys(providerName);
55
+ }
56
+
57
+ suiteSetup('Login', async function (): Promise<void> {
58
+ await loginTests.loginIntoChe();
59
+ await deleteAiProviderKeys();
60
+ });
61
+
62
+ suite('Add AI Provider API key', function (): void {
63
+ test('Navigate to AI Provider Keys tab', async function (): Promise<void> {
64
+ await userPreferences.openUserPreferencesPage();
65
+ await userPreferences.waitAiProviderKeysTab();
66
+ await userPreferences.openAiProviderKeysTab();
67
+ });
68
+
69
+ test(`Add ${providerName} API key`, async function (): Promise<void> {
70
+ await userPreferences.addAiProviderKey(providerName, apiKey);
71
+ });
72
+
73
+ test(`Verify ${providerName} key is present in the list`, async function (): Promise<void> {
74
+ await userPreferences.waitAiProviderKeyPresent(providerId);
75
+
76
+ const actualEnvVarName: string = await userPreferences.getAiProviderEnvVarName(providerId);
77
+ expect(actualEnvVarName).to.equal(envVarName);
78
+ });
79
+ });
80
+
81
+ suite('Verify AI Provider on Create Workspace page', function (): void {
82
+ test('Navigate to Create Workspace page', async function (): Promise<void> {
83
+ await dashboard.clickCreateWorkspaceButton();
84
+ await createWorkspace.waitPage();
85
+ });
86
+
87
+ test('Verify AI Provider section is visible', async function (): Promise<void> {
88
+ await createWorkspace.waitAiProviderSectionVisible();
89
+ });
90
+
91
+ test('Expand "Choose an AI Provider" section', async function (): Promise<void> {
92
+ await createWorkspace.expandChooseAiProviderSection();
93
+ });
94
+
95
+ test(`Verify ${providerName} provider card is visible`, async function (): Promise<void> {
96
+ await createWorkspace.waitAiProviderCardVisible(providerId);
97
+ });
98
+
99
+ test('Verify "Key configured" badge is displayed', async function (): Promise<void> {
100
+ const isBadgeVisible: boolean = await createWorkspace.isAiProviderKeyConfiguredBadgeVisible();
101
+ expect(isBadgeVisible, '"Key configured" badge should be visible').to.be.true;
102
+ });
103
+ });
104
+
105
+ suite('Create workspace and verify AI tool', function (): void {
106
+ test(`Create and open ${stackName}`, async function (): Promise<void> {
107
+ await workspaceHandlingTests.createAndOpenWorkspace(stackName);
108
+ });
109
+
110
+ test('Obtain workspace name from workspace loader page', async function (): Promise<void> {
111
+ await workspaceHandlingTests.obtainWorkspaceNameFromStartingPage();
112
+ });
113
+
114
+ test('Register running workspace', function (): void {
115
+ registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName());
116
+ });
117
+
118
+ test('Wait workspace readiness', async function (): Promise<void> {
119
+ await projectAndFileTests.waitWorkspaceReadinessForCheCodeEditor();
120
+ });
121
+
122
+ test('Connect to workspace container', function (): void {
123
+ kubernetesCommandLineToolsExecutor.workspaceName = WorkspaceHandlingTests.getWorkspaceName();
124
+ kubernetesCommandLineToolsExecutor.loginToOcp();
125
+ kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
126
+ });
127
+
128
+ test('Verify opencode binary is available in workspace', function (): void {
129
+ const output: ShellString = containerTerminal.execInContainerCommand('which opencode || ls /injected-tools/opencode');
130
+ expect(output.code, 'opencode binary should be present in the workspace').to.equal(0);
131
+ });
132
+
133
+ test(`Verify ${envVarName} environment variable is set`, function (): void {
134
+ const output: ShellString = containerTerminal.execInContainerCommand(`printenv ${envVarName}`);
135
+ expect(output.stdout.trim(), `${envVarName} environment variable should be set`).to.not.be.empty;
136
+ });
137
+
138
+ test('Verify opencode starts and reports version', function (): void {
139
+ const output: ShellString = containerTerminal.execInContainerCommandWithTimeout('opencode --version 2>&1', undefined, '15');
140
+ expect(output.code, 'opencode --version should exit with code 0').to.equal(0);
141
+ expect(output.stdout, 'opencode should return version info').to.not.be.empty;
142
+ expect(output.stdout.toLowerCase(), 'opencode --version should not contain errors').to.not.contain('error');
143
+ });
144
+
145
+ test('Verify API key reaches OpenAI and returns insufficient_quota', function (): void {
146
+ // call OpenAI API directly via curl to verify the injected API key works end-to-end.
147
+ // the key is valid but has no credits, so OpenAI returns "insufficient_quota" error.
148
+ // we use curl instead of "opencode run" because opencode's plugin initialization
149
+ // hangs in workspace containers that cannot reach the npm registry.
150
+ const curlCommand: string =
151
+ 'curl -s -m 15 https://api.openai.com/v1/chat/completions ' +
152
+ '-H "Authorization: Bearer $OPENAI_API_KEY" ' +
153
+ '-H "Content-Type: application/json" ' +
154
+ `-d "{\\"model\\":\\"${openAiModel}\\",\\"messages\\":[{\\"role\\":\\"user\\",\\"content\\":\\"Say hello\\"}]}"`;
155
+
156
+ const output: ShellString = containerTerminal.execInContainerCommand(curlCommand);
157
+ const response: string = output.stdout + output.stderr;
158
+ Logger.info(`OpenAI API response: ${response}`);
159
+ expect(response, 'OpenAI API should return insufficient_quota for a key with no credits').to.contain('insufficient_quota');
160
+ });
161
+ });
162
+
163
+ suiteTeardown('Open dashboard and close all other tabs', async function (): Promise<void> {
164
+ await dashboard.openDashboard();
165
+ await browserTabsUtil.closeAllTabsExceptCurrent();
166
+ });
167
+
168
+ suiteTeardown('Stop and delete the workspace by API', async function (): Promise<void> {
169
+ await testWorkspaceUtil.stopAndDeleteWorkspaceByName(WorkspaceHandlingTests.getWorkspaceName());
170
+ });
171
+
172
+ suiteTeardown('Unregister running workspace', function (): void {
173
+ registerRunningWorkspace('');
174
+ });
175
+ });