---
title: Preview and E2E tests
question: How do I see and test my application before merging?
description: Every run starts a preview of its branch, opened in Diavi as a website or on a phone, and runs its end-to-end tests on it.
section: understand
order: 4
---
Every run starts a preview of its branch: your application, launched with the merge request's code, on demo data. It opens in the run's **Preview** tab, in a computer or phone frame, and its link is in the merge request along with the test account.

## My application has a front end, an API and a database: does it all start?

Yes, if your repository has a `docker-compose.yml` at its root: the preview follows it, and each service reaches the others by name. Nothing that would touch our machine is kept — privileged mode, host network, folders outside the repository — and a repository folder mounted in a service is copied into it. Without a compose file, the preview starts the run's main stack.

## Is there an account to sign in with?

When the stack allows it, the preview creates a demo account: Dolibarr, Laravel, Django. It is shown next to the link. If the account could not be created, the tests run without signing in and the run says so.

## How are the tests written?

Before writing, Diavi explores the preview: it signs in, notes the real addresses and what each screen shows, and never follows a sign-out or delete link. The tests rely on what it saw, not on guessed addresses, and each one checks that the page it opens exists.

## A test fails: who fixes what?

Diavi sorts it out first. If the test itself is wrong — a page that does not exist, a test that does not run, an ambiguous element — it rewrites the test without touching your code. Otherwise, it fixes the code. The merge request comment says which way was taken.

## Is my data protected?

The preview runs on demo data, never yours, and disappears when it expires. An application that talks to Firebase directly cannot reach it during the tests: they cannot write to your real project.

## What about a mobile app?

The preview shows the web version of the app in a phone frame: status bar, three screen sizes, rotation. For Flutter, the tests turn on the accessibility layer, without which nothing can be read. Native iOS or Android rendering is not offered yet.
