# NetAlertX Docker Test Configurations

This directory contains docker-compose configurations for different test scenarios.

## Available Configurations

### readonly
- **File**: `docker-compose.readonly.yml`
- **Description**: Tests with a read-only container filesystem
- **Use case**: Verify that the application works correctly when the container filesystem is read-only

### writable
- **File**: `docker-compose.writable.yml`
- **Description**: Tests with writable tmpfs mounts for performance
- **Use case**: Standard testing with optimized writable directories

## Mount Diagnostic Tests

The `mount-tests/` subdirectory contains 24 docker-compose configurations that test all possible mount scenarios for each path that NetAlertX monitors:

- **6 paths**: `/data/db`, `/data/config`, `/tmp/api`, `/tmp/log`, `/tmp/run`, `/tmp/nginx/active-config`
- **4 scenarios per path**: `no-mount`, `ramdisk`, `mounted`, `unwritable`
- **Total**: 24 comprehensive test configurations

### Running Tests

Use pytest to run the mount diagnostic tests:

```bash
cd /workspaces/NetAlertX/test/docker_tests
pytest test_mount_diagnostics_pytest.py -v
```

Or run specific test scenarios:

```bash
pytest test_mount_diagnostics_pytest.py -k "db_ramdisk"
```

### Test Coverage

Each test validates that the mount diagnostic tool (`/entrypoint.d/10-mounts.py`) correctly identifies:
- **Good configurations**: No issues reported, exit code 0
- **Bad configurations**: Issues detected in table format, exit code 1

The tests ensure that persistent paths (db, config) require durable storage (volumes) while non-persistent paths (api, log, run) benefit from fast storage (tmpfs).