> For the complete documentation index, see [llms.txt](https://docs.drizz.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.drizz.dev/desktop-app/projects-tests-and-modules.md).

# Projects, tests & modules

A project holds two file types — tests and modules — organized into folders in the file explorer.

{% hint style="info" %}
**At a glance**

`New File` → Test · Module · Folder
{% endhint %}

|                        |                                                                                                                                                 |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| **File types**         | <p><strong>Test</strong> — one end-to-end flow <br><strong>Module</strong> — reusable steps called from tests</p>                               |
| **Telling them apart** | Modules carry a green **M** badge in the file explorer                                                                                          |
| **Workspace**          | **Online** syncs with your org · **Local** shows drafts on your Mac                                                                             |
| **Scope**              | Everything is org-scoped — your colleagues see the same tests and modules                                                                       |
| **Watch out**          | Deleting a project that holds a module breaks every test that calls it, Drizz warns while taking this action. Resolving modules is the way out. |

## Prerequisites

* Drizz desktop app installed and signed in
* A project in your organization

## File types

<table data-search="false"><thead><tr><th></th><th>Test</th><th>Module</th><th>Folder</th></tr></thead><tbody><tr><td><strong>Contains</strong></td><td>One end-to-end flow, one step per line</td><td>A block of steps called from many tests</td><td>Tests, modules and other folders</td></tr><tr><td><strong>Badge</strong></td><td>None</td><td>Green <strong>M</strong> in the file explorer</td><td>Folder icon</td></tr><tr><td><strong>Edited in</strong></td><td>The editor</td><td>The editor</td><td>—</td></tr><tr><td><strong>Runs</strong></td><td>Locally on a connected device, or in the cloud through a test plan</td><td>Only when called from a test</td><td>Not runnable</td></tr><tr><td><strong>Supports</strong></td><td>Validations, conditionals, scrolling, system commands, module calls</td><td>The same commands as a test</td><td>Expand and collapse</td></tr><tr><td><strong>Called by</strong></td><td>—</td><td><code>CALL &#x3C;module_name></code></td><td>—</td></tr><tr><td><strong>Functional effect of nesting</strong></td><td>None — a test in a folder behaves the same as one at the root</td><td>None</td><td>Organization only</td></tr></tbody></table>

Full module syntax, parameters and nesting rules are on [Modules](/writing-tests/modules.md).

## Calling a module

```
CALL login_module
```

The module's body appears inlined beneath the call, indented and read-only. Edits are made in the module file, not in the inlined copy.

## Naming conventions

| Item   | Convention                              | Example                                                          |
| ------ | --------------------------------------- | ---------------------------------------------------------------- |
| Test   | The flow's purpose, prefixed with an ID | `T01 — Invalid search feedback`, not `test1`                     |
| Module | What it does, in `snake_case`           | `login_module`, `city_selection_from_homepage`, not `T01_module` |
| Folder | Feature, sprint or team                 | —                                                                |

## Online and Local

| View       | Shows                                                                    |
| ---------- | ------------------------------------------------------------------------ |
| **Online** | Files synced with your organization's project — what your colleagues see |
| **Local**  | Drafts and locally stored files on your own Mac                          |

**Test plans run what is Online. A file left in Local does not run in the cloud.**

## Sharing and module dependencies

Your organization is created automatically from your email domain. Tests, modules, folders, datasets and Memory are all org-scoped and visible to every member.

A module is a dependency of every test that calls it:

| Action                                 | Effect                                                                                                                                     |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `CALL` with no matching module         | The step fails                                                                                                                             |
| Deleting a project that holds a module | Every test calling that module breaks. The warning is easy to miss                                                                         |
| Renaming a module                      | Every `CALL` using the old name gets auto updated, editing modules applies changes to all test where that module will be called in future. |

## Creating a file

1. Click **New File**.
2. Select **Test**, **Module** or **Folder**.
3. Name it per the conventions above.
4. Confirm it appears in the file explorer tree.

## Common mistakes

<table data-search="false"><thead><tr><th>What you do</th><th>What happens</th></tr></thead><tbody><tr><td>Delete a project to tidy up</td><td>Every test calling a module in it breaks, and the warning is easy to miss</td></tr><tr><td>Name tests <code>test1</code>, <code>test2</code></td><td>Unreadable at 40 files. Name them for the flow</td></tr><tr><td>Edit the inlined module body under a <code>CALL</code></td><td>It's read-only. Edit the module file</td></tr><tr><td>Type <code>CALL login_module</code> straight through</td><td>Autocomplete lags. Type <code>CALL</code>, pause for the dropdown, then pick</td></tr><tr><td>Assume your files are private</td><td>Everything is shared with your organization</td></tr><tr><td>Leave work in Local and expect a cloud plan to run it</td><td>Test plans run what's Online. Sync it</td></tr></tbody></table>

## Next

* [Modules](/writing-tests/modules.md)
* [Tour of the interface](/desktop-app/interface-tour.md)
* [The shape of a test](/writing-tests/writing-tests.md)

***

*Last updated: 6 August 2026*
