@red-hat-developer-hub/e2e-test-utils 1.1.20 → 1.1.22

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.
@@ -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;AAmB1E,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;YAuCpD,eAAe;YAmBf,aAAa;IAqB3B;;;OAGG;YACW,0BAA0B;YA6C1B,oBAAoB;YAWpB,eAAe;YAmCf,mBAAmB;IAiD3B,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;IAwBpD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAIjB,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;AAoB1E,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;YAuCpD,eAAe;YAmBf,aAAa;IAqB3B;;;OAGG;YACW,0BAA0B;YA6D1B,oBAAoB;YAWpB,eAAe;YAmCf,mBAAmB;IAiD3B,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;IAwBpD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAIjB,oBAAoB;IAsClC;;;OAGG;YACW,0BAA0B;IAwCxC,OAAO,CAAC,sBAAsB;IAqCxB,SAAS,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrE,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,SAAS;CAMlB"}
@@ -3,7 +3,7 @@ import { $ } from "../../utils/bash.js";
3
3
  import yaml from "js-yaml";
4
4
  import { test } from "@playwright/test";
5
5
  import { mergeYamlFilesIfExists, deepMerge } from "../../utils/merge-yamls.js";
6
- import { loadAndInjectPluginMetadata, generateDynamicPluginsConfigFromMetadata, getNormalizedPluginMergeKey, } from "../../utils/plugin-metadata.js";
6
+ import { loadAndInjectPluginMetadata, generateDynamicPluginsConfigFromMetadata, getNormalizedPluginMergeKey, disablePluginWrappers, } from "../../utils/plugin-metadata.js";
7
7
  import { envsubst } from "../../utils/common.js";
8
8
  import { runOnce } from "../../playwright/run-once.js";
9
9
  import cloneDeepWith from "lodash.clonedeepwith";
@@ -77,6 +77,7 @@ export class RHDHDeployment {
77
77
  const userConfigPath = this.deploymentConfig.dynamicPlugins;
78
78
  const userConfigExists = userConfigPath && fs.existsSync(userConfigPath);
79
79
  const authConfig = AUTH_CONFIG_PATHS[this.deploymentConfig.auth];
80
+ const wrapperPlugins = disablePluginWrappers(this.deploymentConfig.disableWrappers);
80
81
  // If user's dynamic-plugins config doesn't exist, auto-generate from metadata
81
82
  if (!userConfigExists) {
82
83
  this._log(`Dynamic plugins config not found at '${userConfigPath}', auto-generating from metadata...`);
@@ -85,12 +86,18 @@ export class RHDHDeployment {
85
86
  // the same logical plugin (e.g. keycloak from metadata OCI + auth local path)
86
87
  // is deduplicated; metadata (source) wins so OCI URL is kept on PR builds.
87
88
  const authPlugins = await mergeYamlFilesIfExists([DEFAULT_CONFIG_PATHS.dynamicPlugins, authConfig.dynamicPlugins], { arrayMergeStrategy: { byKey: "package" } });
88
- return deepMerge(authPlugins, metadataConfig, {
89
+ const dynamicPlugins = deepMerge(authPlugins, metadataConfig, {
89
90
  arrayMergeStrategy: {
90
91
  byKey: "package",
91
92
  normalizeKey: (item) => getNormalizedPluginMergeKey(item),
92
93
  },
93
94
  });
95
+ if (!process.env.GIT_PR_NUMBER) {
96
+ return dynamicPlugins;
97
+ }
98
+ return deepMerge(dynamicPlugins, wrapperPlugins, {
99
+ arrayMergeStrategy: "concat",
100
+ });
94
101
  }
95
102
  // User config exists - merge provided configs and inject metadata for listed plugins only
96
103
  let dynamicPluginsConfig = await mergeYamlFilesIfExists([
@@ -101,6 +108,11 @@ export class RHDHDeployment {
101
108
  // Inject plugin metadata configuration for plugins in the config
102
109
  dynamicPluginsConfig =
103
110
  await loadAndInjectPluginMetadata(dynamicPluginsConfig);
111
+ if (process.env.GIT_PR_NUMBER) {
112
+ dynamicPluginsConfig = deepMerge(dynamicPluginsConfig, wrapperPlugins, {
113
+ arrayMergeStrategy: "concat",
114
+ });
115
+ }
104
116
  return dynamicPluginsConfig;
105
117
  }
106
118
  async _applyDynamicPlugins() {
@@ -269,6 +281,7 @@ export class RHDHDeployment {
269
281
  appConfig: input.appConfig ?? `tests/config/app-config-rhdh.yaml`,
270
282
  secrets: input.secrets ?? `tests/config/rhdh-secrets.yaml`,
271
283
  dynamicPlugins: input.dynamicPlugins ?? `tests/config/dynamic-plugins.yaml`,
284
+ disableWrappers: input.disableWrappers ?? [],
272
285
  };
273
286
  if (method === "helm") {
274
287
  return {
@@ -10,6 +10,7 @@ export type DeploymentOptions = {
10
10
  method?: DeploymentMethod;
11
11
  valueFile?: string;
12
12
  subscription?: string;
13
+ disableWrappers?: string[];
13
14
  };
14
15
  export type HelmDeploymentConfig = {
15
16
  method: "helm";
@@ -26,6 +27,7 @@ export type DeploymentConfigBase = {
26
27
  appConfig: string;
27
28
  secrets: string;
28
29
  dynamicPlugins: string;
30
+ disableWrappers: string[];
29
31
  };
30
32
  export type DeploymentConfig = DeploymentConfigBase & (HelmDeploymentConfig | OperatorDeploymentConfig);
31
33
  //# 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;CACvB,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;CACxB,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;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"}
@@ -185,7 +185,7 @@ export class APIHelper {
185
185
  * @returns The UID string if found, otherwise undefined.
186
186
  */
187
187
  static async getEntityUidByName(name) {
188
- const baseUrl = process.env.BASE_URL;
188
+ const baseUrl = process.env.RHDH_BASE_URL;
189
189
  const url = `${baseUrl}/api/catalog/entities/by-name/template/default/${name}`;
190
190
  const context = await request.newContext();
191
191
  const response = await context.get(url);
@@ -202,7 +202,7 @@ export class APIHelper {
202
202
  * @returns The status code of the delete operation.
203
203
  */
204
204
  static async deleteLocationByUid(uid) {
205
- const baseUrl = process.env.BASE_URL;
205
+ const baseUrl = process.env.RHDH_BASE_URL;
206
206
  const url = `${baseUrl}/api/catalog/locations/${uid}`;
207
207
  const context = await request.newContext();
208
208
  const response = await context.delete(url);
@@ -216,7 +216,7 @@ export class APIHelper {
216
216
  * @returns The UID string if found, otherwise undefined.
217
217
  */
218
218
  static async getTemplateEntityUidByName(name, namespace = "default") {
219
- const baseUrl = process.env.BASE_URL;
219
+ const baseUrl = process.env.RHDH_BASE_URL;
220
220
  const url = `${baseUrl}/api/catalog/locations/by-entity/template/${namespace}/${name}`;
221
221
  const context = await request.newContext();
222
222
  const response = await context.get(url);
@@ -236,7 +236,7 @@ export class APIHelper {
236
236
  * @returns The status code of the delete operation.
237
237
  */
238
238
  static async deleteEntityLocationById(id) {
239
- const baseUrl = process.env.BASE_URL;
239
+ const baseUrl = process.env.RHDH_BASE_URL;
240
240
  const url = `${baseUrl}/api/catalog/locations/${id}`;
241
241
  const context = await request.newContext();
242
242
  const response = await context.delete(url);
@@ -249,7 +249,7 @@ export class APIHelper {
249
249
  * @returns The status code of the registration operation.
250
250
  */
251
251
  static async registerLocation(target) {
252
- const baseUrl = process.env.BASE_URL;
252
+ const baseUrl = process.env.RHDH_BASE_URL;
253
253
  const url = `${baseUrl}/api/catalog/locations`;
254
254
  const context = await request.newContext();
255
255
  const response = await context.post(url, {
@@ -270,7 +270,7 @@ export class APIHelper {
270
270
  * @returns The ID string if found, otherwise undefined.
271
271
  */
272
272
  static async getLocationIdByTarget(target) {
273
- const baseUrl = process.env.BASE_URL;
273
+ const baseUrl = process.env.RHDH_BASE_URL;
274
274
  const url = `${baseUrl}/api/catalog/locations`;
275
275
  const context = await request.newContext();
276
276
  const response = await context.get(url);
@@ -293,7 +293,7 @@ export class LoginHelper {
293
293
  this.uiHelper.clickButton("Sign In"),
294
294
  ]);
295
295
  await popup.waitForLoadState("domcontentloaded");
296
- if (popup.url().startsWith(process.env.BASE_URL)) {
296
+ if (popup.url().startsWith(process.env.RHDH_BASE_URL)) {
297
297
  // an active microsoft session is already logged in and the popup will automatically close
298
298
  return "Already logged in";
299
299
  }
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/playwright/pages/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAItD,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,WAAW,CAAU;gBAEjB,IAAI,EAAE,IAAI;IAMhB,EAAE;IAIF,UAAU,CAAC,IAAI,EAAE,MAAM;IAKvB,8BAA8B;IAO9B,yBAAyB;IAIzB,MAAM,CAAC,CAAC,EAAE,MAAM;IAShB,QAAQ,CAAC,OAAO,EAAE,MAAM;CAG/B"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/playwright/pages/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAItD,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,WAAW,CAAU;gBAEjB,IAAI,EAAE,IAAI;IAMhB,EAAE;IAIF,UAAU,CAAC,IAAI,EAAE,MAAM;IAKvB,8BAA8B;IAO9B,yBAAyB;IAIzB,MAAM,CAAC,CAAC,EAAE,MAAM;IAWhB,QAAQ,CAAC,OAAO,EAAE,MAAM;CAG/B"}
@@ -1,5 +1,5 @@
1
1
  import { UIhelper } from "../helpers/ui-helper.js";
2
- //${BASE_URL}/catalog page
2
+ //${RHDH_BASE_URL}/catalog page
3
3
  export class CatalogPage {
4
4
  page;
5
5
  uiHelper;
@@ -27,7 +27,7 @@ export class CatalogPage {
27
27
  }
28
28
  async search(s) {
29
29
  await this.searchField.clear();
30
- const searchResponse = this.page.waitForResponse(new RegExp(`${process.env.BASE_URL}/api/catalog/entities/by-query/*`));
30
+ const searchResponse = this.page.waitForResponse(new RegExp(`${process.env.RHDH_BASE_URL}/api/catalog/entities/by-query/*`));
31
31
  await this.searchField.fill(s);
32
32
  await searchResponse;
33
33
  }
@@ -103,6 +103,16 @@ export interface DynamicPluginsConfig {
103
103
  * @returns The augmented configuration with injected pluginConfigs
104
104
  */
105
105
  export declare function injectMetadataConfig(dynamicPluginsConfig: DynamicPluginsConfig, metadataMap: Map<string, PluginMetadata>): DynamicPluginsConfig;
106
+ /**
107
+ * Generates dynamic-plugins configuration for wrapper plugins
108
+ * that need to be disabled. Each plugin entry contains:
109
+ * - package: ./dynamic-plugins/dist/$plugin-name
110
+ * - disabled: true
111
+ *
112
+ * @param plugins list of wrapper plugin names
113
+ * @returns Dynamic plugins configuration that disables listed wrapper plugins
114
+ */
115
+ export declare function disablePluginWrappers(plugins: string[]): DynamicPluginsConfig;
106
116
  /**
107
117
  * Generates a complete dynamic-plugins configuration from metadata files.
108
118
  * Iterates through all metadata files and creates plugin entries with:
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-metadata.d.ts","sourceRoot":"","sources":["../../src/utils/plugin-metadata.ts"],"names":[],"mappings":"AA8HA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,sEAAsE;IACtE,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAgBD;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAmBpD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAQ5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,MAAM,CAMT;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AAEnD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,GAAE,MAA8B,GAC3C,MAAM,GAAG,IAAI,CAUf;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC,CA0BzB;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAwBtC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AA4CD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,oBAAoB,EAAE,oBAAoB,EAC1C,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GACvC,oBAAoB,CAsCtB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wCAAwC,CAC5D,YAAY,GAAE,MAA8B,GAC3C,OAAO,CAAC,oBAAoB,CAAC,CAsD/B;AAED;;;;;;;;GAQG;AACH,wBAAsB,2BAA2B,CAC/C,oBAAoB,EAAE,oBAAoB,EAC1C,YAAY,GAAE,MAA8B,GAC3C,OAAO,CAAC,oBAAoB,CAAC,CAuC/B"}
1
+ {"version":3,"file":"plugin-metadata.d.ts","sourceRoot":"","sources":["../../src/utils/plugin-metadata.ts"],"names":[],"mappings":"AA8HA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,sEAAsE;IACtE,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAgBD;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAmBpD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAQ5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,MAAM,CAMT;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AAEnD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,GAAE,MAA8B,GAC3C,MAAM,GAAG,IAAI,CAUf;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC,CA0BzB;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAwBtC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AA4CD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,oBAAoB,EAAE,oBAAoB,EAC1C,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GACvC,oBAAoB,CAsCtB;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAW7E;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wCAAwC,CAC5D,YAAY,GAAE,MAA8B,GAC3C,OAAO,CAAC,oBAAoB,CAAC,CAsD/B;AAED;;;;;;;;GAQG;AACH,wBAAsB,2BAA2B,CAC/C,oBAAoB,EAAE,oBAAoB,EAC1C,YAAY,GAAE,MAA8B,GAC3C,OAAO,CAAC,oBAAoB,CAAC,CAuC/B"}
@@ -268,6 +268,27 @@ export function injectMetadataConfig(dynamicPluginsConfig, metadataMap) {
268
268
  plugins: augmentedPlugins,
269
269
  };
270
270
  }
271
+ /**
272
+ * Generates dynamic-plugins configuration for wrapper plugins
273
+ * that need to be disabled. Each plugin entry contains:
274
+ * - package: ./dynamic-plugins/dist/$plugin-name
275
+ * - disabled: true
276
+ *
277
+ * @param plugins list of wrapper plugin names
278
+ * @returns Dynamic plugins configuration that disables listed wrapper plugins
279
+ */
280
+ export function disablePluginWrappers(plugins) {
281
+ const pluginConfig = {
282
+ plugins: [],
283
+ };
284
+ for (const plugin of plugins) {
285
+ pluginConfig.plugins.push({
286
+ package: `./dynamic-plugins/dist/${plugin}`,
287
+ disabled: true,
288
+ });
289
+ }
290
+ return pluginConfig;
291
+ }
271
292
  /**
272
293
  * Generates a complete dynamic-plugins configuration from metadata files.
273
294
  * Iterates through all metadata files and creates plugin entries with:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@red-hat-developer-hub/e2e-test-utils",
3
- "version": "1.1.20",
3
+ "version": "1.1.22",
4
4
  "description": "Test utilities for RHDH E2E tests",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {