OpenFn / OpenFn/apollo

testing: Integration Tests

Open
#473 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

testing
Dominant language
Jupyter Notebook
Stars
5
Forks
10
Avg merge
2d 20h
Merged PRs (30d)
17

Description

Establish an effective integration test suite within apollo

Integration tests are designed to test the functionality and content of a service, end-to-end, including real model calls. They should not set a high quality bar or depend too much on the model, but should broadly assert the flow of information through the request.

Here are the principles of integration testing:

  • Integration tests are run against the running bun server, so they're HTTP calls, rather than direct pyhon calls
  • Integration tests require LLM calls so are expensive to run
  • Assertions should test the shape of the payload returned by apollo, and by running regex tests against the content. They should be a little loose in terms of content, to allow for the models to return different answers which still satisfy the test criteria
  • They are designed to be run once per branch, before merging, and probably on some manual trigger. Maybe they can run on every push once a label has been added.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by examining the running bun server and the HTTP request flow that integration tests must exercise, rather than calling Python directly. Define tests around payload shape and loose regex checks for real model responses, then verify they can run once per branch with an appropriate manual or labeled trigger.

Written by the indexing model from the issue text.

Assessment

Tech stack
bun, python
Domain
ai, api, backend, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.