mumbullet/test/integration
2025-06-21 11:47:06 -06:00
..
skipped Improved dashboard and music queue 2025-06-21 11:47:06 -06:00
connection_test.dart It works baby, seems like timing could be improved or something, but it freakin works 2025-06-18 20:59:24 -06:00
dart_test.yaml It works baby, seems like timing could be improved or something, but it freakin works 2025-06-18 20:59:24 -06:00
docker-compose.test.yml It works baby, seems like timing could be improved or something, but it freakin works 2025-06-18 20:59:24 -06:00
downloader_integration_test.dart It works baby, seems like timing could be improved or something, but it freakin works 2025-06-18 20:59:24 -06:00
README.md It works baby, seems like timing could be improved or something, but it freakin works 2025-06-18 20:59:24 -06:00

MumBullet Integration Tests

This directory contains integration tests for the MumBullet application.

Prerequisites

  • Docker and Docker Compose installed and running
  • Dart SDK installed

Running Tests

The integration tests will automatically:

  1. Check if Docker is running
  2. Start the required Docker containers
  3. Run the tests
  4. Clean up containers afterward

To run all tests:

dart test

To run only integration tests:

dart test test/integration/

To run a specific test:

dart test test/integration/connection_test.dart

Development Environment

For development, use the main docker-compose.yml in the project root:

# Start the development server
docker-compose up -d

# Run the bot
dart run bin/mumbullet.dart --config test/fixtures/test_config.json

# Stop the development server
docker-compose down

Integration Test Environment

The integration tests use a separate Docker Compose file:

# Run tests (Docker is started automatically)
dart test test/integration/

# Manually start test environment if needed
docker-compose -f test/integration/docker-compose.test.yml up -d

# Manually stop test environment
docker-compose -f test/integration/docker-compose.test.yml down -v

Test Configuration

The tests use special configuration files in the test/fixtures/ directory:

  • test_config.json: Main test bot configuration
  • test_configs/admin_config.json: Admin bot configuration
  • test_configs/user_config.json: User bot configuration

All configurations point to the Docker Mumble server running on localhost:64738.

Server Configuration

The Docker-based Mumble server is pre-configured with:

  • Server password: serverpassword
  • Multiple channels: Music, General, Gaming, and their subchannels
  • Default channel: Music

This setup allows testing different authentication and channel navigation scenarios.

Project Structure

test/
├── fixtures/            # Test fixtures and configurations
│   ├── cache/           # Cache directory for tests
│   ├── murmur.ini       # Mumble server configuration
│   ├── test_config.json # Main test configuration
│   └── test_configs/    # Additional test configurations
│       ├── admin_config.json
│       └── user_config.json
└── integration/         # Integration tests
    ├── connection_test.dart     # Tests for Mumble connection
    ├── docker-compose.test.yml  # Docker setup for integration tests
    └── README.md                # This file

The integration tests use a separate Docker Compose setup from the development environment to ensure consistent, isolated testing.