Files

1.6 KiB

ADDED Requirements

Requirement: Driver type registry lives in the driver layer

The system SHALL provide a registry, owned by the driver package, that maps a driver_type string (e.g. "wda") to a builder function producing a DriverFactory for that type, so that any caller needing to construct a driver for a device does so without importing a concrete driver class directly.

Scenario: Building a factory for a known driver type

  • WHEN a caller requests a driver factory for driver_type="wda" with connection info (e.g. server_url, udid)
  • THEN the registry returns a DriverFactory that, when invoked, constructs a working WDADriver configured with that connection info

Scenario: Building a factory for an unknown driver type

  • WHEN a caller requests a driver factory for a driver_type that is not registered
  • THEN the registry raises a clear error naming the unsupported driver_type, instead of returning None or a factory that fails later at connect time

Requirement: Adding a driver type requires no changes outside the driver layer

The system SHALL allow a new driver type to be added by registering it in the driver package's registry alone; no other package (api/, device/, tools/, runtime/) SHALL need code changes to support constructing devices of the new type.

Scenario: API layer is agnostic to registered driver types

  • WHEN the console config API resolves a driver_type string into a driver factory to register a device
  • THEN it does so by calling into the driver registry rather than maintaining its own mapping of driver_type to concrete driver classes