98 lines
1.6 KiB
Markdown
98 lines
1.6 KiB
Markdown
# Living Spec Standalone (Web Server Binary)
|
|
|
|
This app runs as a single Rust web server binary that serves the Vite/React frontend and exposes APIs.
|
|
The frontend lives in the `frontend/` directory.
|
|
|
|
## Running it in development
|
|
|
|
```bash
|
|
# Build the frontend
|
|
cd frontend
|
|
pnpm install
|
|
pnpm build
|
|
cd ..
|
|
|
|
# Run the server (serves embedded frontend/dist/)
|
|
cargo run
|
|
```
|
|
|
|
## Running it in production
|
|
|
|
```bash
|
|
# Build the frontend
|
|
cd frontend
|
|
pnpm install
|
|
pnpm build
|
|
cd ..
|
|
|
|
# Run the server (serves embedded frontend/dist/)
|
|
cargo run
|
|
```
|
|
|
|
|
|
## Testing
|
|
|
|
This project uses **nextest** for running tests and **cargo-llvm-cov** for code coverage.
|
|
|
|
### Install Tools
|
|
|
|
```bash
|
|
cargo install cargo-nextest cargo-llvm-cov
|
|
```
|
|
|
|
### Run Tests
|
|
|
|
```bash
|
|
# Run all tests
|
|
cargo nextest run
|
|
|
|
# Run specific module
|
|
cargo nextest run search_files
|
|
|
|
# Run with verbose output
|
|
cargo nextest run --no-capture
|
|
```
|
|
|
|
### Generate Coverage
|
|
|
|
```bash
|
|
# HTML report (opens in browser)
|
|
cargo llvm-cov nextest --html --open
|
|
|
|
# Terminal output
|
|
cargo llvm-cov nextest
|
|
|
|
# LCOV format (for CI)
|
|
cargo llvm-cov nextest --lcov --output-path lcov.info
|
|
|
|
# Clean coverage data
|
|
cargo llvm-cov clean
|
|
```
|
|
|
|
### Configuration
|
|
|
|
- **Nextest config**: `.config/nextest.toml`
|
|
- **Coverage output**: `target/llvm-cov/html/index.html`
|
|
|
|
## Current Coverage (search_files module)
|
|
|
|
```
|
|
Module: commands/search.rs
|
|
├── Region Coverage: 75.36%
|
|
├── Function Coverage: 69.05%
|
|
└── Line Coverage: 72.55%
|
|
```
|
|
|
|
### Available Test Profiles
|
|
|
|
```bash
|
|
# Development (default)
|
|
cargo nextest run
|
|
|
|
# CI with retries
|
|
cargo nextest run --profile ci
|
|
|
|
# Coverage optimized
|
|
cargo nextest run --profile coverage
|
|
```
|