@red-hat-developer-hub/e2e-test-utils 1.1.40 → 1.1.41

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.
@@ -0,0 +1,5 @@
1
+ plugins:
2
+ - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-app-auth:bs_1.49.4__0.0.1
3
+ disabled: false
4
+ - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-app-integrations:bs_1.49.4__0.0.1
5
+ disabled: false
@@ -0,0 +1,8 @@
1
+ apiVersion: v1
2
+ kind: Secret
3
+ metadata:
4
+ name: rhdh-secrets
5
+ type: Opaque
6
+ stringData:
7
+ APP_CONFIG_app_packageName: app-next
8
+ ENABLE_STANDARD_MODULE_FEDERATION: "true"
@@ -0,0 +1,2 @@
1
+ # Helm values merge layer for the new frontend system (app-next); merged when NFS layers are active (additive; extend as needed).
2
+ {}
@@ -4,6 +4,12 @@ export declare const DEFAULT_CONFIG_PATHS: {
4
4
  appConfig: string;
5
5
  secrets: string;
6
6
  dynamicPlugins: string;
7
+ /** New frontend system (app-next): paths merged when the deployment uses NFS layers (explicit flag, `-app-next` namespace, or `USE_NEW_FRONTEND_SYSTEM`). */
8
+ newFrontendSystem: {
9
+ secrets: string;
10
+ dynamicPlugins: string;
11
+ valueFile: string;
12
+ };
7
13
  helm: {
8
14
  valueFile: string;
9
15
  };
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/deployment/rhdh/constants.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAK1D,eAAO,MAAM,oBAAoB;;;;;;;;;;CAyBhC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CACpC,YAAY,EACZ;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B,CAoCF,CAAC;AAEF,eAAO,MAAM,SAAS,6BAA6B,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/deployment/rhdh/constants.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAK1D,eAAO,MAAM,oBAAoB;;;;IAa/B,6JAA6J;;;;;;;;;;;;CA2B9J,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CACpC,YAAY,EACZ;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B,CAoCF,CAAC;AAEF,eAAO,MAAM,SAAS,6BAA6B,CAAC"}
@@ -5,6 +5,12 @@ export const DEFAULT_CONFIG_PATHS = {
5
5
  appConfig: path.join(PACKAGE_ROOT, "dist/deployment/rhdh/config/common/app-config-rhdh.yaml"),
6
6
  secrets: path.join(PACKAGE_ROOT, "dist/deployment/rhdh/config/common/rhdh-secrets.yaml"),
7
7
  dynamicPlugins: path.join(PACKAGE_ROOT, "dist/deployment/rhdh/config/common/dynamic-plugins.yaml"),
8
+ /** New frontend system (app-next): paths merged when the deployment uses NFS layers (explicit flag, `-app-next` namespace, or `USE_NEW_FRONTEND_SYSTEM`). */
9
+ newFrontendSystem: {
10
+ secrets: path.join(PACKAGE_ROOT, "dist/deployment/rhdh/config/new-frontend-system/secrets.yaml"),
11
+ dynamicPlugins: path.join(PACKAGE_ROOT, "dist/deployment/rhdh/config/new-frontend-system/dynamic-plugins.yaml"),
12
+ valueFile: path.join(PACKAGE_ROOT, "dist/deployment/rhdh/config/new-frontend-system/value_file.yaml"),
13
+ },
8
14
  helm: {
9
15
  valueFile: path.join(PACKAGE_ROOT, "dist/deployment/rhdh/config/helm/value_file.yaml"),
10
16
  },
@@ -13,8 +13,8 @@ export declare class RHDHDeployment {
13
13
  /** Shared merge strategy for dynamic plugin arrays. */
14
14
  private static readonly pluginMergeOpts;
15
15
  /**
16
- * Merges package defaults + auth config (+ optional user config) into a
17
- * single dynamic plugins configuration.
16
+ * Merges package defaults + auth + optional new-frontend-system defaults +
17
+ * optional user config into a single dynamic plugins configuration.
18
18
  */
19
19
  private _mergeBaseConfigs;
20
20
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../../src/deployment/rhdh/deployment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAwB1E,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAGjB,MAAM,YAAY,CAAC;AAEpB,qBAAa,cAAc;IAClB,SAAS,yBAAgC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,gBAAgB,CAAC;gBAE9B,SAAS,EAAE,MAAM;IAKvB,MAAM,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YA0CpD,eAAe;YAmBf,aAAa;IAqB3B,uDAAuD;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAE5B;IAEX;;;OAGG;YACW,iBAAiB;IAY/B;;OAEG;YACW,uBAAuB;IAgBrC;;;;;;;;OAQG;YACW,0BAA0B;YAsC1B,oBAAoB;YAWpB,eAAe;YA6Df,mBAAmB;IAoE3B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAWrC;;;;OAIG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOpC,cAAc,CAAC,OAAO,GAAE,MAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BpD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAIjB,iBAAiB;YASjB,oBAAoB;IAsClC;;;OAGG;YACW,0BAA0B;IAwCxC,OAAO,CAAC,sBAAsB;IAoCxB,SAAS,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrE,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,SAAS;CAMlB"}
1
+ {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../../src/deployment/rhdh/deployment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAwB1E,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAGjB,MAAM,YAAY,CAAC;AAEpB,qBAAa,cAAc;IAClB,SAAS,yBAAgC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,gBAAgB,CAAC;gBAE9B,SAAS,EAAE,MAAM;IAKvB,MAAM,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YA0CpD,eAAe;YAmBf,aAAa;IA2B3B,uDAAuD;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAE5B;IAEX;;;OAGG;YACW,iBAAiB;IAe/B;;OAEG;YACW,uBAAuB;IAgBrC;;;;;;;;OAQG;YACW,0BAA0B;YAsC1B,oBAAoB;YAWpB,eAAe;YAuEf,mBAAmB;IAoE3B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAWrC;;;;OAIG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOpC,cAAc,CAAC,OAAO,GAAE,MAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BpD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAIjB,iBAAiB;YASjB,oBAAoB;IAsClC;;;OAGG;YACW,0BAA0B;IAwCxC,OAAO,CAAC,sBAAsB;IA2CxB,SAAS,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrE,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,SAAS;CAMlB"}
@@ -62,32 +62,40 @@ export class RHDHDeployment {
62
62
  }
63
63
  async _applySecrets() {
64
64
  const authConfig = AUTH_CONFIG_PATHS[this.deploymentConfig.auth];
65
- const secretsYaml = await mergeYamlFilesIfExists([
65
+ const secretsPaths = [
66
66
  DEFAULT_CONFIG_PATHS.secrets,
67
67
  authConfig.secrets,
68
+ ...(this.deploymentConfig.useNewFrontendSystem
69
+ ? [DEFAULT_CONFIG_PATHS.newFrontendSystem.secrets]
70
+ : []),
68
71
  this.deploymentConfig.secrets,
69
- ]);
72
+ ];
73
+ const secretsYaml = await mergeYamlFilesIfExists(secretsPaths);
70
74
  // Use cloneDeepWith to substitute env vars in-place, avoiding JSON.parse issues
71
75
  // with control characters in secrets (e.g., private keys with newlines)
72
76
  const substituted = cloneDeepWith(secretsYaml, (value) => {
73
77
  if (typeof value === "string")
74
78
  return envsubst(value);
75
79
  });
76
- await this.k8sClient.applySecretFromObject("rhdh-secrets", substituted, this.deploymentConfig.namespace);
80
+ const secretPayload = substituted;
81
+ await this.k8sClient.applySecretFromObject("rhdh-secrets", secretPayload, this.deploymentConfig.namespace);
77
82
  }
78
83
  /** Shared merge strategy for dynamic plugin arrays. */
79
84
  static pluginMergeOpts = {
80
85
  arrayMergeStrategy: { byKey: "package" },
81
86
  };
82
87
  /**
83
- * Merges package defaults + auth config (+ optional user config) into a
84
- * single dynamic plugins configuration.
88
+ * Merges package defaults + auth + optional new-frontend-system defaults +
89
+ * optional user config into a single dynamic plugins configuration.
85
90
  */
86
91
  async _mergeBaseConfigs(userConfigPath) {
87
92
  const authConfig = AUTH_CONFIG_PATHS[this.deploymentConfig.auth];
88
93
  const paths = [
89
94
  DEFAULT_CONFIG_PATHS.dynamicPlugins,
90
95
  authConfig.dynamicPlugins,
96
+ ...(this.deploymentConfig.useNewFrontendSystem
97
+ ? [DEFAULT_CONFIG_PATHS.newFrontendSystem.dynamicPlugins]
98
+ : []),
91
99
  ...(userConfigPath ? [userConfigPath] : []),
92
100
  ];
93
101
  return await mergeYamlFilesIfExists(paths, RHDHDeployment.pluginMergeOpts);
@@ -148,10 +156,18 @@ export class RHDHDeployment {
148
156
  async _deployWithHelm(valueFile) {
149
157
  const chartVersion = await this._resolveChartVersion(this.deploymentConfig.version);
150
158
  this._log(`Helm chart version resolved to: ${chartVersion}`);
151
- const valueFileObject = (await mergeYamlFilesIfExists([
159
+ const helmValuePaths = [
152
160
  DEFAULT_CONFIG_PATHS.helm.valueFile,
161
+ ...(this.deploymentConfig.useNewFrontendSystem
162
+ ? [DEFAULT_CONFIG_PATHS.newFrontendSystem.valueFile]
163
+ : []),
153
164
  valueFile,
154
- ]));
165
+ ...(this.deploymentConfig.useNewFrontendSystem &&
166
+ fs.existsSync(WorkspacePaths.valueFileAppNext)
167
+ ? [WorkspacePaths.valueFileAppNext]
168
+ : []),
169
+ ];
170
+ const valueFileObject = (await mergeYamlFilesIfExists(helmValuePaths));
155
171
  this._logBoxen("Value File", valueFileObject);
156
172
  // Merge dynamic plugins into the values file (including auth-specific plugins)
157
173
  if (!valueFileObject.global) {
@@ -358,14 +374,19 @@ export class RHDHDeployment {
358
374
  const method = input.method ??
359
375
  process.env.INSTALLATION_METHOD ??
360
376
  "helm";
377
+ const namespace = input.namespace ?? this.deploymentConfig.namespace;
378
+ const useNewFrontendSystem = input.useNewFrontendSystem ??
379
+ (namespace.endsWith("-app-next") ||
380
+ process.env.USE_NEW_FRONTEND_SYSTEM === "true");
361
381
  const base = {
362
382
  version,
363
- namespace: input.namespace ?? this.deploymentConfig.namespace,
383
+ namespace,
364
384
  auth: input.auth ?? "keycloak",
365
385
  appConfig: input.appConfig ?? WorkspacePaths.appConfig,
366
386
  secrets: input.secrets ?? WorkspacePaths.secrets,
367
387
  dynamicPlugins: input.dynamicPlugins ?? WorkspacePaths.dynamicPlugins,
368
388
  disableWrappers: input.disableWrappers ?? [],
389
+ useNewFrontendSystem,
369
390
  };
370
391
  if (method === "helm") {
371
392
  return {
@@ -38,4 +38,54 @@ describe("dynamic-plugins merge (no user config path)", () => {
38
38
  assert.strictEqual(plugins.length, 1, "merged config must have exactly one keycloak plugin");
39
39
  assert.ok(plugins[0].package?.startsWith("oci://"), "metadata (OCI) must win over auth local path");
40
40
  });
41
+ it("keeps user app-auth OCI ref over NFS defaults for same logical plugin", () => {
42
+ const nfsDefaults = {
43
+ plugins: [
44
+ {
45
+ package: "oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-app-auth:bs_1.49.4__0.0.1",
46
+ disabled: false,
47
+ },
48
+ ],
49
+ };
50
+ const userPlugins = {
51
+ plugins: [
52
+ {
53
+ package: "oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-app-auth:older__0.0.1",
54
+ disabled: false,
55
+ },
56
+ ],
57
+ };
58
+ const merged = deepMerge(nfsDefaults, userPlugins, {
59
+ arrayMergeStrategy: {
60
+ byKey: "package",
61
+ normalizeKey: (item) => getNormalizedPluginMergeKey(item),
62
+ },
63
+ });
64
+ const plugins = merged.plugins;
65
+ assert.strictEqual(plugins.length, 1);
66
+ assert.ok(plugins[0].package?.includes("older__0.0.1"), "user layer must win over NFS defaults for the same logical plugin");
67
+ });
68
+ it("does not duplicate includes when NFS layer omits includes", () => {
69
+ const common = {
70
+ includes: ["dynamic-plugins.default.yaml"],
71
+ plugins: [],
72
+ };
73
+ const nfsLayer = {
74
+ plugins: [
75
+ {
76
+ package: "oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-app-auth:bs_1.49.4__0.0.1",
77
+ disabled: false,
78
+ },
79
+ ],
80
+ };
81
+ const merged = deepMerge(common, nfsLayer, {
82
+ arrayMergeStrategy: {
83
+ byKey: "package",
84
+ normalizeKey: (item) => getNormalizedPluginMergeKey(item),
85
+ },
86
+ });
87
+ const includes = merged.includes;
88
+ assert.strictEqual(includes?.length, 1);
89
+ assert.strictEqual(includes[0], "dynamic-plugins.default.yaml");
90
+ });
41
91
  });
@@ -1,2 +1,3 @@
1
1
  export { RHDHDeployment } from "./deployment.js";
2
+ export * from "./types.js";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/deployment/rhdh/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/deployment/rhdh/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,cAAc,YAAY,CAAC"}
@@ -1 +1,2 @@
1
1
  export { RHDHDeployment } from "./deployment.js";
2
+ export * from "./types.js";
@@ -11,6 +11,8 @@ export type DeploymentOptions = {
11
11
  valueFile?: string;
12
12
  subscription?: string;
13
13
  disableWrappers?: string[];
14
+ /** When true, merge new-frontend-system (app-next) layers. When omitted, auto-detect: namespace ends with `-app-next` or `USE_NEW_FRONTEND_SYSTEM=true`. Pass false to disable. */
15
+ useNewFrontendSystem?: boolean;
14
16
  };
15
17
  export type HelmDeploymentConfig = {
16
18
  method: "helm";
@@ -28,6 +30,8 @@ export type DeploymentConfigBase = {
28
30
  secrets: string;
29
31
  dynamicPlugins: string;
30
32
  disableWrappers: string[];
33
+ /** New frontend system (Backstage app-next / NFS shell). */
34
+ useNewFrontendSystem: boolean;
31
35
  };
32
36
  export type DeploymentConfig = DeploymentConfigBase & (HelmDeploymentConfig | OperatorDeploymentConfig);
33
37
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/deployment/rhdh/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,UAAU,CAAC;AACnD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE3D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GACjD,CAAC,oBAAoB,GAAG,wBAAwB,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/deployment/rhdh/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,UAAU,CAAC;AACnD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE3D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,mLAAmL;IACnL,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,4DAA4D;IAC5D,oBAAoB,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GACjD,CAAC,oBAAoB,GAAG,wBAAwB,CAAC,CAAC"}
@@ -37,6 +37,8 @@ export declare class WorkspacePaths {
37
37
  static get dynamicPlugins(): string;
38
38
  /** Default Helm value file path: `tests/config/value_file.yaml` */
39
39
  static get valueFile(): string;
40
+ /** Optional Helm values merged after `value_file.yaml` when the new frontend system is active (explicit option, namespace suffix `-app-next`, or `USE_NEW_FRONTEND_SYSTEM=true`) and this file exists. */
41
+ static get valueFileAppNext(): string;
40
42
  /** Default operator subscription path: `tests/config/subscription.yaml` */
41
43
  static get subscription(): string;
42
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-paths.d.ts","sourceRoot":"","sources":["../../src/utils/workspace-paths.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,cAAc;IACzB,OAAO;IAEP,4FAA4F;IAC5F,MAAM,KAAK,OAAO,IAAI,MAAM,CAE3B;IAED,4DAA4D;IAC5D,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAI5C,0DAA0D;IAC1D,MAAM,KAAK,aAAa,IAAI,MAAM,CAEjC;IAED,8DAA8D;IAC9D,MAAM,KAAK,WAAW,IAAI,MAAM,CAE/B;IAED,gFAAgF;IAChF,MAAM,KAAK,SAAS,IAAI,MAAM,CAE7B;IAID,mEAAmE;IACnE,MAAM,KAAK,SAAS,IAAI,MAAM,CAE7B;IAED,6DAA6D;IAC7D,MAAM,KAAK,OAAO,IAAI,MAAM,CAE3B;IAED,wEAAwE;IACxE,MAAM,KAAK,cAAc,IAAI,MAAM,CAElC;IAED,mEAAmE;IACnE,MAAM,KAAK,SAAS,IAAI,MAAM,CAE7B;IAED,2EAA2E;IAC3E,MAAM,KAAK,YAAY,IAAI,MAAM,CAEhC;CACF"}
1
+ {"version":3,"file":"workspace-paths.d.ts","sourceRoot":"","sources":["../../src/utils/workspace-paths.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,cAAc;IACzB,OAAO;IAEP,4FAA4F;IAC5F,MAAM,KAAK,OAAO,IAAI,MAAM,CAE3B;IAED,4DAA4D;IAC5D,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAI5C,0DAA0D;IAC1D,MAAM,KAAK,aAAa,IAAI,MAAM,CAEjC;IAED,8DAA8D;IAC9D,MAAM,KAAK,WAAW,IAAI,MAAM,CAE/B;IAED,gFAAgF;IAChF,MAAM,KAAK,SAAS,IAAI,MAAM,CAE7B;IAID,mEAAmE;IACnE,MAAM,KAAK,SAAS,IAAI,MAAM,CAE7B;IAED,6DAA6D;IAC7D,MAAM,KAAK,OAAO,IAAI,MAAM,CAE3B;IAED,wEAAwE;IACxE,MAAM,KAAK,cAAc,IAAI,MAAM,CAElC;IAED,mEAAmE;IACnE,MAAM,KAAK,SAAS,IAAI,MAAM,CAE7B;IAED,0MAA0M;IAC1M,MAAM,KAAK,gBAAgB,IAAI,MAAM,CAEpC;IAED,2EAA2E;IAC3E,MAAM,KAAK,YAAY,IAAI,MAAM,CAEhC;CACF"}
@@ -58,6 +58,10 @@ export class WorkspacePaths {
58
58
  static get valueFile() {
59
59
  return path.resolve(this.e2eRoot, "tests/config/value_file.yaml");
60
60
  }
61
+ /** Optional Helm values merged after `value_file.yaml` when the new frontend system is active (explicit option, namespace suffix `-app-next`, or `USE_NEW_FRONTEND_SYSTEM=true`) and this file exists. */
62
+ static get valueFileAppNext() {
63
+ return path.resolve(this.e2eRoot, "tests/config/value_file-app-next.yaml");
64
+ }
61
65
  /** Default operator subscription path: `tests/config/subscription.yaml` */
62
66
  static get subscription() {
63
67
  return path.resolve(this.e2eRoot, "tests/config/subscription.yaml");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@red-hat-developer-hub/e2e-test-utils",
3
- "version": "1.1.40",
3
+ "version": "1.1.41",
4
4
  "description": "Test utilities for RHDH E2E tests",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {