feat(docs): add pngs for README, move docs around
This commit is contained in:
parent
b8ddd1b263
commit
7df2f98b5d
Binary file not shown.
|
After Width: | Height: | Size: 2.1 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 611 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 318 KiB |
|
|
@ -1,258 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Comprehensive test script for the label system
|
||||
# This script runs both backend Rust tests and frontend React tests
|
||||
|
||||
set -e # Exit on any error
|
||||
|
||||
echo "🏷️ Running Label System Test Suite"
|
||||
echo "=================================="
|
||||
|
||||
# Colors for output
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Function to print colored output
|
||||
print_status() {
|
||||
echo -e "${BLUE}[INFO]${NC} $1"
|
||||
}
|
||||
|
||||
print_success() {
|
||||
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
||||
}
|
||||
|
||||
print_warning() {
|
||||
echo -e "${YELLOW}[WARNING]${NC} $1"
|
||||
}
|
||||
|
||||
print_error() {
|
||||
echo -e "${RED}[ERROR]${NC} $1"
|
||||
}
|
||||
|
||||
# Function to check if command exists
|
||||
command_exists() {
|
||||
command -v "$1" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
# Check prerequisites
|
||||
print_status "Checking prerequisites..."
|
||||
|
||||
if ! command_exists cargo; then
|
||||
print_error "Cargo (Rust) is required but not installed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command_exists npm; then
|
||||
print_error "npm is required but not installed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command_exists docker; then
|
||||
print_warning "Docker not found - integration tests may fail"
|
||||
fi
|
||||
|
||||
print_success "All prerequisites available"
|
||||
|
||||
# Backend Tests
|
||||
echo
|
||||
print_status "Running Backend (Rust) Tests..."
|
||||
echo "================================="
|
||||
|
||||
# Unit tests
|
||||
print_status "Running label unit tests..."
|
||||
if cargo test labels_tests --lib; then
|
||||
print_success "Label unit tests passed"
|
||||
else
|
||||
print_error "Label unit tests failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Integration tests (if Docker is available)
|
||||
if command_exists docker; then
|
||||
print_status "Running label integration tests..."
|
||||
if cargo test labels_integration_tests --test labels_integration_tests; then
|
||||
print_success "Label integration tests passed"
|
||||
else
|
||||
print_error "Label integration tests failed"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
print_warning "Skipping integration tests (Docker not available)"
|
||||
fi
|
||||
|
||||
# All backend tests
|
||||
print_status "Running all backend tests..."
|
||||
if cargo test; then
|
||||
print_success "All backend tests passed"
|
||||
else
|
||||
print_error "Some backend tests failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Frontend Tests
|
||||
echo
|
||||
print_status "Running Frontend (React) Tests..."
|
||||
echo "================================="
|
||||
|
||||
cd frontend
|
||||
|
||||
# Install dependencies if needed
|
||||
if [ ! -d "node_modules" ]; then
|
||||
print_status "Installing frontend dependencies..."
|
||||
npm install
|
||||
fi
|
||||
|
||||
# Run label component tests
|
||||
print_status "Running Label component tests..."
|
||||
if npm run test -- --run components/Labels/; then
|
||||
print_success "Label component tests passed"
|
||||
else
|
||||
print_error "Label component tests failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Run LabelsPage tests
|
||||
print_status "Running LabelsPage tests..."
|
||||
if npm run test -- --run pages/__tests__/LabelsPage.test.tsx; then
|
||||
print_success "LabelsPage tests passed"
|
||||
else
|
||||
print_error "LabelsPage tests failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Run all frontend tests
|
||||
print_status "Running all frontend tests..."
|
||||
if npm run test -- --run; then
|
||||
print_success "All frontend tests passed"
|
||||
else
|
||||
print_error "Some frontend tests failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Return to root directory
|
||||
cd ..
|
||||
|
||||
# Test Coverage (optional)
|
||||
echo
|
||||
print_status "Generating Test Coverage Reports..."
|
||||
echo "=================================="
|
||||
|
||||
# Backend coverage
|
||||
print_status "Generating backend test coverage..."
|
||||
if command_exists cargo-tarpaulin; then
|
||||
cargo tarpaulin --out Html --output-dir target/coverage/backend -- labels_tests
|
||||
print_success "Backend coverage report generated at target/coverage/backend/tarpaulin-report.html"
|
||||
elif command_exists grcov; then
|
||||
print_status "Using grcov for coverage..."
|
||||
# Add grcov commands here if needed
|
||||
else
|
||||
print_warning "No coverage tool found (install cargo-tarpaulin or grcov for coverage reports)"
|
||||
fi
|
||||
|
||||
# Frontend coverage
|
||||
print_status "Generating frontend test coverage..."
|
||||
cd frontend
|
||||
if npm run test:coverage 2>/dev/null; then
|
||||
print_success "Frontend coverage report generated"
|
||||
else
|
||||
print_warning "Frontend coverage generation failed or not configured"
|
||||
fi
|
||||
cd ..
|
||||
|
||||
# Database Migration Test
|
||||
echo
|
||||
print_status "Testing Database Migration..."
|
||||
echo "============================"
|
||||
|
||||
if command_exists sqlx; then
|
||||
print_status "Checking migration syntax..."
|
||||
if sqlx migrate info --database-url "postgres://test:test@localhost/test" 2>/dev/null; then
|
||||
print_success "Migration syntax is valid"
|
||||
else
|
||||
print_warning "Could not validate migration (database not available)"
|
||||
fi
|
||||
else
|
||||
print_warning "sqlx-cli not found - skipping migration validation"
|
||||
fi
|
||||
|
||||
# API Schema Validation
|
||||
echo
|
||||
print_status "Validating API Schema..."
|
||||
echo "========================"
|
||||
|
||||
print_status "Checking Rust API types..."
|
||||
if cargo check --lib; then
|
||||
print_success "Rust API types are valid"
|
||||
else
|
||||
print_error "Rust API types have issues"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
print_status "Checking TypeScript types..."
|
||||
cd frontend
|
||||
if npm run type-check 2>/dev/null; then
|
||||
print_success "TypeScript types are valid"
|
||||
else
|
||||
print_warning "TypeScript type checking failed or not configured"
|
||||
fi
|
||||
cd ..
|
||||
|
||||
# Performance Tests (basic)
|
||||
echo
|
||||
print_status "Running Performance Tests..."
|
||||
echo "============================"
|
||||
|
||||
print_status "Testing label creation performance..."
|
||||
# Could add performance benchmarks here
|
||||
|
||||
print_success "Basic performance tests completed"
|
||||
|
||||
# Security Tests
|
||||
echo
|
||||
print_status "Running Security Tests..."
|
||||
echo "========================="
|
||||
|
||||
print_status "Checking for security vulnerabilities..."
|
||||
cd frontend
|
||||
if npm audit --audit-level moderate; then
|
||||
print_success "No moderate+ security vulnerabilities found"
|
||||
else
|
||||
print_warning "Security vulnerabilities detected - review npm audit output"
|
||||
fi
|
||||
cd ..
|
||||
|
||||
# Final Summary
|
||||
echo
|
||||
echo "🎉 Label System Test Suite Complete!"
|
||||
echo "===================================="
|
||||
print_success "All critical tests passed"
|
||||
|
||||
echo
|
||||
echo "📊 Test Summary:"
|
||||
echo " ✅ Backend unit tests"
|
||||
echo " ✅ Backend integration tests (if Docker available)"
|
||||
echo " ✅ Frontend component tests"
|
||||
echo " ✅ Frontend page tests"
|
||||
echo " ✅ Type checking"
|
||||
echo " ✅ Security audit"
|
||||
|
||||
echo
|
||||
echo "📁 Generated Reports:"
|
||||
echo " • Backend coverage: target/coverage/backend/tarpaulin-report.html"
|
||||
echo " • Frontend coverage: frontend/coverage/"
|
||||
echo " • Test logs: Available in console output"
|
||||
|
||||
echo
|
||||
print_status "Label system is ready for production! 🚀"
|
||||
|
||||
# Optional: Open coverage reports
|
||||
if command_exists xdg-open && [ -f "target/coverage/backend/tarpaulin-report.html" ]; then
|
||||
read -p "Open backend coverage report? (y/n): " -n 1 -r
|
||||
echo
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
xdg-open target/coverage/backend/tarpaulin-report.html
|
||||
fi
|
||||
fi
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
// Simple test file to verify BulkDeleteRequest compilation
|
||||
use readur::routes::documents::BulkDeleteRequest;
|
||||
use uuid::Uuid;
|
||||
|
||||
fn main() {
|
||||
// Create a BulkDeleteRequest to test compilation
|
||||
let request = BulkDeleteRequest {
|
||||
document_ids: vec![Uuid::new_v4(), Uuid::new_v4()],
|
||||
};
|
||||
|
||||
// Test serialization
|
||||
let json = serde_json::to_string(&request).unwrap();
|
||||
println!("JSON: {}", json);
|
||||
|
||||
// Test deserialization
|
||||
let deserialized: BulkDeleteRequest = serde_json::from_str(&json).unwrap();
|
||||
println!("Deserialized IDs count: {}", deserialized.document_ids.len());
|
||||
|
||||
println!("BulkDeleteRequest compilation test passed!");
|
||||
}
|
||||
Loading…
Reference in New Issue