@eclipse-che/che-e2e 7.122.0-next-4d9831f → 7.122.0-next-3c10512

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.
@@ -63,6 +63,7 @@ import { NotificationHandler } from '../pageobjects/ide/NotificationHandler';
63
63
  import { SourceControlView } from '../pageobjects/ide/SourceControlView';
64
64
  import { GitHubExtensionDialog } from '../pageobjects/ide/GitHubExtensionDialog';
65
65
  import { AiCodeSignInDialog } from '../pageobjects/ide/AiCodeSignInDialog';
66
+ import { RestartWorkspaceDialog } from '../pageobjects/ide/RestartWorkspaceDialog';
66
67
 
67
68
  const e2eContainer: Container = new Container({ defaultScope: 'Transient', skipBaseClassChecks: true });
68
69
 
@@ -111,6 +112,7 @@ e2eContainer.bind<NotificationHandler>(CLASSES.NotificationHandler).to(Notificat
111
112
  e2eContainer.bind<SourceControlView>(CLASSES.SourceControlView).to(SourceControlView);
112
113
  e2eContainer.bind<GitHubExtensionDialog>(CLASSES.GitHubExtensionDialog).to(GitHubExtensionDialog);
113
114
  e2eContainer.bind<AiCodeSignInDialog>(CLASSES.AiCodeSignInDialog).to(AiCodeSignInDialog);
115
+ e2eContainer.bind<RestartWorkspaceDialog>(CLASSES.RestartWorkspaceDialog).to(RestartWorkspaceDialog);
114
116
 
115
117
  if (BASE_TEST_CONSTANTS.TS_PLATFORM === Platform.OPENSHIFT) {
116
118
  if (OAUTH_CONSTANTS.TS_SELENIUM_VALUE_OPENSHIFT_OAUTH) {
@@ -60,7 +60,8 @@ const CLASSES: any = {
60
60
  NotificationHandler: 'NotificationHandler',
61
61
  SourceControlView: 'SourceControlView',
62
62
  GitHubExtensionDialog: 'GitHubExtensionDialog',
63
- AiCodeSignInDialog: 'AiCodeSignInDialog'
63
+ AiCodeSignInDialog: 'AiCodeSignInDialog',
64
+ RestartWorkspaceDialog: 'RestartWorkspaceDialog'
64
65
  };
65
66
 
66
67
  const EXTERNAL_CLASSES: any = {
@@ -60,6 +60,7 @@ const NotificationHandler_1 = require("../pageobjects/ide/NotificationHandler");
60
60
  const SourceControlView_1 = require("../pageobjects/ide/SourceControlView");
61
61
  const GitHubExtensionDialog_1 = require("../pageobjects/ide/GitHubExtensionDialog");
62
62
  const AiCodeSignInDialog_1 = require("../pageobjects/ide/AiCodeSignInDialog");
63
+ const RestartWorkspaceDialog_1 = require("../pageobjects/ide/RestartWorkspaceDialog");
63
64
  const e2eContainer = new inversify_1.Container({ defaultScope: 'Transient', skipBaseClassChecks: true });
64
65
  exports.e2eContainer = e2eContainer;
65
66
  e2eContainer.bind(inversify_types_1.TYPES.Driver).to(ChromeDriver_1.ChromeDriver).inSingletonScope();
@@ -107,6 +108,7 @@ e2eContainer.bind(inversify_types_1.CLASSES.NotificationHandler).to(Notification
107
108
  e2eContainer.bind(inversify_types_1.CLASSES.SourceControlView).to(SourceControlView_1.SourceControlView);
108
109
  e2eContainer.bind(inversify_types_1.CLASSES.GitHubExtensionDialog).to(GitHubExtensionDialog_1.GitHubExtensionDialog);
109
110
  e2eContainer.bind(inversify_types_1.CLASSES.AiCodeSignInDialog).to(AiCodeSignInDialog_1.AiCodeSignInDialog);
111
+ e2eContainer.bind(inversify_types_1.CLASSES.RestartWorkspaceDialog).to(RestartWorkspaceDialog_1.RestartWorkspaceDialog);
110
112
  if (BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TS_PLATFORM === BASE_TEST_CONSTANTS_1.Platform.OPENSHIFT) {
111
113
  if (OAUTH_CONSTANTS_1.OAUTH_CONSTANTS.TS_SELENIUM_VALUE_OPENSHIFT_OAUTH) {
112
114
  e2eContainer.bind(inversify_types_1.TYPES.CheLogin).to(RegularUserOcpCheLoginPage_1.RegularUserOcpCheLoginPage);
@@ -1 +1 @@
1
- {"version":3,"file":"inversify.config.js","sourceRoot":"","sources":["../../configs/inversify.config.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;;AAExE,4BAA0B;AAC1B,yCAAsC;AAEtC,yDAAsD;AACtD,uDAAqE;AACrE,4EAAyE;AAEzE,sFAAmF;AAEnF,0GAAuG;AACvG,wDAAqD;AACrD,kEAA+D;AAC/D,oEAAiE;AACjE,kGAA+F;AAC/F,0DAAuD;AACvD,8EAA2E;AAE3E,qIAAkI;AAClI,yFAAsF;AACtF,8EAA2E;AAC3E,8DAA2D;AAC3D,oFAAiF;AACjF,sEAAmE;AAEnE,8EAA2E;AAC3E,4DAAyD;AACzD,oFAAiF;AACjF,0FAAuF;AACvF,sEAAmE;AACnE,wFAAqF;AACrF,oFAAiF;AACjF,oDAAiD;AACjD,6FAA0F;AAC1F,+EAA4E;AAC5E,kEAA+D;AAC/D,0EAAiF;AACjF,kFAA+E;AAC/E,oEAAwE;AACxE,sEAAmE;AACnE,4DAAyD;AACzD,2EAAqF;AACrF,oGAAoH;AACpH,0DAAuD;AACvD,8EAA2E;AAC3E,gFAA6E;AAC7E,gFAA6E;AAC7E,sFAAmF;AACnF,kFAA+E;AAC/E,sEAAmE;AACnE,sEAAmE;AACnE,kEAA+D;AAC/D,gFAA6E;AAC7E,4EAAyE;AACzE,oFAAiF;AACjF,8EAA2E;AAE3E,MAAM,YAAY,GAAc,IAAI,qBAAS,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;AA0D/F,oCAAY;AAxDrB,YAAY,CAAC,IAAI,CAAU,uBAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,2BAAY,CAAC,CAAC,gBAAgB,EAAE,CAAC;AAC7E,YAAY,CAAC,IAAI,CAAqB,uBAAK,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,qCAAiB,CAAC,CAAC;AACjF,YAAY,CAAC,IAAI,CAAgB,uBAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,mCAAgB,CAAC,CAAC;AACtE,YAAY,CAAC,IAAI,CAA8B,uBAAK,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,+EAAsC,CAAC,CAAC;AAC7H,YAAY,CAAC,IAAI,CAAkB,yBAAO,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,iCAAe,CAAC,CAAC;AAChF,YAAY,CAAC,IAAI,CAAe,yBAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,2BAAY,CAAC,CAAC;AACvE,YAAY,CAAC,IAAI,CAAY,yBAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,qBAAS,CAAC,CAAC;AAC9D,YAAY,CAAC,IAAI,CAAa,yBAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,uBAAU,CAAC,CAAC;AACjE,YAAY,CAAC,IAAI,CAAmB,yBAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,mCAAgB,CAAC,CAAC;AACnF,YAAY,CAAC,IAAI,CAAgB,yBAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,6BAAa,CAAC,CAAC;AAC1E,YAAY,CAAC,IAAI,CAAe,yBAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,2BAAY,CAAC,CAAC;AACvE,YAAY,CAAC,IAAI,CAAe,yBAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,2BAAY,CAAC,CAAC;AACvE,YAAY,CAAC,IAAI,CAAuB,yBAAO,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,2CAAoB,CAAC,CAAC;AAC/F,YAAY,CAAC,IAAI,CAAgB,yBAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,sBAAa,CAAC,CAAC;AAC1E,YAAY,CAAC,IAAI,CAAY,yBAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,qBAAS,CAAC,CAAC;AAC9D,YAAY,CAAC,IAAI,CAAc,yBAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,yBAAW,CAAC,CAAC;AACpE,YAAY,CAAC,IAAI,CAAuB,yBAAO,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,2CAAoB,CAAC,CAAC;AAC/F,YAAY,CAAC,IAAI,CAAqB,yBAAO,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,uCAAkB,CAAC,CAAC;AACzF,YAAY,CAAC,IAAI,CAAuB,yBAAO,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,2CAAoB,CAAC,CAAC;AAC/F,YAAY,CAAC,IAAI,CAAkB,yBAAO,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,iCAAe,CAAC,CAAC;AAChF,YAAY,CAAC,IAAI,CAAsB,yBAAO,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,yCAAmB,CAAC,CAAC;AAC5F,YAAY,CAAC,IAAI,CAAa,yBAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,uBAAU,CAAC,CAAC;AACjE,YAAY,CAAC,IAAI,CAAa,yBAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,uBAAU,CAAC,CAAC;AACjE,YAAY,CAAC,IAAI,CAAiB,yBAAO,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,+BAAc,CAAC,CAAC;AAC7E,YAAY,CAAC,IAAI,CAAyB,yBAAO,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,+CAAsB,CAAC,CAAC;AACrG,YAAY,CAAC,IAAI,CAAkB,yBAAO,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,iCAAe,CAAC,CAAC;AAChF,YAAY,CAAC,IAAI,CAAiB,yBAAO,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,+BAAc,CAAC,CAAC;AACrF,YAAY,CAAC,IAAI,CAAqC,yBAAO,CAAC,kCAAkC,CAAC,CAAC,EAAE,CAAC,uEAAkC,CAAC,CAAC;AACzI,YAAY,CAAC,IAAI,CAAgB,yBAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,6BAAa,CAAC,CAAC;AAC1E,YAAY,CAAC,IAAI,CAAoB,yBAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,sDAAiB,CAAC,CAAC;AACtF,YAAY,CAAC,IAAI,CAAkB,yBAAO,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,iCAAe,CAAC,CAAC;AAChF,YAAY,CAAC,IAAI,CAAkB,yBAAO,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,iCAAe,CAAC,CAAC;AAChF,YAAY,CAAC,IAAI,CAAY,kCAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,WAAS,CAAC,CAAC;AACvE,YAAY,CAAC,IAAI,CAAgB,kCAAgB,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,sBAAa,CAAC,CAAC;AACnF,YAAY,CAAC,IAAI,CAAgB,kCAAgB,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,sBAAa,CAAC,CAAC;AACnF,YAAY,CAAC,IAAI,CAAmB,yBAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,mCAAgB,CAAC,CAAC;AACnF,YAAY,CAAC,IAAI,CAAyB,yBAAO,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,+CAAsB,CAAC,CAAC;AACrG,YAAY,CAAC,IAAI,CAAuB,yBAAO,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,2CAAoB,CAAC,CAAC;AAC/F,YAAY,CAAC,IAAI,CAAiB,yBAAO,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,+BAAc,CAAC,CAAC;AAC7E,YAAY,CAAC,IAAI,CAAiB,yBAAO,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,+BAAc,CAAC,CAAC;AAC7E,YAAY,CAAC,IAAI,CAAe,yBAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,2BAAY,CAAC,CAAC;AACvE,YAAY,CAAC,IAAI,CAAsB,yBAAO,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,yCAAmB,CAAC,CAAC;AAC5F,YAAY,CAAC,IAAI,CAAoB,yBAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,qCAAiB,CAAC,CAAC;AACtF,YAAY,CAAC,IAAI,CAAwB,yBAAO,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,6CAAqB,CAAC,CAAC;AAClG,YAAY,CAAC,IAAI,CAAqB,yBAAO,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,uCAAkB,CAAC,CAAC;AAEzF,IAAI,yCAAmB,CAAC,WAAW,KAAK,8BAAQ,CAAC,SAAS,EAAE;IAC3D,IAAI,iCAAe,CAAC,iCAAiC,EAAE;QACtD,YAAY,CAAC,IAAI,CAAgB,uBAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,uDAA0B,CAAC,CAAC;KAChF;SAAM;QACN,YAAY,CAAC,IAAI,CAAgB,uBAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,uCAAkB,CAAC,CAAC;KACxE;CACD;KAAM;IACN,YAAY,CAAC,IAAI,CAAgB,uBAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,yCAAmB,CAAC,CAAC;CACzE"}
1
+ {"version":3,"file":"inversify.config.js","sourceRoot":"","sources":["../../configs/inversify.config.ts"],"names":[],"mappings":"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"}
@@ -62,7 +62,8 @@ const CLASSES = {
62
62
  NotificationHandler: 'NotificationHandler',
63
63
  SourceControlView: 'SourceControlView',
64
64
  GitHubExtensionDialog: 'GitHubExtensionDialog',
65
- AiCodeSignInDialog: 'AiCodeSignInDialog'
65
+ AiCodeSignInDialog: 'AiCodeSignInDialog',
66
+ RestartWorkspaceDialog: 'RestartWorkspaceDialog'
66
67
  };
67
68
  exports.CLASSES = CLASSES;
68
69
  const EXTERNAL_CLASSES = {
@@ -1 +1 @@
1
- {"version":3,"file":"inversify.types.js","sourceRoot":"","sources":["../../configs/inversify.types.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;;AAExE,MAAM,KAAK,GAAQ;IAClB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC;IAC1C,2BAA2B,EAAE,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC;IACtE,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC;IAC1C,mCAAmC,EAAE,MAAM,CAAC,GAAG,CAAC,qCAAqC,CAAC;IACtF,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;CAC5C,CAAC;AAmDO,sBAAK;AAjDd,MAAM,OAAO,GAAQ;IACpB,YAAY,EAAE,cAAc;IAC5B,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,gBAAgB,EAAE,kBAAkB;IACpC,aAAa,EAAE,eAAe;IAC9B,YAAY,EAAE,cAAc;IAC5B,oBAAoB,EAAE,sBAAsB;IAC5C,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,mBAAmB,EAAE,qBAAqB;IAC1C,UAAU,EAAE,YAAY;IACxB,cAAc,EAAE,gBAAgB;IAChC,UAAU,EAAE,YAAY;IACxB,sBAAsB,EAAE,wBAAwB;IAChD,eAAe,EAAE,iBAAiB;IAClC,mBAAmB,EAAE,qBAAqB;IAC1C,YAAY,EAAE,cAAc;IAC5B,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,oBAAoB;IACxC,WAAW,EAAE,aAAa;IAC1B,oBAAoB,EAAE,sBAAsB;IAC5C,oBAAoB,EAAE,sBAAsB;IAC5C,aAAa,EAAE,eAAe;IAC9B,SAAS,EAAE,WAAW;IACtB,sBAAsB,EAAE,wBAAwB;IAChD,kCAAkC,EAAE,oCAAoC;IACxE,aAAa,EAAE,eAAe;IAC9B,iBAAiB,EAAE,mBAAmB;IACtC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;IACpC,sBAAsB,EAAE,wBAAwB;IAChD,oBAAoB,EAAE,sBAAsB;IAC5C,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;IAC5B,mBAAmB,EAAE,qBAAqB;IAC1C,iBAAiB,EAAE,mBAAmB;IACtC,qBAAqB,EAAE,uBAAuB;IAC9C,kBAAkB,EAAE,oBAAoB;CACxC,CAAC;AAOc,0BAAO;AALvB,MAAM,gBAAgB,GAAQ;IAC7B,SAAS,EAAE,WAAW;IACtB,aAAa,EAAE,eAAe;CAC9B,CAAC;AAEuB,4CAAgB"}
1
+ {"version":3,"file":"inversify.types.js","sourceRoot":"","sources":["../../configs/inversify.types.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;;AAExE,MAAM,KAAK,GAAQ;IAClB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC;IAC1C,2BAA2B,EAAE,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC;IACtE,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC;IAC1C,mCAAmC,EAAE,MAAM,CAAC,GAAG,CAAC,qCAAqC,CAAC;IACtF,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;CAC5C,CAAC;AAoDO,sBAAK;AAlDd,MAAM,OAAO,GAAQ;IACpB,YAAY,EAAE,cAAc;IAC5B,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,gBAAgB,EAAE,kBAAkB;IACpC,aAAa,EAAE,eAAe;IAC9B,YAAY,EAAE,cAAc;IAC5B,oBAAoB,EAAE,sBAAsB;IAC5C,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,mBAAmB,EAAE,qBAAqB;IAC1C,UAAU,EAAE,YAAY;IACxB,cAAc,EAAE,gBAAgB;IAChC,UAAU,EAAE,YAAY;IACxB,sBAAsB,EAAE,wBAAwB;IAChD,eAAe,EAAE,iBAAiB;IAClC,mBAAmB,EAAE,qBAAqB;IAC1C,YAAY,EAAE,cAAc;IAC5B,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,oBAAoB;IACxC,WAAW,EAAE,aAAa;IAC1B,oBAAoB,EAAE,sBAAsB;IAC5C,oBAAoB,EAAE,sBAAsB;IAC5C,aAAa,EAAE,eAAe;IAC9B,SAAS,EAAE,WAAW;IACtB,sBAAsB,EAAE,wBAAwB;IAChD,kCAAkC,EAAE,oCAAoC;IACxE,aAAa,EAAE,eAAe;IAC9B,iBAAiB,EAAE,mBAAmB;IACtC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;IACpC,sBAAsB,EAAE,wBAAwB;IAChD,oBAAoB,EAAE,sBAAsB;IAC5C,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;IAC5B,mBAAmB,EAAE,qBAAqB;IAC1C,iBAAiB,EAAE,mBAAmB;IACtC,qBAAqB,EAAE,uBAAuB;IAC9C,kBAAkB,EAAE,oBAAoB;IACxC,sBAAsB,EAAE,wBAAwB;CAChD,CAAC;AAOc,0BAAO;AALvB,MAAM,gBAAgB,GAAQ;IAC7B,SAAS,EAAE,WAAW;IACtB,aAAa,EAAE,eAAe;CAC9B,CAAC;AAEuB,4CAAgB"}
package/dist/index.js CHANGED
@@ -65,6 +65,7 @@ __exportStar(require("./pageobjects/ide/ExplorerView"), exports);
65
65
  __exportStar(require("./pageobjects/ide/ExtensionsView"), exports);
66
66
  __exportStar(require("./pageobjects/ide/GitHubExtensionDialog"), exports);
67
67
  __exportStar(require("./pageobjects/ide/NotificationHandler"), exports);
68
+ __exportStar(require("./pageobjects/ide/RestartWorkspaceDialog"), exports);
68
69
  __exportStar(require("./pageobjects/ide/RestrictedModeButton"), exports);
69
70
  __exportStar(require("./pageobjects/ide/SourceControlView"), exports);
70
71
  __exportStar(require("./pageobjects/ide/ViewsMoreActionsButton"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4EAA8D;AACrD,0CAAe;AACxB,4DAA0C;AAC1C,oDAAkC;AAClC,wDAAsC;AACtC,mDAAiC;AACjC,0DAAwC;AACxC,0EAAwD;AACxD,yDAAuC;AACvC,uDAAqC;AACrC,yDAAuC;AACvC,8EAA4D;AAC5D,6EAA2D;AAC3D,iDAA+B;AAC/B,wDAAsC;AACtC,wDAAsC;AACtC,qDAAmC;AACnC,gFAA8D;AAC9D,0GAAwF;AACxF,+FAA6E;AAC7E,mEAAiD;AACjD,uEAAqD;AACrD,sEAAoD;AACpD,oEAAkD;AAClD,0EAAwD;AACxD,oEAAkD;AAClD,2EAAyD;AACzD,0EAAwD;AACxD,qEAAmD;AACnD,6FAA2E;AAC3E,wEAAsD;AACtD,uEAAqD;AACrD,yEAAuD;AACvD,mEAAiD;AACjD,iEAA+C;AAC/C,mEAAiD;AACjD,0EAAwD;AACxD,wEAAsD;AACtD,yEAAuD;AACvD,sEAAoD;AACpD,2EAAyD;AACzD,+EAA6D;AAC7D,+EAA6D;AAC7D,8EAA4D;AAC5D,qFAAmE;AACnE,6EAA2D;AAC3D,mFAAiE;AACjE,iFAA+D;AAC/D,gFAA8D;AAC9D,2FAAyE;AACzE,6EAA2D;AAC3D,+EAA6D;AAC7D,sEAAoD;AACpD,4EAA0D;AAC1D,6DAA2C;AAC3C,sEAAoD;AACpD,yEAAuD;AACvD,iEAA+C;AAC/C,kEAAgD;AAChD,sEAAoD;AACpD,+DAA6C;AAC7C,qEAAmD;AACnD,8DAA4C;AAC5C,+DAA6C;AAC7C,8DAA4C;AAC5C,oEAAkD;AAClD,iEAA+C;AAC/C,gEAA8C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4EAA8D;AACrD,0CAAe;AACxB,4DAA0C;AAC1C,oDAAkC;AAClC,wDAAsC;AACtC,mDAAiC;AACjC,0DAAwC;AACxC,0EAAwD;AACxD,yDAAuC;AACvC,uDAAqC;AACrC,yDAAuC;AACvC,8EAA4D;AAC5D,6EAA2D;AAC3D,iDAA+B;AAC/B,wDAAsC;AACtC,wDAAsC;AACtC,qDAAmC;AACnC,gFAA8D;AAC9D,0GAAwF;AACxF,+FAA6E;AAC7E,mEAAiD;AACjD,uEAAqD;AACrD,sEAAoD;AACpD,oEAAkD;AAClD,0EAAwD;AACxD,oEAAkD;AAClD,2EAAyD;AACzD,0EAAwD;AACxD,qEAAmD;AACnD,6FAA2E;AAC3E,wEAAsD;AACtD,uEAAqD;AACrD,yEAAuD;AACvD,mEAAiD;AACjD,iEAA+C;AAC/C,mEAAiD;AACjD,0EAAwD;AACxD,wEAAsD;AACtD,2EAAyD;AACzD,yEAAuD;AACvD,sEAAoD;AACpD,2EAAyD;AACzD,+EAA6D;AAC7D,+EAA6D;AAC7D,8EAA4D;AAC5D,qFAAmE;AACnE,6EAA2D;AAC3D,mFAAiE;AACjE,iFAA+D;AAC/D,gFAA8D;AAC9D,2FAAyE;AACzE,6EAA2D;AAC3D,+EAA6D;AAC7D,sEAAoD;AACpD,4EAA0D;AAC1D,6DAA2C;AAC3C,sEAAoD;AACpD,yEAAuD;AACvD,iEAA+C;AAC/C,kEAAgD;AAChD,sEAAoD;AACpD,+DAA6C;AAC7C,qEAAmD;AACnD,8DAA4C;AAC5C,+DAA6C;AAC7C,8DAA4C;AAC5C,oEAAkD;AAClD,iEAA+C;AAC/C,gEAA8C"}
@@ -91,6 +91,10 @@ let WorkspaceDetails = WorkspaceDetails_1 = class WorkspaceDetails {
91
91
  Logger_1.Logger.debug(`${tabTitle}`);
92
92
  await this.clickOnTab(tabTitle, timeout);
93
93
  }
94
+ async getStorageTypeValue(timeout = TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT) {
95
+ Logger_1.Logger.debug();
96
+ return await this.driverHelper.waitAndGetText(WorkspaceDetails_1.STORAGE_TYPE_VALUE, timeout);
97
+ }
94
98
  async clickStorageTypeInfo() {
95
99
  Logger_1.Logger.debug();
96
100
  await this.driverHelper.waitAndClick(WorkspaceDetails_1.STORAGE_TYPE_INFO_BUTTON);
@@ -168,6 +172,8 @@ WorkspaceDetails.SAVE_BUTTON = selenium_webdriver_1.By.css('button[name="save-bu
168
172
  WorkspaceDetails.ENABLED_SAVE_BUTTON = selenium_webdriver_1.By.css('button[name="save-button"][aria-disabled="false"]');
169
173
  WorkspaceDetails.WORKSPACE_DETAILS_LOADER = selenium_webdriver_1.By.css('workspace-details-overview md-progress-linear');
170
174
  WorkspaceDetails.STORAGE_TYPE_INFO_BUTTON = selenium_webdriver_1.By.css('span[aria-label="More info for storage type"]');
175
+ WorkspaceDetails.STORAGE_TYPE_VALUE = selenium_webdriver_1.By.xpath('//span[@aria-label="More info for storage type"]/ancestor::div[contains(@class, "pf-v6-c-form__group")]' +
176
+ '//div[contains(@class, "pf-v6-c-form__group-control")]/span');
171
177
  WorkspaceDetails.CLOSE_STORAGE_TYPE_INFO_BUTTON = selenium_webdriver_1.By.xpath('//button[@aria-label="Close"]');
172
178
  WorkspaceDetails.STORAGE_TYPE_DOC_LINK = selenium_webdriver_1.By.xpath('//div/p/a');
173
179
  WorkspaceDetails.DEVFILE_DOC_LINK = selenium_webdriver_1.By.xpath('//a[text()="Devfile Documentation"]');
@@ -1 +1 @@
1
- {"version":3,"file":"WorkspaceDetails.js","sourceRoot":"","sources":["../../../../pageobjects/dashboard/workspace-details/WorkspaceDetails.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkspaceDetails.js","sourceRoot":"","sources":["../../../../pageobjects/dashboard/workspace-details/WorkspaceDetails.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var RestartWorkspaceDialog_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.RestartWorkspaceDialog = void 0;
17
+ /** *******************************************************************
18
+ * copyright (c) 2026 Red Hat, Inc.
19
+ *
20
+ * This program and the accompanying materials are made
21
+ * available under the terms of the Eclipse Public License 2.0
22
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
23
+ *
24
+ * SPDX-License-Identifier: EPL-2.0
25
+ **********************************************************************/
26
+ const inversify_1 = require("inversify");
27
+ const inversify_types_1 = require("../../configs/inversify.types");
28
+ const selenium_webdriver_1 = require("selenium-webdriver");
29
+ const DriverHelper_1 = require("../../utils/DriverHelper");
30
+ const Logger_1 = require("../../utils/Logger");
31
+ const TIMEOUT_CONSTANTS_1 = require("../../constants/TIMEOUT_CONSTANTS");
32
+ let RestartWorkspaceDialog = RestartWorkspaceDialog_1 = class RestartWorkspaceDialog {
33
+ constructor(driverHelper) {
34
+ this.driverHelper = driverHelper;
35
+ }
36
+ async restartFromLocalDevfile(projectName) {
37
+ Logger_1.Logger.debug();
38
+ await this.driverHelper.getDriver().actions().keyDown(selenium_webdriver_1.Key.CONTROL).sendKeys('p').keyUp(selenium_webdriver_1.Key.CONTROL).perform();
39
+ await this.driverHelper.wait(TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING);
40
+ await this.driverHelper.getDriver().actions().sendKeys('>Dev Spaces: Restart Workspace from Local Devfile').perform();
41
+ await this.driverHelper.wait(TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING);
42
+ await this.driverHelper.getDriver().actions().sendKeys(selenium_webdriver_1.Key.ENTER).perform();
43
+ await this.driverHelper.wait(TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING);
44
+ await this.driverHelper.getDriver().actions().sendKeys(`/projects/${projectName}/devfile.yaml`).perform();
45
+ await this.driverHelper.wait(TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING);
46
+ await this.driverHelper.getDriver().actions().sendKeys(selenium_webdriver_1.Key.ENTER).perform();
47
+ await this.driverHelper.wait(TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING);
48
+ await this.driverHelper.waitAndClick(RestartWorkspaceDialog_1.RESTART_BUTTON);
49
+ }
50
+ async confirmRestartWorkspace(timeout = TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_COMMON_PLUGIN_TEST_TIMEOUT) {
51
+ Logger_1.Logger.debug();
52
+ await this.driverHelper.waitAndClick(RestartWorkspaceDialog_1.RESTART_WORKSPACE_BUTTON, timeout);
53
+ }
54
+ async clickRestartWithDefaultDevfile(timeout = TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_SELENIUM_START_WORKSPACE_TIMEOUT) {
55
+ Logger_1.Logger.debug();
56
+ await this.driverHelper.waitAndClick(RestartWorkspaceDialog_1.RESTART_WITH_DEFAULT_DEVFILE_BUTTON, timeout);
57
+ }
58
+ async getErrorDialogText(timeout = TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_COMMON_PLUGIN_TEST_TIMEOUT) {
59
+ Logger_1.Logger.debug();
60
+ const element = await this.driverHelper.waitVisibility(RestartWorkspaceDialog_1.ERROR_DIALOG_TEXT, timeout);
61
+ return element.getText();
62
+ }
63
+ async getErrorDetailText(timeout = TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_COMMON_PLUGIN_TEST_TIMEOUT) {
64
+ Logger_1.Logger.debug();
65
+ const element = await this.driverHelper.waitVisibility(RestartWorkspaceDialog_1.ERROR_DIALOG_DETAIL, timeout);
66
+ return element.getText();
67
+ }
68
+ };
69
+ RestartWorkspaceDialog.RESTART_BUTTON = selenium_webdriver_1.By.xpath('//div[@class="dialog-buttons"]//a[text()="Restart"]');
70
+ RestartWorkspaceDialog.RESTART_WORKSPACE_BUTTON = selenium_webdriver_1.By.xpath('//div[@class="dialog-buttons"]//a[text()="Restart your workspace"]');
71
+ RestartWorkspaceDialog.RESTART_WITH_DEFAULT_DEVFILE_BUTTON = selenium_webdriver_1.By.xpath('//span[text()="Restart with default devfile"]');
72
+ RestartWorkspaceDialog.ERROR_DIALOG_TEXT = selenium_webdriver_1.By.xpath('//*[@class="dialog-message-text"]');
73
+ RestartWorkspaceDialog.ERROR_DIALOG_DETAIL = selenium_webdriver_1.By.xpath('//*[@class="dialog-message-detail"]');
74
+ RestartWorkspaceDialog = RestartWorkspaceDialog_1 = __decorate([
75
+ (0, inversify_1.injectable)(),
76
+ __param(0, (0, inversify_1.inject)(inversify_types_1.CLASSES.DriverHelper)),
77
+ __metadata("design:paramtypes", [DriverHelper_1.DriverHelper])
78
+ ], RestartWorkspaceDialog);
79
+ exports.RestartWorkspaceDialog = RestartWorkspaceDialog;
80
+ //# sourceMappingURL=RestartWorkspaceDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RestartWorkspaceDialog.js","sourceRoot":"","sources":["../../../pageobjects/ide/RestartWorkspaceDialog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,266 @@
1
+ "use strict";
2
+ /** *******************************************************************
3
+ * copyright (c) 2026 Red Hat, Inc.
4
+ *
5
+ * This program and the accompanying materials are made
6
+ * available under the terms of the Eclipse Public License 2.0
7
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
8
+ *
9
+ * SPDX-License-Identifier: EPL-2.0
10
+ **********************************************************************/
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const chai_1 = require("chai");
13
+ const BASE_TEST_CONSTANTS_1 = require("../../constants/BASE_TEST_CONSTANTS");
14
+ const TIMEOUT_CONSTANTS_1 = require("../../constants/TIMEOUT_CONSTANTS");
15
+ const inversify_config_1 = require("../../configs/inversify.config");
16
+ const inversify_types_1 = require("../../configs/inversify.types");
17
+ const Logger_1 = require("../../utils/Logger");
18
+ const WorkspaceHandlingTests_1 = require("../../tests-library/WorkspaceHandlingTests");
19
+ const selenium_webdriver_1 = require("selenium-webdriver");
20
+ const MochaHooks_1 = require("../MochaHooks");
21
+ suite(`Test case with empty workspace (per-user storage) ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
22
+ const loginTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.LoginTests);
23
+ const workspaceHandlingTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.WorkspaceHandlingTests);
24
+ const dashboard = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.Dashboard);
25
+ const browserTabsUtil = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.BrowserTabsUtil);
26
+ const driverHelper = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.DriverHelper);
27
+ const projectAndFileTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ProjectAndFileTests);
28
+ const containerTerminal = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ContainerTerminal);
29
+ const kubernetesCommandLineToolsExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor);
30
+ const shellExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ShellExecutor);
31
+ const restartWorkspaceDialog = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.RestartWorkspaceDialog);
32
+ const testFileName = 'test-new-file.txt';
33
+ const testFileContent = 'test file content for restart verification';
34
+ const gitRepository = BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()
35
+ ? 'https://gh.crw-qe.com/test-automation-only/devfile-with-typo'
36
+ : 'https://github.com/dmytro-ndp/devfile-with-typo';
37
+ const projectName = 'devfile-with-typo';
38
+ let currentTabHandle = 'undefined';
39
+ const editorXpath = '//*[@id="editor-selector-card-che-incubator/che-code/latest"]';
40
+ const xPathToWaitFor = '//*[@id="workbench.parts.sidebar"]';
41
+ const cheClusterName = 'devspaces';
42
+ let originalStorageStrategy = '';
43
+ suiteSetup('Login into Che and set per-user storage strategy', async function () {
44
+ kubernetesCommandLineToolsExecutor.loginToOcp();
45
+ shellExecutor.executeCommand('oc project openshift-devspaces');
46
+ originalStorageStrategy = shellExecutor
47
+ .executeCommand(`oc get checluster/${cheClusterName} -o "jsonpath={.spec.devEnvironments.storage.pvcStrategy}"`)
48
+ .stdout.trim();
49
+ if (originalStorageStrategy !== 'per-user') {
50
+ const patchResult = shellExecutor.executeCommand(`oc patch checluster ${cheClusterName} --type=merge ` +
51
+ '-p \'{"spec":{"devEnvironments":{"storage":{"pvcStrategy":"per-user"}}}}\'');
52
+ (0, chai_1.expect)(patchResult.code).to.equal(0, 'Failed to patch CheCluster to set per-user storage strategy');
53
+ }
54
+ await loginTests.loginIntoChe();
55
+ });
56
+ function clearCurrentTabHandle() {
57
+ currentTabHandle = 'undefined';
58
+ }
59
+ test('Create Empty workspace', async function () {
60
+ await dashboard.openDashboard();
61
+ currentTabHandle = await browserTabsUtil.getCurrentWindowHandle();
62
+ await dashboard.clickCreateWorkspaceButton();
63
+ await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndSample(editorXpath, 'Empty Workspace', xPathToWaitFor);
64
+ (0, MochaHooks_1.registerRunningWorkspace)(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
65
+ });
66
+ test('Setup workspace context for API operations', function () {
67
+ kubernetesCommandLineToolsExecutor.workspaceName = WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName();
68
+ kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
69
+ });
70
+ test('Clone devfile-with-typo repository', function () {
71
+ const cloneOutput = containerTerminal.gitClone(gitRepository);
72
+ (0, chai_1.expect)(cloneOutput.stdout + cloneOutput.stderr).includes('Cloning');
73
+ });
74
+ test('Accept the project as a trusted one', async function () {
75
+ await projectAndFileTests.performTrustAuthorDialog();
76
+ });
77
+ test('Verify cloned project exists', function () {
78
+ (0, chai_1.expect)(containerTerminal.ls().stdout).includes(projectName);
79
+ });
80
+ test('Create new file in project root', function () {
81
+ const output = containerTerminal.execInContainerCommand(`echo "${testFileContent}" > /projects/${projectName}/${testFileName}`);
82
+ (0, chai_1.expect)(output.code).to.equal(0);
83
+ });
84
+ test('Restart workspace from local devfile with bad image', async function () {
85
+ await restartWorkspaceDialog.restartFromLocalDevfile(projectName);
86
+ Logger_1.Logger.info('Waiting for "Restart Workspace" confirmation popup');
87
+ await restartWorkspaceDialog.confirmRestartWorkspace();
88
+ });
89
+ test('Wait for workspace start failure and restart', async function () {
90
+ Logger_1.Logger.info('Waiting for workspace to enter Failed phase and restart with default devfile');
91
+ await restartWorkspaceDialog.clickRestartWithDefaultDevfile();
92
+ await driverHelper.waitVisibility(selenium_webdriver_1.By.xpath(xPathToWaitFor), TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_IDE_START_TIMEOUT);
93
+ });
94
+ test('Re-initialize workspace context after restart', function () {
95
+ kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
96
+ });
97
+ test('Verify project exists with cloned files after restart', function () {
98
+ (0, chai_1.expect)(containerTerminal.ls().stdout).includes(projectName);
99
+ (0, chai_1.expect)(containerTerminal.ls(`/projects/${projectName}`).stdout).includes('devfile.yaml');
100
+ });
101
+ test('Verify new file is present in project root after restart', function () {
102
+ const output = containerTerminal.execInContainerCommand(`cat /projects/${projectName}/${testFileName}`);
103
+ (0, chai_1.expect)(output.stdout.trim()).to.equal(testFileContent);
104
+ });
105
+ test('Verify devfile schema validation error on invalid env declaration', async function () {
106
+ Logger_1.Logger.info('Appending invalid env declaration to devfile.yaml');
107
+ const appendOutput = containerTerminal.execInContainerCommand(`echo " env:" >> /projects/${projectName}/devfile.yaml && ` +
108
+ `echo " - name: test-env" >> /projects/${projectName}/devfile.yaml && ` +
109
+ `echo " value: true" >> /projects/${projectName}/devfile.yaml`);
110
+ (0, chai_1.expect)(appendOutput.code).to.equal(0, 'Failed to append invalid env content to devfile.yaml');
111
+ Logger_1.Logger.info('Restart from local devfile');
112
+ await restartWorkspaceDialog.restartFromLocalDevfile(projectName);
113
+ Logger_1.Logger.info('Check error popup');
114
+ const dialogText = await restartWorkspaceDialog.getErrorDialogText();
115
+ Logger_1.Logger.info(`Error dialog title text: ${dialogText}`);
116
+ const detailText = await restartWorkspaceDialog.getErrorDetailText();
117
+ Logger_1.Logger.info(`Error dialog detail text: ${detailText}`);
118
+ (0, chai_1.expect)(detailText).to.equal('Devfile schema validation failed. Error: 0: instance.components[0] is not allowed to have the additional property "env"');
119
+ });
120
+ suiteTeardown('Delete DevWorkspace', async function () {
121
+ Logger_1.Logger.debug('Delete DevWorkspace. After each test.');
122
+ if (currentTabHandle !== 'undefined') {
123
+ await browserTabsUtil.switchToWindow(currentTabHandle);
124
+ }
125
+ await dashboard.openDashboard();
126
+ await browserTabsUtil.closeAllTabsExceptCurrent();
127
+ if (WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName() !== 'undefined') {
128
+ Logger_1.Logger.debug('Workspace name is defined. Deleting workspace...');
129
+ await dashboard.deleteStoppedWorkspaceByUI(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
130
+ }
131
+ WorkspaceHandlingTests_1.WorkspaceHandlingTests.clearWorkspaceName();
132
+ clearCurrentTabHandle();
133
+ (0, MochaHooks_1.registerRunningWorkspace)('');
134
+ if (originalStorageStrategy !== '' && originalStorageStrategy !== 'per-user') {
135
+ const restoreResult = shellExecutor.executeCommand(`oc patch checluster ${cheClusterName} --type=merge ` +
136
+ `-p '{"spec":{"devEnvironments":{"storage":{"pvcStrategy":"${originalStorageStrategy}"}}}}'`);
137
+ (0, chai_1.expect)(restoreResult.code).to.equal(0, 'Failed to restore CheCluster storage strategy');
138
+ }
139
+ });
140
+ });
141
+ suite(`Test case with pvc-fail workspace (bad image restart) ${BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function () {
142
+ const loginTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.LoginTests);
143
+ const workspaceHandlingTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.WorkspaceHandlingTests);
144
+ const dashboard = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.Dashboard);
145
+ const workspaces = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.Workspaces);
146
+ const workspaceDetails = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.WorkspaceDetails);
147
+ const browserTabsUtil = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.BrowserTabsUtil);
148
+ const driverHelper = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.DriverHelper);
149
+ const containerTerminal = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ContainerTerminal);
150
+ const kubernetesCommandLineToolsExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.KubernetesCommandLineToolsExecutor);
151
+ const projectAndFileTests = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ProjectAndFileTests);
152
+ const shellExecutor = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.ShellExecutor);
153
+ const restartWorkspaceDialog = inversify_config_1.e2eContainer.get(inversify_types_1.CLASSES.RestartWorkspaceDialog);
154
+ const testFileName = 'test-new-file.txt';
155
+ const testFileContent = 'test file content for pvc-fail restart verification';
156
+ const gitRepository = 'https://github.com/cgruver/test-workspace/tree/pvc-fail';
157
+ const projectName = 'test-workspace';
158
+ let currentTabHandle = 'undefined';
159
+ const xPathToWaitFor = '//*[@id="workbench.parts.sidebar"]';
160
+ const editorXpath = '//*[@id="editor-selector-card-che-incubator/che-code/latest"]';
161
+ const cheClusterName = 'devspaces';
162
+ let originalStorageStrategy = '';
163
+ suiteSetup('Skip suite on disconnected clusters', function () {
164
+ if (BASE_TEST_CONSTANTS_1.BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()) {
165
+ Logger_1.Logger.info('Test cluster is disconnected. Skipping pvc-fail workspace suite.');
166
+ this.skip();
167
+ }
168
+ });
169
+ suiteSetup('Login into Che and set per-workspace storage strategy', async function () {
170
+ kubernetesCommandLineToolsExecutor.loginToOcp();
171
+ shellExecutor.executeCommand('oc project openshift-devspaces');
172
+ originalStorageStrategy = shellExecutor
173
+ .executeCommand(`oc get checluster/${cheClusterName} -o "jsonpath={.spec.devEnvironments.storage.pvcStrategy}"`)
174
+ .stdout.trim();
175
+ if (originalStorageStrategy !== 'per-workspace') {
176
+ const patchResult = shellExecutor.executeCommand(`oc patch checluster ${cheClusterName} --type=merge ` +
177
+ '-p \'{"spec":{"devEnvironments":{"storage":{"pvcStrategy":"per-workspace"}}}}\'');
178
+ (0, chai_1.expect)(patchResult.code).to.equal(0, 'Failed to patch CheCluster to set per-workspace storage strategy');
179
+ }
180
+ await loginTests.loginIntoChe();
181
+ });
182
+ function clearCurrentTabHandle() {
183
+ currentTabHandle = 'undefined';
184
+ }
185
+ test('Create workspace from test-workspace pvc-fail branch', async function () {
186
+ await dashboard.openDashboard();
187
+ currentTabHandle = await browserTabsUtil.getCurrentWindowHandle();
188
+ await dashboard.clickCreateWorkspaceButton();
189
+ await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndGitUrl(editorXpath, gitRepository, xPathToWaitFor);
190
+ (0, MochaHooks_1.registerRunningWorkspace)(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
191
+ });
192
+ test('Accept the project as a trusted one', async function () {
193
+ await projectAndFileTests.performTrustAuthorDialog();
194
+ });
195
+ test('Setup workspace context for API operations', function () {
196
+ kubernetesCommandLineToolsExecutor.workspaceName = WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName();
197
+ kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
198
+ });
199
+ test('Create new file in project folder', function () {
200
+ const output = containerTerminal.execInContainerCommand(`echo "${testFileContent}" > /projects/${projectName}/${testFileName}`);
201
+ (0, chai_1.expect)(output.code).to.equal(0);
202
+ });
203
+ test('Modify devfile to point to bad image location', function () {
204
+ Logger_1.Logger.info('Replacing ":latest" with ":badimage" in devfile.yaml using sed');
205
+ const output = containerTerminal.execInContainerCommand(`sed -i 's/:latest/:badimage/g' /projects/${projectName}/devfile.yaml`);
206
+ (0, chai_1.expect)(output.code).to.equal(0, 'Failed to replace :latest with :badimage in devfile.yaml');
207
+ const verifyOutput = containerTerminal.execInContainerCommand(`cat /projects/${projectName}/devfile.yaml`);
208
+ (0, chai_1.expect)(verifyOutput.stdout).to.include(':badimage');
209
+ (0, chai_1.expect)(verifyOutput.stdout).to.not.include(':latest');
210
+ });
211
+ test('Restart workspace from local devfile with bad image', async function () {
212
+ await restartWorkspaceDialog.restartFromLocalDevfile(projectName);
213
+ Logger_1.Logger.info('Waiting for "Restart Workspace" confirmation popup');
214
+ await restartWorkspaceDialog.confirmRestartWorkspace();
215
+ });
216
+ test('Wait for workspace start failure and restart with default devfile', async function () {
217
+ Logger_1.Logger.info('Waiting for workspace to enter Failed phase and restart with default devfile');
218
+ await restartWorkspaceDialog.clickRestartWithDefaultDevfile();
219
+ await driverHelper.waitVisibility(selenium_webdriver_1.By.xpath(xPathToWaitFor), TIMEOUT_CONSTANTS_1.TIMEOUT_CONSTANTS.TS_IDE_START_TIMEOUT);
220
+ });
221
+ test('Re-initialize workspace context after restart', function () {
222
+ kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
223
+ });
224
+ test('Verify project exists after restart with default devfile', function () {
225
+ (0, chai_1.expect)(containerTerminal.ls().stdout).includes(projectName);
226
+ (0, chai_1.expect)(containerTerminal.ls(`/projects/${projectName}`).stdout).includes('devfile.yaml');
227
+ });
228
+ test('Verify new file is present after restart with default devfile', function () {
229
+ const output = containerTerminal.execInContainerCommand(`cat /projects/${projectName}/${testFileName}`);
230
+ (0, chai_1.expect)(output.stdout.trim()).to.equal(testFileContent);
231
+ });
232
+ test('Verify storage type is per-workspace in workspace details', async function () {
233
+ const workspaceName = WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName();
234
+ Logger_1.Logger.info('Opening Workspaces page');
235
+ await dashboard.openDashboard();
236
+ await dashboard.clickWorkspacesButton();
237
+ await workspaces.waitPage();
238
+ Logger_1.Logger.info(`Opening workspace details for: ${workspaceName}`);
239
+ await workspaces.clickWorkspaceListItemLink(workspaceName);
240
+ await workspaceDetails.waitWorkspaceTitle(workspaceName);
241
+ Logger_1.Logger.info('Verifying storage type is per-workspace on Overview tab');
242
+ const storageTypeValue = await workspaceDetails.getStorageTypeValue();
243
+ (0, chai_1.expect)(storageTypeValue).to.equal('per-workspace');
244
+ });
245
+ suiteTeardown('Delete DevWorkspace', async function () {
246
+ Logger_1.Logger.debug('Delete DevWorkspace. After each test.');
247
+ if (currentTabHandle !== 'undefined') {
248
+ await browserTabsUtil.switchToWindow(currentTabHandle);
249
+ }
250
+ await dashboard.openDashboard();
251
+ await browserTabsUtil.closeAllTabsExceptCurrent();
252
+ if (WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName() !== 'undefined') {
253
+ Logger_1.Logger.debug('Workspace name is defined. Deleting workspace...');
254
+ await dashboard.deleteStoppedWorkspaceByUI(WorkspaceHandlingTests_1.WorkspaceHandlingTests.getWorkspaceName());
255
+ }
256
+ WorkspaceHandlingTests_1.WorkspaceHandlingTests.clearWorkspaceName();
257
+ clearCurrentTabHandle();
258
+ (0, MochaHooks_1.registerRunningWorkspace)('');
259
+ if (originalStorageStrategy !== '' && originalStorageStrategy !== 'per-workspace') {
260
+ const restoreResult = shellExecutor.executeCommand(`oc patch checluster ${cheClusterName} --type=merge ` +
261
+ `-p '{"spec":{"devEnvironments":{"storage":{"pvcStrategy":"${originalStorageStrategy}"}}}}'`);
262
+ (0, chai_1.expect)(restoreResult.code).to.equal(0, 'Failed to restore CheCluster storage strategy');
263
+ }
264
+ });
265
+ });
266
+ //# sourceMappingURL=RestartFromLocalDevfile.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RestartFromLocalDevfile.spec.js","sourceRoot":"","sources":["../../../specs/restart-tests/RestartFromLocalDevfile.spec.ts"],"names":[],"mappings":"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"}
package/index.ts CHANGED
@@ -36,6 +36,7 @@ export * from './pageobjects/ide/ExplorerView';
36
36
  export * from './pageobjects/ide/ExtensionsView';
37
37
  export * from './pageobjects/ide/GitHubExtensionDialog';
38
38
  export * from './pageobjects/ide/NotificationHandler';
39
+ export * from './pageobjects/ide/RestartWorkspaceDialog';
39
40
  export * from './pageobjects/ide/RestrictedModeButton';
40
41
  export * from './pageobjects/ide/SourceControlView';
41
42
  export * from './pageobjects/ide/ViewsMoreActionsButton';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-che/che-e2e",
3
- "version": "7.122.0-next-4d9831f",
3
+ "version": "7.122.0-next-3c10512",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -26,6 +26,10 @@ export class WorkspaceDetails {
26
26
  private static readonly ENABLED_SAVE_BUTTON: By = By.css('button[name="save-button"][aria-disabled="false"]');
27
27
  private static readonly WORKSPACE_DETAILS_LOADER: By = By.css('workspace-details-overview md-progress-linear');
28
28
  private static readonly STORAGE_TYPE_INFO_BUTTON: By = By.css('span[aria-label="More info for storage type"]');
29
+ private static readonly STORAGE_TYPE_VALUE: By = By.xpath(
30
+ '//span[@aria-label="More info for storage type"]/ancestor::div[contains(@class, "pf-v6-c-form__group")]' +
31
+ '//div[contains(@class, "pf-v6-c-form__group-control")]/span'
32
+ );
29
33
  private static readonly CLOSE_STORAGE_TYPE_INFO_BUTTON: By = By.xpath('//button[@aria-label="Close"]');
30
34
  private static readonly STORAGE_TYPE_DOC_LINK: By = By.xpath('//div/p/a');
31
35
  private static readonly DEVFILE_DOC_LINK: By = By.xpath('//a[text()="Devfile Documentation"]');
@@ -126,6 +130,12 @@ export class WorkspaceDetails {
126
130
  await this.clickOnTab(tabTitle, timeout);
127
131
  }
128
132
 
133
+ async getStorageTypeValue(timeout: number = TIMEOUT_CONSTANTS.TS_COMMON_DASHBOARD_WAIT_TIMEOUT): Promise<string> {
134
+ Logger.debug();
135
+
136
+ return await this.driverHelper.waitAndGetText(WorkspaceDetails.STORAGE_TYPE_VALUE, timeout);
137
+ }
138
+
129
139
  async clickStorageTypeInfo(): Promise<void> {
130
140
  Logger.debug();
131
141
 
@@ -0,0 +1,74 @@
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 { inject, injectable } from 'inversify';
11
+ import { CLASSES } from '../../configs/inversify.types';
12
+ import { By, Key, WebElement } from 'selenium-webdriver';
13
+ import { DriverHelper } from '../../utils/DriverHelper';
14
+ import { Logger } from '../../utils/Logger';
15
+ import { TIMEOUT_CONSTANTS } from '../../constants/TIMEOUT_CONSTANTS';
16
+
17
+ @injectable()
18
+ export class RestartWorkspaceDialog {
19
+ private static readonly RESTART_BUTTON: By = By.xpath('//div[@class="dialog-buttons"]//a[text()="Restart"]');
20
+ private static readonly RESTART_WORKSPACE_BUTTON: By = By.xpath('//div[@class="dialog-buttons"]//a[text()="Restart your workspace"]');
21
+ private static readonly RESTART_WITH_DEFAULT_DEVFILE_BUTTON: By = By.xpath('//span[text()="Restart with default devfile"]');
22
+ private static readonly ERROR_DIALOG_TEXT: By = By.xpath('//*[@class="dialog-message-text"]');
23
+ private static readonly ERROR_DIALOG_DETAIL: By = By.xpath('//*[@class="dialog-message-detail"]');
24
+
25
+ constructor(
26
+ @inject(CLASSES.DriverHelper)
27
+ private readonly driverHelper: DriverHelper
28
+ ) {}
29
+
30
+ async restartFromLocalDevfile(projectName: string): Promise<void> {
31
+ Logger.debug();
32
+
33
+ await this.driverHelper.getDriver().actions().keyDown(Key.CONTROL).sendKeys('p').keyUp(Key.CONTROL).perform();
34
+ await this.driverHelper.wait(TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING);
35
+
36
+ await this.driverHelper.getDriver().actions().sendKeys('>Dev Spaces: Restart Workspace from Local Devfile').perform();
37
+ await this.driverHelper.wait(TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING);
38
+ await this.driverHelper.getDriver().actions().sendKeys(Key.ENTER).perform();
39
+ await this.driverHelper.wait(TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING);
40
+
41
+ await this.driverHelper.getDriver().actions().sendKeys(`/projects/${projectName}/devfile.yaml`).perform();
42
+ await this.driverHelper.wait(TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING);
43
+ await this.driverHelper.getDriver().actions().sendKeys(Key.ENTER).perform();
44
+ await this.driverHelper.wait(TIMEOUT_CONSTANTS.TS_SELENIUM_DEFAULT_POLLING);
45
+
46
+ await this.driverHelper.waitAndClick(RestartWorkspaceDialog.RESTART_BUTTON);
47
+ }
48
+
49
+ async confirmRestartWorkspace(timeout: number = TIMEOUT_CONSTANTS.TS_COMMON_PLUGIN_TEST_TIMEOUT): Promise<void> {
50
+ Logger.debug();
51
+
52
+ await this.driverHelper.waitAndClick(RestartWorkspaceDialog.RESTART_WORKSPACE_BUTTON, timeout);
53
+ }
54
+
55
+ async clickRestartWithDefaultDevfile(timeout: number = TIMEOUT_CONSTANTS.TS_SELENIUM_START_WORKSPACE_TIMEOUT): Promise<void> {
56
+ Logger.debug();
57
+
58
+ await this.driverHelper.waitAndClick(RestartWorkspaceDialog.RESTART_WITH_DEFAULT_DEVFILE_BUTTON, timeout);
59
+ }
60
+
61
+ async getErrorDialogText(timeout: number = TIMEOUT_CONSTANTS.TS_COMMON_PLUGIN_TEST_TIMEOUT): Promise<string> {
62
+ Logger.debug();
63
+
64
+ const element: WebElement = await this.driverHelper.waitVisibility(RestartWorkspaceDialog.ERROR_DIALOG_TEXT, timeout);
65
+ return element.getText();
66
+ }
67
+
68
+ async getErrorDetailText(timeout: number = TIMEOUT_CONSTANTS.TS_COMMON_PLUGIN_TEST_TIMEOUT): Promise<string> {
69
+ Logger.debug();
70
+
71
+ const element: WebElement = await this.driverHelper.waitVisibility(RestartWorkspaceDialog.ERROR_DIALOG_DETAIL, timeout);
72
+ return element.getText();
73
+ }
74
+ }
@@ -0,0 +1,351 @@
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
+
11
+ import { ContainerTerminal, KubernetesCommandLineToolsExecutor } from '../../utils/KubernetesCommandLineToolsExecutor';
12
+ import { expect } from 'chai';
13
+ import { ShellString } from 'shelljs';
14
+ import { BASE_TEST_CONSTANTS } from '../../constants/BASE_TEST_CONSTANTS';
15
+ import { TIMEOUT_CONSTANTS } from '../../constants/TIMEOUT_CONSTANTS';
16
+ import { e2eContainer } from '../../configs/inversify.config';
17
+ import { CLASSES } from '../../configs/inversify.types';
18
+ import { ShellExecutor } from '../../utils/ShellExecutor';
19
+ import { Logger } from '../../utils/Logger';
20
+ import { LoginTests } from '../../tests-library/LoginTests';
21
+ import { WorkspaceHandlingTests } from '../../tests-library/WorkspaceHandlingTests';
22
+ import { Dashboard } from '../../pageobjects/dashboard/Dashboard';
23
+ import { Workspaces } from '../../pageobjects/dashboard/Workspaces';
24
+ import { WorkspaceDetails } from '../../pageobjects/dashboard/workspace-details/WorkspaceDetails';
25
+ import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
26
+ import { DriverHelper } from '../../utils/DriverHelper';
27
+ import { ProjectAndFileTests } from '../../tests-library/ProjectAndFileTests';
28
+ import { RestartWorkspaceDialog } from '../../pageobjects/ide/RestartWorkspaceDialog';
29
+ import { By } from 'selenium-webdriver';
30
+ import { registerRunningWorkspace } from '../MochaHooks';
31
+
32
+ suite(`Test case with empty workspace (per-user storage) ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function (): void {
33
+ const loginTests: LoginTests = e2eContainer.get(CLASSES.LoginTests);
34
+ const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests);
35
+ const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard);
36
+ const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
37
+ const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper);
38
+ const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests);
39
+ const containerTerminal: ContainerTerminal = e2eContainer.get(CLASSES.ContainerTerminal);
40
+ const kubernetesCommandLineToolsExecutor: KubernetesCommandLineToolsExecutor = e2eContainer.get(
41
+ CLASSES.KubernetesCommandLineToolsExecutor
42
+ );
43
+ const shellExecutor: ShellExecutor = e2eContainer.get(CLASSES.ShellExecutor);
44
+ const restartWorkspaceDialog: RestartWorkspaceDialog = e2eContainer.get(CLASSES.RestartWorkspaceDialog);
45
+ const testFileName: string = 'test-new-file.txt';
46
+ const testFileContent: string = 'test file content for restart verification';
47
+ const gitRepository: string = BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()
48
+ ? 'https://gh.crw-qe.com/test-automation-only/devfile-with-typo'
49
+ : 'https://github.com/dmytro-ndp/devfile-with-typo';
50
+ const projectName: string = 'devfile-with-typo';
51
+ let currentTabHandle: string = 'undefined';
52
+ const editorXpath: string = '//*[@id="editor-selector-card-che-incubator/che-code/latest"]';
53
+ const xPathToWaitFor: string = '//*[@id="workbench.parts.sidebar"]';
54
+ const cheClusterName: string = 'devspaces';
55
+ let originalStorageStrategy: string = '';
56
+
57
+ suiteSetup('Login into Che and set per-user storage strategy', async function (): Promise<void> {
58
+ kubernetesCommandLineToolsExecutor.loginToOcp();
59
+ shellExecutor.executeCommand('oc project openshift-devspaces');
60
+
61
+ originalStorageStrategy = shellExecutor
62
+ .executeCommand(`oc get checluster/${cheClusterName} -o "jsonpath={.spec.devEnvironments.storage.pvcStrategy}"`)
63
+ .stdout.trim();
64
+
65
+ if (originalStorageStrategy !== 'per-user') {
66
+ const patchResult: ShellString = shellExecutor.executeCommand(
67
+ `oc patch checluster ${cheClusterName} --type=merge ` +
68
+ '-p \'{"spec":{"devEnvironments":{"storage":{"pvcStrategy":"per-user"}}}}\''
69
+ );
70
+ expect(patchResult.code).to.equal(0, 'Failed to patch CheCluster to set per-user storage strategy');
71
+ }
72
+
73
+ await loginTests.loginIntoChe();
74
+ });
75
+
76
+ function clearCurrentTabHandle(): void {
77
+ currentTabHandle = 'undefined';
78
+ }
79
+
80
+ test('Create Empty workspace', async function (): Promise<void> {
81
+ await dashboard.openDashboard();
82
+ currentTabHandle = await browserTabsUtil.getCurrentWindowHandle();
83
+ await dashboard.clickCreateWorkspaceButton();
84
+ await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndSample(editorXpath, 'Empty Workspace', xPathToWaitFor);
85
+ registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName());
86
+ });
87
+
88
+ test('Setup workspace context for API operations', function (): void {
89
+ kubernetesCommandLineToolsExecutor.workspaceName = WorkspaceHandlingTests.getWorkspaceName();
90
+ kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
91
+ });
92
+
93
+ test('Clone devfile-with-typo repository', function (): void {
94
+ const cloneOutput: ShellString = containerTerminal.gitClone(gitRepository);
95
+ expect(cloneOutput.stdout + cloneOutput.stderr).includes('Cloning');
96
+ });
97
+
98
+ test('Accept the project as a trusted one', async function (): Promise<void> {
99
+ await projectAndFileTests.performTrustAuthorDialog();
100
+ });
101
+
102
+ test('Verify cloned project exists', function (): void {
103
+ expect(containerTerminal.ls().stdout).includes(projectName);
104
+ });
105
+
106
+ test('Create new file in project root', function (): void {
107
+ const output: ShellString = containerTerminal.execInContainerCommand(
108
+ `echo "${testFileContent}" > /projects/${projectName}/${testFileName}`
109
+ );
110
+ expect(output.code).to.equal(0);
111
+ });
112
+
113
+ test('Restart workspace from local devfile with bad image', async function (): Promise<void> {
114
+ await restartWorkspaceDialog.restartFromLocalDevfile(projectName);
115
+ Logger.info('Waiting for "Restart Workspace" confirmation popup');
116
+ await restartWorkspaceDialog.confirmRestartWorkspace();
117
+ });
118
+
119
+ test('Wait for workspace start failure and restart', async function (): Promise<void> {
120
+ Logger.info('Waiting for workspace to enter Failed phase and restart with default devfile');
121
+ await restartWorkspaceDialog.clickRestartWithDefaultDevfile();
122
+ await driverHelper.waitVisibility(By.xpath(xPathToWaitFor), TIMEOUT_CONSTANTS.TS_IDE_START_TIMEOUT);
123
+ });
124
+
125
+ test('Re-initialize workspace context after restart', function (): void {
126
+ kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
127
+ });
128
+
129
+ test('Verify project exists with cloned files after restart', function (): void {
130
+ expect(containerTerminal.ls().stdout).includes(projectName);
131
+ expect(containerTerminal.ls(`/projects/${projectName}`).stdout).includes('devfile.yaml');
132
+ });
133
+
134
+ test('Verify new file is present in project root after restart', function (): void {
135
+ const output: ShellString = containerTerminal.execInContainerCommand(`cat /projects/${projectName}/${testFileName}`);
136
+ expect(output.stdout.trim()).to.equal(testFileContent);
137
+ });
138
+
139
+ test('Verify devfile schema validation error on invalid env declaration', async function (): Promise<void> {
140
+ Logger.info('Appending invalid env declaration to devfile.yaml');
141
+ const appendOutput: ShellString = containerTerminal.execInContainerCommand(
142
+ `echo " env:" >> /projects/${projectName}/devfile.yaml && ` +
143
+ `echo " - name: test-env" >> /projects/${projectName}/devfile.yaml && ` +
144
+ `echo " value: true" >> /projects/${projectName}/devfile.yaml`
145
+ );
146
+ expect(appendOutput.code).to.equal(0, 'Failed to append invalid env content to devfile.yaml');
147
+
148
+ Logger.info('Restart from local devfile');
149
+ await restartWorkspaceDialog.restartFromLocalDevfile(projectName);
150
+
151
+ Logger.info('Check error popup');
152
+ const dialogText: string = await restartWorkspaceDialog.getErrorDialogText();
153
+ Logger.info(`Error dialog title text: ${dialogText}`);
154
+
155
+ const detailText: string = await restartWorkspaceDialog.getErrorDetailText();
156
+ Logger.info(`Error dialog detail text: ${detailText}`);
157
+
158
+ expect(detailText).to.equal(
159
+ 'Devfile schema validation failed. Error: 0: instance.components[0] is not allowed to have the additional property "env"'
160
+ );
161
+ });
162
+
163
+ suiteTeardown('Delete DevWorkspace', async function (): Promise<void> {
164
+ Logger.debug('Delete DevWorkspace. After each test.');
165
+ if (currentTabHandle !== 'undefined') {
166
+ await browserTabsUtil.switchToWindow(currentTabHandle);
167
+ }
168
+
169
+ await dashboard.openDashboard();
170
+ await browserTabsUtil.closeAllTabsExceptCurrent();
171
+
172
+ if (WorkspaceHandlingTests.getWorkspaceName() !== 'undefined') {
173
+ Logger.debug('Workspace name is defined. Deleting workspace...');
174
+ await dashboard.deleteStoppedWorkspaceByUI(WorkspaceHandlingTests.getWorkspaceName());
175
+ }
176
+
177
+ WorkspaceHandlingTests.clearWorkspaceName();
178
+ clearCurrentTabHandle();
179
+ registerRunningWorkspace('');
180
+
181
+ if (originalStorageStrategy !== '' && originalStorageStrategy !== 'per-user') {
182
+ const restoreResult: ShellString = shellExecutor.executeCommand(
183
+ `oc patch checluster ${cheClusterName} --type=merge ` +
184
+ `-p '{"spec":{"devEnvironments":{"storage":{"pvcStrategy":"${originalStorageStrategy}"}}}}'`
185
+ );
186
+ expect(restoreResult.code).to.equal(0, 'Failed to restore CheCluster storage strategy');
187
+ }
188
+ });
189
+ });
190
+
191
+ suite(`Test case with pvc-fail workspace (bad image restart) ${BASE_TEST_CONSTANTS.TEST_ENVIRONMENT}`, function (): void {
192
+ const loginTests: LoginTests = e2eContainer.get(CLASSES.LoginTests);
193
+ const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests);
194
+ const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard);
195
+ const workspaces: Workspaces = e2eContainer.get(CLASSES.Workspaces);
196
+ const workspaceDetails: WorkspaceDetails = e2eContainer.get(CLASSES.WorkspaceDetails);
197
+ const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
198
+ const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper);
199
+ const containerTerminal: ContainerTerminal = e2eContainer.get(CLASSES.ContainerTerminal);
200
+ const kubernetesCommandLineToolsExecutor: KubernetesCommandLineToolsExecutor = e2eContainer.get(
201
+ CLASSES.KubernetesCommandLineToolsExecutor
202
+ );
203
+ const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests);
204
+ const shellExecutor: ShellExecutor = e2eContainer.get(CLASSES.ShellExecutor);
205
+ const restartWorkspaceDialog: RestartWorkspaceDialog = e2eContainer.get(CLASSES.RestartWorkspaceDialog);
206
+ const testFileName: string = 'test-new-file.txt';
207
+ const testFileContent: string = 'test file content for pvc-fail restart verification';
208
+ const gitRepository: string = 'https://github.com/cgruver/test-workspace/tree/pvc-fail';
209
+ const projectName: string = 'test-workspace';
210
+ let currentTabHandle: string = 'undefined';
211
+ const xPathToWaitFor: string = '//*[@id="workbench.parts.sidebar"]';
212
+ const editorXpath: string = '//*[@id="editor-selector-card-che-incubator/che-code/latest"]';
213
+ const cheClusterName: string = 'devspaces';
214
+ let originalStorageStrategy: string = '';
215
+
216
+ suiteSetup('Skip suite on disconnected clusters', function (): void {
217
+ if (BASE_TEST_CONSTANTS.IS_CLUSTER_DISCONNECTED()) {
218
+ Logger.info('Test cluster is disconnected. Skipping pvc-fail workspace suite.');
219
+ this.skip();
220
+ }
221
+ });
222
+
223
+ suiteSetup('Login into Che and set per-workspace storage strategy', async function (): Promise<void> {
224
+ kubernetesCommandLineToolsExecutor.loginToOcp();
225
+ shellExecutor.executeCommand('oc project openshift-devspaces');
226
+
227
+ originalStorageStrategy = shellExecutor
228
+ .executeCommand(`oc get checluster/${cheClusterName} -o "jsonpath={.spec.devEnvironments.storage.pvcStrategy}"`)
229
+ .stdout.trim();
230
+
231
+ if (originalStorageStrategy !== 'per-workspace') {
232
+ const patchResult: ShellString = shellExecutor.executeCommand(
233
+ `oc patch checluster ${cheClusterName} --type=merge ` +
234
+ '-p \'{"spec":{"devEnvironments":{"storage":{"pvcStrategy":"per-workspace"}}}}\''
235
+ );
236
+ expect(patchResult.code).to.equal(0, 'Failed to patch CheCluster to set per-workspace storage strategy');
237
+ }
238
+
239
+ await loginTests.loginIntoChe();
240
+ });
241
+
242
+ function clearCurrentTabHandle(): void {
243
+ currentTabHandle = 'undefined';
244
+ }
245
+
246
+ test('Create workspace from test-workspace pvc-fail branch', async function (): Promise<void> {
247
+ await dashboard.openDashboard();
248
+ currentTabHandle = await browserTabsUtil.getCurrentWindowHandle();
249
+ await dashboard.clickCreateWorkspaceButton();
250
+ await workspaceHandlingTests.createAndOpenWorkspaceWithSpecificEditorAndGitUrl(editorXpath, gitRepository, xPathToWaitFor);
251
+ registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName());
252
+ });
253
+
254
+ test('Accept the project as a trusted one', async function (): Promise<void> {
255
+ await projectAndFileTests.performTrustAuthorDialog();
256
+ });
257
+
258
+ test('Setup workspace context for API operations', function (): void {
259
+ kubernetesCommandLineToolsExecutor.workspaceName = WorkspaceHandlingTests.getWorkspaceName();
260
+ kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
261
+ });
262
+
263
+ test('Create new file in project folder', function (): void {
264
+ const output: ShellString = containerTerminal.execInContainerCommand(
265
+ `echo "${testFileContent}" > /projects/${projectName}/${testFileName}`
266
+ );
267
+ expect(output.code).to.equal(0);
268
+ });
269
+
270
+ test('Modify devfile to point to bad image location', function (): void {
271
+ Logger.info('Replacing ":latest" with ":badimage" in devfile.yaml using sed');
272
+ const output: ShellString = containerTerminal.execInContainerCommand(
273
+ `sed -i 's/:latest/:badimage/g' /projects/${projectName}/devfile.yaml`
274
+ );
275
+ expect(output.code).to.equal(0, 'Failed to replace :latest with :badimage in devfile.yaml');
276
+
277
+ const verifyOutput: ShellString = containerTerminal.execInContainerCommand(`cat /projects/${projectName}/devfile.yaml`);
278
+ expect(verifyOutput.stdout).to.include(':badimage');
279
+ expect(verifyOutput.stdout).to.not.include(':latest');
280
+ });
281
+
282
+ test('Restart workspace from local devfile with bad image', async function (): Promise<void> {
283
+ await restartWorkspaceDialog.restartFromLocalDevfile(projectName);
284
+ Logger.info('Waiting for "Restart Workspace" confirmation popup');
285
+ await restartWorkspaceDialog.confirmRestartWorkspace();
286
+ });
287
+
288
+ test('Wait for workspace start failure and restart with default devfile', async function (): Promise<void> {
289
+ Logger.info('Waiting for workspace to enter Failed phase and restart with default devfile');
290
+ await restartWorkspaceDialog.clickRestartWithDefaultDevfile();
291
+ await driverHelper.waitVisibility(By.xpath(xPathToWaitFor), TIMEOUT_CONSTANTS.TS_IDE_START_TIMEOUT);
292
+ });
293
+
294
+ test('Re-initialize workspace context after restart', function (): void {
295
+ kubernetesCommandLineToolsExecutor.getPodAndContainerNames();
296
+ });
297
+
298
+ test('Verify project exists after restart with default devfile', function (): void {
299
+ expect(containerTerminal.ls().stdout).includes(projectName);
300
+ expect(containerTerminal.ls(`/projects/${projectName}`).stdout).includes('devfile.yaml');
301
+ });
302
+
303
+ test('Verify new file is present after restart with default devfile', function (): void {
304
+ const output: ShellString = containerTerminal.execInContainerCommand(`cat /projects/${projectName}/${testFileName}`);
305
+ expect(output.stdout.trim()).to.equal(testFileContent);
306
+ });
307
+
308
+ test('Verify storage type is per-workspace in workspace details', async function (): Promise<void> {
309
+ const workspaceName: string = WorkspaceHandlingTests.getWorkspaceName();
310
+
311
+ Logger.info('Opening Workspaces page');
312
+ await dashboard.openDashboard();
313
+ await dashboard.clickWorkspacesButton();
314
+ await workspaces.waitPage();
315
+
316
+ Logger.info(`Opening workspace details for: ${workspaceName}`);
317
+ await workspaces.clickWorkspaceListItemLink(workspaceName);
318
+ await workspaceDetails.waitWorkspaceTitle(workspaceName);
319
+
320
+ Logger.info('Verifying storage type is per-workspace on Overview tab');
321
+ const storageTypeValue: string = await workspaceDetails.getStorageTypeValue();
322
+ expect(storageTypeValue).to.equal('per-workspace');
323
+ });
324
+
325
+ suiteTeardown('Delete DevWorkspace', async function (): Promise<void> {
326
+ Logger.debug('Delete DevWorkspace. After each test.');
327
+ if (currentTabHandle !== 'undefined') {
328
+ await browserTabsUtil.switchToWindow(currentTabHandle);
329
+ }
330
+
331
+ await dashboard.openDashboard();
332
+ await browserTabsUtil.closeAllTabsExceptCurrent();
333
+
334
+ if (WorkspaceHandlingTests.getWorkspaceName() !== 'undefined') {
335
+ Logger.debug('Workspace name is defined. Deleting workspace...');
336
+ await dashboard.deleteStoppedWorkspaceByUI(WorkspaceHandlingTests.getWorkspaceName());
337
+ }
338
+
339
+ WorkspaceHandlingTests.clearWorkspaceName();
340
+ clearCurrentTabHandle();
341
+ registerRunningWorkspace('');
342
+
343
+ if (originalStorageStrategy !== '' && originalStorageStrategy !== 'per-workspace') {
344
+ const restoreResult: ShellString = shellExecutor.executeCommand(
345
+ `oc patch checluster ${cheClusterName} --type=merge ` +
346
+ `-p '{"spec":{"devEnvironments":{"storage":{"pvcStrategy":"${originalStorageStrategy}"}}}}'`
347
+ );
348
+ expect(restoreResult.code).to.equal(0, 'Failed to restore CheCluster storage strategy');
349
+ }
350
+ });
351
+ });