# How do you Test API Clients in CI?

**URL:** https://community.zammad.org/t/how-do-you-test-api-clients-in-ci/20011
**Category:** Technical assistance
**Created:** [April 10, 2026, 5:49pm UTC](https://community.zammad.org/t/how-do-you-test-api-clients-in-ci/20011 "2026-04-10T17:49:48Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![ggrosskopf](https://community.zammad.org/letter_avatar_proxy/v4/letter/g/ecccb3/32.png) [@ggrosskopf](https://community.zammad.org/u/ggrosskopf)
#### Post date: [April 10, 2026, 5:49pm UTC](https://community.zammad.org/t/how-do-you-test-api-clients-in-ci/20011/1 "2026-04-10T17:49:48Z")

</div>

### Infos:

- Used Zammad version: 7.0.1
- Used Zammad installation type: docker-compose
- Operating system: debian
- Browser + version: Firefox 149

### Expected behavior:

- I Wanted to have a small Container to bundle into my Woodpecker environment for testing my API Calls against, so that I know that Zammad behaves correctly when I call it

### Actual behavior:

- I Can’t find such a small Container, I don’t wanna test against the live system as I don’t want the system to send out Emails when I do and I Prefer to have a clean system that can reset after my tests, now I set up an entire secondary Zammad just for testing with my object parameter configuration and I can’t get an email configuration that fakes sending, so I doubt I can create fake tickets without such a fake sender-email and I believe I’m far too deep into this rabbit hole, how are you all doing that? do you just not test your API Clients?

### Steps to reproduce the behavior:

- Try to write an API Client and then try to test an API Client without sending emails

---

<div class="post-metadata">

### Author: ![rolfschmidt](https://community.zammad.org/user_avatar/community.zammad.org/rolfschmidt/32/3368_2.png) [@rolfschmidt](https://community.zammad.org/u/rolfschmidt)
#### Post date: [April 14, 2026, 1:31pm UTC](https://community.zammad.org/t/how-do-you-test-api-clients-in-ci/20011/2 "2026-04-14T13:31:51Z")

</div>

For our integrations we usually do webmocking/cassettes. Maybe these 2 keywords help you to find something similar for yourself. So outgoing requests are disabled and can get overwritten with certain results e.g. If somebody makes a request to [http://endpoint/route](http://endpoint/route) then return status 200 with json body of file `result.json`.

[zammad/spec/lib/external\_credential/microsoft\_graph\_spec.rb at ad5bbf36284feb464551c56cb5c11235cc35cd08 · zammad/zammad · GitHub](https://github.com/zammad/zammad/blob/ad5bbf36284feb464551c56cb5c11235cc35cd08/spec/lib/external_credential/microsoft_graph_spec.rb#L74-L76)

[zammad/spec/system/import/zendesk\_spec.rb at ad5bbf36284feb464551c56cb5c11235cc35cd08 · zammad/zammad · GitHub](https://github.com/zammad/zammad/blob/ad5bbf36284feb464551c56cb5c11235cc35cd08/spec/system/import/zendesk_spec.rb#L76-L88)

---

<div class="post-metadata">

### Author: ![system](https://community.zammad.org/uploads/default/original/1X/5c5afaea2d23f811dbec33cd4edb02fa29d3262f.png) [@system](https://community.zammad.org/u/system)
#### Post date: [April 21, 2026, 1:32pm UTC](https://community.zammad.org/t/how-do-you-test-api-clients-in-ci/20011/3 "2026-04-21T13:32:41Z")

</div>

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.
