FDC3
FDC3 copied to clipboard
Conformance 2.2: Added New Tests Specified by Test-Pack.
Added two new conformance tests and got FDC3 Demo to pass the new manual test. Raised #1585
Is there a github actions to ensure that prettier has been run? WE should run lint (without fixes) to ensure that no code gets into the repo that does not pass linting.
As I said you can't rely on husky at all. It does not run from visual studio code when you do a commit (at least it didn't, I am not aware of any fixes for this).
I assume that most people contributing would use VS code?
We should probably add a recommended extension setting so that people install the vscode prettier plugin so that changes are made whenever you save a file.
If the huskey precommit hook isn't working using that shell script, then we can instead configure it in the package.json file by adding:
"husky": {
"hooks": {
"pre-commit": "npx lint-staged"
}
}
That might provide better cross-platform support. Original set-up instructions I used to (restore prettier use in the repo after refactor) came from prettier: https://prettier.io/docs/install#git-hooks
This is passing for me now. I suggest we get @julianna-ciq to engage with the interop.io guys on testing against this. Giles, I presume you're able to run against your stuff too, right? WDYT?
Coverage Report
Commit: ff93907 Base: main@1300f2b
| Type | Base | This PR |
|---|---|---|
| Total Statements Coverage | ||
| Total Branches Coverage | ||
| Total Functions Coverage | ||
| Total Lines Coverage |
Details (changed files)
| File | Statements | Branches | Functions | Lines |
|---|---|---|---|---|
| packages/fdc3-agent-proxy/src/DesktopAgentProxy.ts | ||||
| packages/fdc3-agent-proxy/src/channels/DefaultChannelSupport.ts | ||||
| packages/fdc3-agent-proxy/src/listeners/DefaultContextListener.ts | ||||
| packages/fdc3-agent-proxy/src/listeners/DesktopAgentEventListener.ts | ||||
| packages/fdc3-standard/src/api/Channel.ts | ||||
| packages/fdc3-standard/src/api/Errors.ts | ||||
| toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/BroadcastHandler.ts | ||||
| toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/IntentHandler.ts | ||||
| toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/support.ts |
Details (all files)
| File | Statements | Branches | Functions | Lines |
|---|---|---|---|---|
| packages/fdc3-agent-proxy/src/DesktopAgentProxy.ts | ||||
| packages/fdc3-agent-proxy/src/index.ts | ||||
| packages/fdc3-agent-proxy/src/apps/DefaultAppSupport.ts | ||||
| packages/fdc3-agent-proxy/src/channels/DefaultChannel.ts | ||||
| packages/fdc3-agent-proxy/src/channels/DefaultChannelSupport.ts | ||||
| packages/fdc3-agent-proxy/src/channels/DefaultPrivateChannel.ts | ||||
| packages/fdc3-agent-proxy/src/heartbeat/DefaultHeartbeatSupport.ts | ||||
| packages/fdc3-agent-proxy/src/intents/DefaultIntentResolution.ts | ||||
| packages/fdc3-agent-proxy/src/intents/DefaultIntentSupport.ts | ||||
| packages/fdc3-agent-proxy/src/listeners/AbstractListener.ts | ||||
| packages/fdc3-agent-proxy/src/listeners/DefaultContextListener.ts | ||||
| packages/fdc3-agent-proxy/src/listeners/DefaultIntentListener.ts | ||||
| packages/fdc3-agent-proxy/src/listeners/DesktopAgentEventListener.ts | ||||
| packages/fdc3-agent-proxy/src/listeners/EventListener.ts | ||||
| packages/fdc3-agent-proxy/src/listeners/HeartbeatListener.ts | ||||
| packages/fdc3-agent-proxy/src/listeners/PrivateChannelEventListener.ts | ||||
| packages/fdc3-agent-proxy/src/messaging/AbstractMessaging.ts | ||||
| packages/fdc3-agent-proxy/src/util/AbstractFDC3Logger.ts | ||||
| packages/fdc3-agent-proxy/src/util/Logger.ts | ||||
| packages/fdc3-agent-proxy/src/util/throwIfUndefined.ts | ||||
| packages/fdc3-get-agent/src/index.ts | ||||
| packages/fdc3-get-agent/src/messaging/MessagePortMessaging.ts | ||||
| packages/fdc3-get-agent/src/messaging/message-port.ts | ||||
| packages/fdc3-get-agent/src/sessionStorage/DesktopAgentDetails.ts | ||||
| packages/fdc3-get-agent/src/strategies/DesktopAgentPreloadLoader.ts | ||||
| packages/fdc3-get-agent/src/strategies/FailoverHandler.ts | ||||
| packages/fdc3-get-agent/src/strategies/HelloHandler.ts | ||||
| packages/fdc3-get-agent/src/strategies/IdentityValidationHandler.ts | ||||
| packages/fdc3-get-agent/src/strategies/PostMessageLoader.ts | ||||
| packages/fdc3-get-agent/src/strategies/Timeouts.ts | ||||
| packages/fdc3-get-agent/src/strategies/getAgent.ts | ||||
| packages/fdc3-get-agent/src/ui/AbstractUIComponent.ts | ||||
| packages/fdc3-get-agent/src/ui/DefaultDesktopAgentChannelSelector.ts | ||||
| packages/fdc3-get-agent/src/ui/DefaultDesktopAgentIntentResolver.ts | ||||
| packages/fdc3-get-agent/src/ui/NullChannelSelector.ts | ||||
| packages/fdc3-get-agent/src/ui/NullIntentResolver.ts | ||||
| packages/fdc3-get-agent/src/util/Logger.ts | ||||
| packages/fdc3-get-agent/src/util/Uuid.ts | ||||
| packages/fdc3-standard/src/index.ts | ||||
| packages/fdc3-standard/src/api/AppIdentifier.ts | ||||
| packages/fdc3-standard/src/api/AppIntent.ts | ||||
| packages/fdc3-standard/src/api/AppMetadata.ts | ||||
| packages/fdc3-standard/src/api/Channel.ts | ||||
| packages/fdc3-standard/src/api/ContextMetadata.ts | ||||
| packages/fdc3-standard/src/api/DesktopAgent.ts | ||||
| packages/fdc3-standard/src/api/DisplayMetadata.ts | ||||
| packages/fdc3-standard/src/api/Errors.ts | ||||
| packages/fdc3-standard/src/api/Events.ts | ||||
| packages/fdc3-standard/src/api/GetAgent.ts | ||||
| packages/fdc3-standard/src/api/Icon.ts | ||||
| packages/fdc3-standard/src/api/Image.ts | ||||
| packages/fdc3-standard/src/api/ImplementationMetadata.ts | ||||
| packages/fdc3-standard/src/api/IntentMetadata.ts | ||||
| packages/fdc3-standard/src/api/IntentResolution.ts | ||||
| packages/fdc3-standard/src/api/Listener.ts | ||||
| packages/fdc3-standard/src/api/Methods.ts | ||||
| packages/fdc3-standard/src/api/PrivateChannel.ts | ||||
| packages/fdc3-standard/src/api/RecommendedChannels.ts | ||||
| packages/fdc3-standard/src/api/Types.ts | ||||
| packages/fdc3-standard/src/context/ContextType.ts | ||||
| packages/fdc3-standard/src/intents/Intents.ts | ||||
| packages/fdc3-standard/src/internal/contextConfiguration.ts | ||||
| packages/fdc3-standard/src/internal/intentConfiguration.ts | ||||
| packages/fdc3-standard/src/internal/typeHelpers.ts | ||||
| packages/fdc3-standard/src/ui/ChannelSelector.ts | ||||
| packages/fdc3-standard/src/ui/Connectable.ts | ||||
| packages/fdc3-standard/src/ui/IntentResolver.ts | ||||
| toolbox/fdc3-for-web/fdc3-web-impl/src/BasicFDC3Server.ts | ||||
| toolbox/fdc3-for-web/fdc3-web-impl/src/ServerContext.ts | ||||
| toolbox/fdc3-for-web/fdc3-web-impl/src/directory/BasicDirectory.ts | ||||
| toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/BroadcastHandler.ts | ||||
| toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/HeartbeatHandler.ts | ||||
| toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/IntentHandler.ts | ||||
| toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/OpenHandler.ts | ||||
| toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/support.ts |
@kriswest and @Roaders I've just fixed the build here - lots of linting issues. Conformance tests are all passing for the demo DA. I'm away for the next couple of weeks - it would be good if you could pick this up now and try to get it merged with the other maintainers if possible.
thanks!
I'll leave you to figure out what to do about husky / pre-commit checks.
I have forwarded this PR to our engineers. I'll follow up with you when I have new information, @robmoffat .
I had a go at running this against our implementation and it did seem to correctly run the tests up to a point. As last time we tried running we got to a certain point and then the tests stopped running. For this test run it got to 93% and got no further. The last test to run was:
"after each" hook: afterEach for "(2.0-ACBasicUsage1) Should receive context when app a adds a listener and app B broadcasts to the same app channel"
However I also tried to run against the reference implementation and I got lots of failures and an imncomplete test there as well:
I got quite a few:
Error: App didn't return close context within .5 secs
but also other timeouts of 5000ms, 20000ms and various assertion errors and AppTimeout. I don't think that there is a report that I can copy and paste to show all the results.
this is a long shot, but is popup blocking turned off?
On Mon, May 26, 2025 at 9:21 AM Roaders @.***> wrote:
Roaders left a comment (finos/FDC3#1586) https://github.com/finos/FDC3/pull/1586#issuecomment-2908935055
I had a go at running this against our implementation and it did seem to correctly run the tests up to a point. As last time we tried running we got to a certain point and then the tests stopped running. For this test run it got to 93% and got no further. The last test to run was:
"after each" hook: afterEach for "(2.0-ACBasicUsage1) Should receive context when app a adds a listener and app B broadcasts to the same app channel"
However I also tried to run against the reference implementation and I got lots of failures and an imncomplete test there as well:
image.png (view on web) https://github.com/user-attachments/assets/58e6b5ab-5f40-4114-a8d1-ea67f979e444
I got quite a few:
Error: App didn't return close context within .5 secs
but also other timeouts of 5000ms, 20000ms and various assertion errors and AppTimeout. I don't think that there is a report that I can copy and paste to show all the results.
— Reply to this email directly, view it on GitHub https://github.com/finos/FDC3/pull/1586#issuecomment-2908935055, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEK2YKPK47IFF2KBLBMBED3ALFKNAVCNFSM6AAAAAB34AX34GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDSMBYHEZTKMBVGU . You are receiving this because you were mentioned.Message ID: @.***>
this is a long shot, but is popup blocking turned off?
Well this is embarrasing.... Yes that was the problem. I'd been checking the conformance test window for the popup blocked but of course that appears in the DA window. When I fixed that all the tests ran and passed.
I did get to 143% though!!! 🙂
wow a clean sweep, well done!
And yes, I've spent quite a while scratching my head over the percentage. I have no idea why this is happening!
Are we publishing this result / badging at OSFF???
Sail is now passing
And yes, I've spent quite a while scratching my head over the percentage. I have no idea why this is happening!
Have you ended up with multiple tests with the same id/name?
Deploy Preview for fdc3 ready!
| Name | Link |
|---|---|
| Latest commit | ff93907807d2e2e77104f014cf68e92e248bf5e0 |
| Latest deploy log | https://app.netlify.com/projects/fdc3/deploys/6904ea53a1238600080e4173 |
| Deploy Preview | https://deploy-preview-1586.preview-fdc3.finos.org |
| Preview on mobile | Toggle QR Code...Use your smartphone camera to open QR code link. |
To edit notification comments on pull requests, go to your Netlify project configuration.
merged latest changes from main
Running this on our app now it gets stuck at 91% (I have checked for popup blocking prompts). I have a lot of failures but that could well be the current state of our agent or the tests... I am also getting far fewer tests:
@Roaders the tests execute serially so its worth identifying which test it gets stuck in. I don't know why you'd be getting less tests total. @robmoffat what do you get in teh reference implementation or Sail on this branch?
The reference implemetation:
I guess I was thinking that only 51 tests wasn't very many but I forgot that it goes to over 100%!
Hi I ran this not long ago and it worked for me, although there are known race conditions that cause it to fail sometimes. @Roaders are you running this on a PC? I've observed the race conclude differently there than on the Mac.
In my other PR, you can see I've been messing about with the timings for this very reason:
https://github.com/finos/FDC3/pull/1696/files#diff-c22f660199ac437ce4a57e10356b4739c5ae21c9abd6536f44e854f85b46b378
This is the server-context-refactor PR. Obviously, a key test for me there is that conformance still passes after the refactor!
yes, this on PC