Skip to content

Integration Test DSL - #214

Merged
rajp152k merged 54 commits into
mainfrom
capability-levels
Apr 29, 2026
Merged

Integration Test DSL#214
rajp152k merged 54 commits into
mainfrom
capability-levels

Conversation

@rajp152k

@rajp152k rajp152k commented Apr 9, 2026

Copy link
Copy Markdown
Contributor

Currently, goose devs need to write similar integration tests per broker implementation (see #202)

This PR targets this problem of having to repeat yourself by abstracting out the boilerplate and providing a minimal integration test DSL to test goose, without having to deal with the leaks of what broker implementation is being used underneath.

Coverage across brokers might vary and all implementations may not qualify for certain tests. Capability computations (static reflection (unimplemented methods would be abstract)) based on methods implemented (of the broker protocol) help kick off a generic test loop that only tests a particular broker when it satisfies the requirements for that scenario.

testing a new broker implementation only involves registering fixtures, (client and worker) opts and the static implementation as data (in a broker utilities map and a vector that capability computer picks up), that the engine later picks up and executes upon.

The final def-integration-test anaphoric macro enables concisely communicating domain specific intent by only demanding what is needed (test scenario, requirements, distilled body), while exposing templatized anaphoras (broker and test-name).

the plumbing of checking side effects of an execution, picking up broker utilities are neatly abstracted away as well.

@rajp152k

Copy link
Copy Markdown
Contributor Author

experimental def-integration-test macro for abstracting out further boilerplate logged here :
be81d1d

proceeding with more minimal and decisive refactors towards closing this PR for now:

  • get rid of alter-meta!s : testing blocks handle reporting - further allows parallelization
  • retain clojure.test semantics for fixtures and instead alter the test utilities to have finally clauses for cleanup
  • atoms of promises instead direct resets to eliminate the flakiness of thread/sleeps
  • further misc syntactic choices (thread out nested calls in some places, etc)

@rajp152k rajp152k changed the title Capability levels init Integration Test DSL Apr 28, 2026
@rajp152k rajp152k changed the title Integration Test DSL Integration Test DSL : closes #202 Apr 29, 2026
@rajp152k rajp152k changed the title Integration Test DSL : closes #202 Integration Test DSL : fix #202 Apr 29, 2026
@rajp152k rajp152k changed the title Integration Test DSL : fix #202 Integration Test DSL Apr 29, 2026
@rajp152k
rajp152k merged commit 2398f13 into main Apr 29, 2026
3 of 4 checks passed
@rajp152k
rajp152k deleted the capability-levels branch April 29, 2026 09:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants