Skip to content

Missing Conformance Tests #1768

@Roaders

Description

@Roaders

I asked my AI agent to review the docs and the conformance tests to find any areas where we need to add some more and this was the result. I know that some of these are known but I am not sure if there is an issue for them. Feel free to close this issue it is not thought of as helpful.

Desktop Agent API MUST Requirements - Conformance Test Coverage Gap Analysis

Based on review of spec.md (lines 90-124) and the conformance tests in toolbox/fdc3-conformance/src/test/.

Requirements NOT Covered by Conformance Tests

# Requirement Spec Reference Status Comment
1 Browser-Resident Desktop Agent spec compliance Line 96 ❌ Not tested Can be ignored I think
2 Preload Desktop Agent spec compliance Line 97 ❌ Not tested Can be ignored I think
3 addEventListener function Line 102 ❌ Only manual test exists for userChannelChanged event I presume there was a reason for manual testing only
4 Resolve fully-qualified and unqualified appId values (e.g. myApp@appd.example.com) Line 118 ❌ Not tested
5 optionalFeatures property in ImplementationMetadata Line 122 ❌ Not validated I guess at minimum we could test that something is returned. Really we should look at what is returned then run additional tests based on what optional features are supported...
6 15-second timeout for context/intent listener on app launch Line 123 ❌ Not tested There are definitely tests around this but not specifically for the 15 second delay. I think we can ignore.
7 Methods MUST be bound to their instances (for destructuring support) Line 124 ❌ Not tested

Requirements Partially Covered

# Requirement Spec Reference Status
8 Intent resolution MUST take into account specified input or return context types Line 116 ⚠️ Partially covered by findIntent tests
9 Return Error Objects from ChannelError, OpenError, ResolveError, ResultError enumerations Line 119 ⚠️ Only some error types tested

Requirements Fully Covered

# Requirement Spec Reference Test Coverage
10 Requests for resolution to apps returning a channel MUST include apps returning channel with specific type Line 117 FindIntentAppDByResultChannel1/2
11 PrivateChannels MUST have an ID and MUST NOT be retrievable via getOrCreateChannel Line 120 PrivateChannelsAreNotAppChannels
12 Include implementations of required DesktopAgent API functions Lines 99-114 ✅ Basic tests exist for all listed functions

Recommendations

  • Add automated tests for addEventListener - Currently only a manual test exists
  • Add fully-qualified appId resolution tests - Test matching appId@domain format against unqualified IDs
  • Validate optionalFeatures in getInfo tests - Ensure the property exists and has expected structure
  • Add timeout validation tests - Verify 15-second timeout behavior for listener registration on launch
  • Add method binding tests - Verify destructured methods work correctly (e.g., const { broadcast } = channel;)
  • Expand error type coverage - Ensure all enumeration values are tested across relevant APIs

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions