-
Notifications
You must be signed in to change notification settings - Fork 165
Open
Description
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 | findIntent tests |
| 9 | Return Error Objects from ChannelError, OpenError, ResolveError, ResultError enumerations |
Line 119 |
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@domainformat against unqualified IDs - Validate
optionalFeaturesingetInfotests - 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
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels