Skip to content

[fullsend] E2E: bulk-import — module: Legacy stripped by nightly config merge #3303

Description

@fullsend-ai-triage

fullsend-tracking: workspace=bulk-import
fullsend-tracking: root-cause=module-legacy-merge
fullsend-tracking: branch=main

Classification

fix_category: test_fix

Failed Tests

Test Error
Verify the Bulk import plugin page TimeoutError — heading "Bulk import" not visible (20s)
Bulk Import - Verify users without permission cannot access TimeoutError — "Permission required" text not visible (10s)

Root Cause

The /bulk-import frontend route renders a 404 page because the deployed dynamic-plugins configuration is missing module: Legacy on the dynamicRoutes and appIcons entries for the bulk-import frontend plugin.

The bulk-import plugin exports BulkImportPage from its Legacy federated module. Without module: Legacy, scalprum looks for BulkImportPage in the plugin's default module where it does not exist — causing React Router to show a 404 page on the /bulk-import path.

What happens in nightly mode:

  1. The user-provided dynamic-plugins.yaml correctly specifies module: Legacy for all sections
  2. The RHDH 1.11 chart's dynamic-plugins.default.yaml pre-configures bulk-import with NFS module names (module: Alpha for translationResources, no module for appIcons/dynamicRoutes)
  3. The deep merge produces a hybrid config: translationResources.module: Alpha (wrong), appIcons/dynamicRoutes with no module field (wrong)
  4. scalprum cannot resolve BulkImportPage → React Router 404

Key evidence:

  • Screenshot shows "404 We couldn't find that page" with "Bulk import" sidebar item visible
  • Deployed config dump (build-log lines 4140-4160): module: Legacy stripped from dynamicRoutes and appIcons
  • Build log line 4110: [PluginMetadata] Injecting config for: red-hat-developer-hub-backstage-plugin-bulk-import — metadata injection active in nightly mode despite docs saying "No config injection"
  • Plugin loaded successfully (scalprum info log), no errors — the issue is purely in the route/mount configuration

Remediation

Target branch: main

Remove workspaces/bulk-import/e2e-tests/tests/config/dynamic-plugins.yaml entirely. Instead, create a nightly-specific config file workspaces/bulk-import/e2e-tests/tests/config/dynamic-plugins-nightly.yaml that explicitly configures the bulk-import frontend plugin with the correct module: Legacy fields for all sections (dynamicRoutes, appIcons, translationResources). Then update the rhdh.configure() call in workspaces/bulk-import/e2e-tests/tests/specs/bulk-import.spec.ts to use this nightly-specific file when E2E_NIGHTLY_MODE is set.

Alternatively, if the framework supports disablePlugins to prevent the chart's default bulk-import entry from being merged, use that approach to ensure the user-provided module: Legacy fields are not overwritten.

The metadata YAML at workspaces/bulk-import/metadata/red-hat-developer-hub-backstage-plugin-bulk-import.yaml correctly specifies module: Legacy for all sections — use it as reference for the correct configuration.

Artifacts

https://prow.ci.openshift.org/view/gs/test-platform-results/logs/periodic-ci-redhat-developer-rhdh-plugin-export-overlays-main-e2e-ocp-helm-nightly/2083402759867994112


Triggered by #3302

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions