|
| 1 | +<img align="right" title="FDC3 Conformance Framework" width="200px" src="https://landscape.finos.org/logos/fdc3-conformance-framework.svg"> |
| 2 | + |
| 3 | +# FDC3 Conformance Framework |
| 4 | + |
| 5 | +A framework for testing whether desktop containers implement the [FDC3 standard](https://fdc3.finos.org/). |
| 6 | + |
| 7 | +The tests implemented for each FDC3 version are based on the FDC3 Conformance tests specifications defined by the FDC3 maintainers and hosted on the [FDC3 website](../../website/docs/api/conformance/Overview.md). |
| 8 | + |
| 9 | +Tests in this module currently implement versions 2.0 and 2.2 of the FDC3 Standard. For old 1.2 conformance testing, please see the [archived FDC3 Conformance project](https://github.com/finos/FDC3-Conformance-Framework) |
| 10 | + |
| 11 | +## What Is It? |
| 12 | + |
| 13 | +- There are many vendors implementing Desktop Agents for the FDC3 standard. |
| 14 | +- Developers building apps interoperating with the FDC3 standard want to be sure that their apps will work with every Desktop Agent. |
| 15 | +- This suite of conformance tests allows for programmatic verification of an FDC3 Desktop Agent implementation. |
| 16 | + |
| 17 | +## Why Is This Important? |
| 18 | + |
| 19 | +✔️ **Multiple Platforms** |
| 20 | + |
| 21 | +It can be annoying for users to find that features in their apps that they rely on don't work when changing between Desktop Agents. Hopefully these conformance tests will add security around that. |
| 22 | + |
| 23 | +✔️ **Marketing** |
| 24 | + |
| 25 | +FINOS has created _badges_ to indicate conformance with the FDC3 standard. By passing the conformance tests and joining the conformance program, firms are able to use those badges in their own marketing materials. |
| 26 | + |
| 27 | +✔️ **Backwards Compatibility** |
| 28 | + |
| 29 | +There are multiple versions of the FDC3 standard. A Desktop Agent could host apps written in _any one of these versions_. For that reason, it's important that Desktop Agents are tested to make sure that they keep on supporting apps written against older versions of FDC3. |
| 30 | + |
| 31 | +## How Does It Work? |
| 32 | + |
| 33 | +There are two main parts to conformance: |
| 34 | + |
| 35 | + - Running the tests _locally_ |
| 36 | + - Joining the Conformance Program |
| 37 | + |
| 38 | +### Running The Conformance Tests |
| 39 | + |
| 40 | +You can either run the hosted conformance tests listed in the FINOS App Directory, or run them on your local machine (useful if you are making changes). Instructions for doing either of those things are here: |
| 41 | + |
| 42 | +#### Running From fdc3.finos.org |
| 43 | + |
| 44 | +You can run the FDC3 conformance tests straight from the FDC3 website. If you have a Desktop Agent supporting the [AppD v2 standard](https://fdc3.finos.org/docs/app-directory/spec), you can run the tests from the following URL: |
| 45 | + |
| 46 | + - [https://fdc3.finos.org/toolbox/fdc3-conformance/directory.v2.json](https://fdc3.finos.org/toolbox/fdc3-conformance/directory.v2.jso) |
| 47 | + |
| 48 | +#### Local Installation |
| 49 | + |
| 50 | +Alternatively, you can run the conformance suite from your local machine by following these steps: |
| 51 | + |
| 52 | +1. **Check Out This Repo** |
| 53 | + |
| 54 | +The FDC3 project is a monorepo and the `toolbox/fdc3-conformance` folder contains the conformance tests. |
| 55 | + |
| 56 | +2. **Install Dependencies** |
| 57 | + |
| 58 | +In order to get started, install all the dependencies with: |
| 59 | + |
| 60 | +```sh |
| 61 | +npm install |
| 62 | +``` |
| 63 | + |
| 64 | +3. **Run The Apps Locally** |
| 65 | + |
| 66 | +To run the conformance suite (and all of the other FDC3 project components such as the workbench and demo desktop agent) locally on port 3001: |
| 67 | + |
| 68 | +```sh |
| 69 | +npm run dev |
| 70 | +``` |
| 71 | + |
| 72 | +4. **Set Up Your Desktop Agent** |
| 73 | + |
| 74 | +You will need to set up your desktop agent so that it has an _App Directory containing all the conformance apps_. |
| 75 | +This step is vendor-dependent, but examples of `AppD` records can be found in the `directory` folder. |
| 76 | + |
| 77 | +### Running The Tests |
| 78 | + |
| 79 | +Once you have configured your desktop agent correctly, open the conformance app and select the tests you wish to run: |
| 80 | + |
| 81 | +<img src="static/selecting.png" alt="Selecting Tests" width="400px" /> |
| 82 | + |
| 83 | +The tests run and produce an output in the window. Failure are shown with a stack trace in red: |
| 84 | + |
| 85 | +<img src="static/failing.png" alt="Running Tests" width="400px" /> |
| 86 | + |
| 87 | +Successful runs look something like this: |
| 88 | + |
| 89 | +<img src="static/running.png" alt="Success" width="400px" /> |
| 90 | + |
| 91 | +### Joining The Conformance Program |
| 92 | + |
| 93 | +If you've had a clean run of all the tests locally, why not join the conformance program? |
| 94 | + |
| 95 | +[Instructions to join the Certified FDC3 Desktop Agent Conformance Program](instructions.md) |
| 96 | + |
| 97 | +Once you have followed these steps, you will be allowed to display the FDC3 Compliance Badges within your marketing literature. |
| 98 | + |
| 99 | +<img src="terms-conditions/graphics/1.2/2022_FDC3_CompliantBadge_1.2.png" alt="Conformance with FDC3 1.2" width="100px"><img src="terms-conditions/graphics/2.0/2022_FDC3_CompliantBadge_2.0.png" alt="Conformance with FDC3 2.0" width="100px"> |
| 100 | + |
| 101 | +### Which Desktop Agents Are Conformant? |
| 102 | + |
| 103 | +We publish the details of conformant desktop agents on the [FDC3 Home Page](https://fdc3.finos.org#conformance). Please check there to find out who FINOS has certified! |
| 104 | + |
0 commit comments