mirror of
https://github.com/jdalrymple/gitbeaker.git
synced 2026-01-18 15:55:30 +00:00
132 lines
2.8 KiB
Markdown
132 lines
2.8 KiB
Markdown
# Testing Guide
|
|
|
|
This guide covers both containerized testing (recommended) and manual testing approaches.
|
|
|
|
- **Unit Tests**: Test individual functions and components in isolation
|
|
- **Integration Tests**: Test API interactions with a real GitLab instance
|
|
- **End-to-End Tests**: Test complete workflows from client to server
|
|
|
|
## 🐳 Containerized Testing (Recommended)
|
|
|
|
The easiest way to run the full test suite is using Docker, which provides a consistent, isolated environment.
|
|
|
|
### Quick Start
|
|
|
|
Run the complete test suite (unit + integration + e2e):
|
|
|
|
```bash
|
|
yarn test:full
|
|
```
|
|
|
|
This command will:
|
|
|
|
- Start a GitLab CE instance using Docker Compose
|
|
- Wait for GitLab to be healthy and ready
|
|
- Set required environment variables
|
|
- Clean and build the project
|
|
- Run all test types sequentially (types, unit, integration, e2e)
|
|
- Keep GitLab running for additional testing (optional cleanup)
|
|
|
|
### Individual Test Types
|
|
|
|
You can also run specific test types individually:
|
|
|
|
```bash
|
|
# Type tests only
|
|
yarn test:types
|
|
|
|
# Unit tests only
|
|
yarn test:unit
|
|
|
|
# Integration tests only (requires GitLab running)
|
|
yarn test:integration
|
|
|
|
# End-to-end tests only
|
|
yarn test:e2e
|
|
```
|
|
|
|
### Manual GitLab Instance
|
|
|
|
To start just the GitLab instance for manual testing:
|
|
|
|
```bash
|
|
cd .docker && docker-compose up gitlab
|
|
```
|
|
|
|
GitLab will be available at `http://localhost:8080` with:
|
|
|
|
- Username: `root`
|
|
- Password: `gitbeaker`
|
|
- Personal Access Token: `superstrongpassword123`
|
|
|
|
## 🛠️ Local Testing (Alternative)
|
|
|
|
For contributors who prefer to test locally without Docker:
|
|
|
|
### Unit Tests
|
|
|
|
```bash
|
|
yarn test:unit
|
|
```
|
|
|
|
### Integration Tests
|
|
|
|
1. First, run GitLab in a docker container:
|
|
|
|
```bash
|
|
cd .docker && docker-compose up gitlab
|
|
```
|
|
|
|
2. Once GitLab is up on localhost:8080, set the environment variables:
|
|
|
|
```bash
|
|
export GITLAB_URL="http://localhost:8080"
|
|
export GITLAB_PERSONAL_ACCESS_TOKEN="superstrongpassword123"
|
|
```
|
|
|
|
3. Run the integration tests:
|
|
|
|
```bash
|
|
yarn test:integration
|
|
```
|
|
|
|
You can also define them inline:
|
|
|
|
```bash
|
|
GITLAB_URL='http://localhost:8080' GITLAB_PERSONAL_ACCESS_TOKEN='superstrongpassword123' yarn test:integration
|
|
```
|
|
|
|
### End-to-End Tests
|
|
|
|
```bash
|
|
yarn test:e2e
|
|
```
|
|
|
|
> **Note:** It may take about 3 minutes for GitLab to fully start up in the container
|
|
|
|
## 🔧 Troubleshooting
|
|
|
|
### Docker Issues
|
|
|
|
If you encounter Docker build issues:
|
|
|
|
```bash
|
|
# Clean Docker cache
|
|
docker system prune -f
|
|
|
|
# Rebuild containers
|
|
cd .docker && docker-compose build --no-cache
|
|
```
|
|
|
|
### SSL Certificate Issues
|
|
|
|
If you're behind a corporate firewall, you may need to configure Docker to trust your certificates or use alternative registries.
|
|
|
|
### GitLab Startup
|
|
|
|
GitLab requires significant resources and startup time. Ensure you have:
|
|
|
|
- At least 4GB of available RAM
|
|
- Docker Desktop running with sufficient memory allocation
|
|
- Wait 2-3 minutes for GitLab to be fully ready
|