Skip to content

Create Unit Tests for Plugin UI Extensibility, Settings Pages, and Plugin Manager Integration #74

@mdwigley

Description

@mdwigley

Task Description

This task focuses on developing comprehensive unit tests that cover the newly introduced plugin extensibility features, including plugin-contributed styles, icons, UI pages, and settings pages, as well as ensuring the plugin manager properly registers, resolves, and integrates these plugin-provided assets.

The outcome of this task is a robust set of automated tests that increases confidence in the stability of the plugin system and reduces the risk of regressions when changes are introduced.

Acceptance Criteria

  • Unit tests are added to verify plugins that implement IPluginStyleInclusion correctly register and load style resources (e.g., Icons.axaml).
  • Unit tests confirm that plugins implementing IPluginPages integrate views and viewmodels within the main navigation system.
  • Unit tests validate that IPluginSettingsPages plugins can surface settings pages and are properly retrieved for integration.
  • Plugin Manager tests exist to confirm correct registration, resolution, and lifecycle handling of plugins with UI contributions.
  • All new tests pass successfully without regressions.

Steps to Complete

  • Create unit tests for IPluginStyleInclusion ensuring style resources are applied successfully in Bootstrapper.PluginsStyleInclude.
  • Create unit tests for IPluginPages verifying descriptors are processed and main pages appear correctly in MainViewModel.
  • Add tests for IPluginSettingsPages to ensure plugin-supplied settings descriptors are discovered and exposed.
  • Extend Plugin Manager tests to validate registration, resolution, and conflict/dependency handling with UI extensibility.
  • Run full test suite to ensure consistency and validate coverage has increased.

Stakeholders / Reviewers

  • PlugHub Core Engineering Team
  • Plugin Developers
  • End Users

Dependencies / Blockers

Metadata

Metadata

Assignees

No one assigned

    Labels

    approvedChange issue has been accepted for implementationenhancementNew feature or request

    Type

    Projects

    Status

    Backlog

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions