Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: Describe how to test against a local Reference Implementation #194

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 20 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,31 @@ When code is committed, the documentation generator is automatically run. This p

## Reference Implementation

The OpenActive Test Suite is developed against a reference implementation, [OpenActive.Server.NET](https://github.com/openactive/OpenActive.Server.NET/).
The OpenActive Test Suite is developed against a Reference Implementation, [OpenActive.Server.NET](https://github.com/openactive/OpenActive.Server.NET/).

The CI checks that the Test Suite passes for the reference implementation. Therefore, the approach for adding each new test is to work on both:
### CI

The CI checks that the Test Suite passes for the Reference Implementation. When adding a new test, it is possible that the Reference Implementation has not yet implemented the functionality that the new test tests.

Therefore, when adding a new test that requires work to the Test Suite and the Reference Implementation, the approach is to work on them both:

- Reference Implementation: The implementation of the feature that's being tested.
- Test Suite: The test itself.

Any new feature that affects test coverage must be developed in a `coverage/*` branch in both reposities, in order for the CI to automatically run both feature branches against each other.
Use a `coverage/*` branch in both repositories with the same name (e.g. `coverage/amend-order-quote`) in order for the CI to automatically run both branches against each other.

### Local testing

It is often helpful to run the tests against a local copy of the Reference Implementation. In order to do this:

1. Run the Reference Implementation (`Examples/BookingSystem.AspNetCore` in [OpenActive.Server.NET](https://github.com/openactive/OpenActive.Server.NET/)) locally.
2. Update `datasetSiteUrl` in your local broker config (packages/openactive-broker-microservice/config/local.json) to point to the local Reference Implementation's `/openactive` URL e.g. (ports are assigned randomly by .NET, so yours will differ from this example)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
2. Update `datasetSiteUrl` in your local broker config (packages/openactive-broker-microservice/config/local.json) to point to the local Reference Implementation's `/openactive` URL e.g. (ports are assigned randomly by .NET, so yours will differ from this example)
2. Update `datasetSiteUrl` in your [local broker config](./#local-configuration) (packages/openactive-broker-microservice/config/local.json) to point to the local Reference Implementation's `/openactive` URL e.g. (ports are assigned randomly by .NET, so yours will differ from this example)

as it's not always obvious what local.json is from a cursory glance

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nickevansuk What is ./#local-configuration supposed to point to?

```json
"datasetSiteUrl": "http://localhost:55603/openactive"
```
3. Update `sellers` in your local integration tests config (packages/openactive-integration-tests/config/local.json) to reflect the local seller URLs.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
3. Update `sellers` in your local integration tests config (packages/openactive-integration-tests/config/local.json) to reflect the local seller URLs.
3. Update `sellers` in your [local integration tests config](./#local-configuration) (packages/openactive-integration-tests/config/local.json) to reflect the local seller URLs.

as it's not always obvious what local.json is from a cursory glance


The broker and tests should now run against your local copy of the Reference Implementation.

## Pull Request Process

Expand Down