Skip to content
Back to skills

Fresh Install Testing

DSecurity

Test Orient from a clean clone to validate the full development setup and test suite

  • 666 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added February 8, 2026
databasesgobashsqlnodedockertestinggitapidatabase

Works with

  • cli
  • api
  • mcp

Security analysis

D56/100
  • mediumUses curl or wget to download content
  • highPerforms destructive filesystem operations
  • criticalExfiltrates credentials via HTTP — exact pattern from Snyk ToxicSkills study
  • criticalSends environment variables or credentials to an external URL
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill fresh-install-testing --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Fresh Install Testing?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Fresh Install Testing
[![Security: D — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-fresh-install-testing/badge)](https://www.skillsdirectory.com/skills/majiayu000-fresh-install-testing)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: fresh-install-testing
description: 'Test Orient from a clean clone to validate the full development setup and test suite'
---

# Fresh Install Testing

Test Orient from a clean clone to validate the full development setup and test suite.

## Triggers

- "fresh install test"
- "test from clean clone"
- "validate clean setup"
- "run full test suite on fresh clone"

## Clone Location

```bash
cd /Users/tombensim/code/tombensim
git clone https://github.com/orient-bot/orient.git orient-fresh-test
cd orient-fresh-test
```

**Note**: The remote URL is `https://github.com/orient-bot/orient.git` (not the personal fork).

## Phase 1: Environment Setup

### Pre-flight Checks

```bash
# Verify LFS binaries are fetched (not pointers)
git lfs pull

# Verify bundled binary checksums match
./installer/install-local.sh --check
```

### Run Doctor

```bash
./run.sh doctor --fix
```

This will:

- Validate Node.js >= 20.0.0, pnpm >= 9.0.0, Docker
- Create `.env` from `.env.example` if missing
- Create `.mcp.config.local.json` from template
- Run `pnpm install` automatically

### Copy Credentials from Main Repo

```bash
cp /Users/tombensim/code/tombensim/orient/.env /Users/tombensim/code/tombensim/orient-fresh-test/.env
```

This copies Slack credentials and other secrets needed for live testing.

### Build Packages

```bash
pnpm build:packages
```

Builds all 16 workspace packages. Required before running tests.

## Phase 2: Dev Mode Startup

### Start Dev-Local Mode (SQLite, no Docker)

```bash
./run.sh dev-local
```

This starts the development environment using SQLite (no PostgreSQL required).

### Stop Dev Mode

```bash
./run.sh stop
```

## Phase 3: Run Test Suite

### Test Categories

| Category    | Command                                        | Expected Tests |
| ----------- | ---------------------------------------------- | -------------- |
| Unit        | `pnpm test:unit`                               | ~243           |
| Integration | `INTEGRATION_TESTS=true pnpm test:integration` | ~43            |
| Contract    | `pnpm vitest run tests/contracts/`             | ~20            |
| Config      | `pnpm vitest run tests/config/`                | ~22            |
| Services    | `pnpm vitest run tests/services/`              | ~22            |
| E2E         | `E2E_TESTS=true pnpm test:e2e`                 | ~50            |
| Eval        | `pnpm test:eval`                               | ~53            |
| Docker      | `pnpm test:docker:build` (optional, slow)      | ~10            |

### Interpreting Results

**Timeouts vs Failures**:

- Timeout errors (120s, 90s) are usually due to OpenCode server response times under load, not functional failures
- These are acceptable in fresh install testing
- True failures will show assertion errors with specific file/line references

**Expected Skips**:

- Some tests are skipped by default (e.g., Slack live tests without tokens)
- Eval tests: 15 passing, ~38 failing is expected (ongoing refinement)

## Phase 4: Slack Bot Live Testing

### Export Credentials for Test Runner

The test runner doesn't automatically read `.env`. Export credentials explicitly:

```bash
cd /Users/tombensim/code/tombensim/orient-fresh-test
export SLACK_BOT_TOKEN=$(grep SLACK_BOT_TOKEN .env | cut -d= -f2)
export SLACK_USER_TOKEN=$(grep SLACK_USER_TOKEN .env | cut -d= -f2)
E2E_TESTS=true RUN_SLACK_LIVE_TESTS=true \
  SLACK_BOT_TOKEN="$SLACK_BOT_TOKEN" \
  SLACK_USER_TOKEN="$SLACK_USER_TOKEN" \
  pnpm vitest run tests/e2e/slack-live.e2e.test.ts
```

**Note**: `source .env` often fails due to comments or special characters in .env files.

## Phase 5: WhatsApp Bot Testing

### Start Dev Mode with WhatsApp

```bash
./run.sh dev-local
```

### Scan QR Code

1. Open http://localhost:4098/qr/
2. Open WhatsApp on phone > Settings > Linked Devices > Link a Device
3. Scan the QR code

### Verify Connection

```bash
curl -s http://localhost:4098/qr/status | jq .
# Should show: {"qrGenerated":true,"connected":true,"state":"open"}
```

### Troubleshooting WhatsApp Session Conflicts

**Symptom**: Phone shows "logging in" but never completes, or immediately logs out.

**Cause**: Session conflict with another instance using the same WhatsApp account.

**Solution**:

1. Check logs for "loggedOut" reason:
   ```bash
   grep -E "(loggedOut|logged out)" .dev-data/instance-0/logs/*.log
   ```
2. If logged out, a new QR code is automatically generated
3. Wait for "QR Code received" message in logs
4. Scan the fresh QR code

**Log Locations**:

- Main log: `.dev-data/instance-0/logs/dashboard.log`
- WhatsApp debug: `.dev-data/instance-0/logs/whatsapp-*.log`

## Phase 6: Health Verification

### API Health

```bash
curl -s http://localhost:4098/health | jq .
# Should return: {"status":"ok","timestamp":"..."}
```

### Dashboard Accessibility

```bash
curl -s -o /dev/null -w "%{http_code}" http://localhost:4098/
# Should return: 200
```

### WhatsApp QR Status

```bash
curl -s http://localhost:4098/qr/status | jq .
# Should return: {"qrGenerated":true,"connected":true,"state":"open"}
```

### Database Verification

```bash
sqlite3 .dev-data/instance-0/orient.db "SELECT COUNT(*) FROM agents;"
# Should return: 5 (or more)
```

## Phase 7: Mac Installer Testing

### Method 1: Local bundled binary

```bash
./installer/install-local.sh --check   # Verify versions/checksums
./installer/install-local.sh           # Install to ~/.orient/bin/
```

### Method 2: Full installer script

```bash
# Clean slate
rm -rf ~/.orient

# Run installer
bash installer/install.sh

# Verify
orient doctor
orient start
curl -s http://localhost:4098/health | jq .
orient stop
```

### Method 3: Docker simulation (cleanest environment)

```bash
pnpm test:installer:docker
```

### CLI Command Verification

After installer:

```bash
orient --help      # Shows help
orient doctor      # All checks pass
orient start       # Starts services
orient status      # Shows "online" status
orient logs        # Shows logs
orient stop        # Stops services
orient config      # Opens config in editor
orient version     # Shows 0.2.0
```

## Cleanup

```bash
cd /Users/tombensim/code/tombensim/orient-fresh-test
./run.sh stop
cd ..
rm -rf orient-fresh-test
```

## Quick Reference: Full Test Run

```bash
# Clone and setup
cd /Users/tombensim/code/tombensim
rm -rf orient-fresh-test
git clone https://github.com/orient-bot/orient.git orient-fresh-test
cd orient-fresh-test
git lfs pull
./run.sh doctor --fix
cp ../orient/.env .env
pnpm build:packages

# Start dev-local mode
./run.sh dev-local

# Run all tests
pnpm test:unit
INTEGRATION_TESTS=true pnpm test:integration
pnpm vitest run tests/contracts/
pnpm vitest run tests/config/
pnpm vitest run tests/services/
E2E_TESTS=true pnpm test:e2e
pnpm test:eval

# Verify health
curl -s http://localhost:4098/health | jq .

# Cleanup
./run.sh stop
```

## Expected Results (v0.2.0 baseline)

| Category    | Tests Passed | Notes                          |
| ----------- | ------------ | ------------------------------ |
| Unit        | ~243         |                                |
| Integration | ~43          |                                |
| Contract    | ~20          |                                |
| Config      | ~22          |                                |
| Services    | ~22          |                                |
| E2E         | ~50          | Timeout failures acceptable    |
| Eval        | ~15          | 38 known failures (acceptable) |
| Slack Live  | ~9           | Requires credential export     |
| **Total**   | **~380+**    |                                |

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.