Files
redis-gui-foundation/docs/qa/local-desktop-smoke.md
Senior Frontend Engineer 8d50243d36 feat(desktop): add redis gui foundation baseline
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-28 10:39:40 +00:00

88 lines
2.8 KiB
Markdown

# Local Desktop Build And Smoke Runbook
Date: 2026-03-27
Owner: Senior Backend Engineer
## Goal
Provide one repeatable local build and smoke path that any engineer or QA can run against a seeded Redis fixture.
## Prerequisites
- Rust 1.85+
- Node.js 24+
- `pnpm` 10+
- Docker CLI with permission to run containers
- Linux desktop build prerequisites for Tauri, including WebKitGTK and GTK3 development packages
## Standard Commands
```bash
pnpm install
cargo test -p redis-core
pnpm run desktop:build
pnpm run desktop:tauri:build
```
Expected package output path on Linux after a successful Tauri build:
```text
target/release/bundle/
```
Linux preflight checks for native desktop libraries:
```bash
pkg-config --modversion gtk+-3.0
pkg-config --modversion webkit2gtk-4.1
pkg-config --modversion libsoup-3.0
```
All three commands should return a version. If any of them fail, `pnpm run desktop:tauri:build` is still environment-blocked even if the repository scripts are correct.
## Local Redis Fixture
Start and seed a deterministic Redis instance on `127.0.0.1:6380`:
```bash
./scripts/redis-fixture/start.sh
./scripts/redis-fixture/seed.sh
```
Stop and remove the fixture:
```bash
./scripts/redis-fixture/stop.sh
```
Seeded keys:
- `smoke:string`
- `smoke:string:ttl`
- `smoke:hash`
- `smoke:list`
- `smoke:set`
- `smoke:zset`
- `smoke:stream`
## Linux Smoke Steps
1. Run `./scripts/redis-fixture/start.sh`.
2. Run `./scripts/redis-fixture/seed.sh`.
3. Launch `pnpm run desktop:tauri:dev`.
4. In the desktop app, connect to host `127.0.0.1`, port `6380`, database `0`, no password, TLS disabled.
5. Verify the desktop window opens, app version plus runtime mode are visible in the header, and the connection test succeeds.
6. Verify the command console can run a safe read, such as `PING` or `GET smoke:string`.
7. Verify the seeded keys appear with expected types and TTL state in the browser and inspector surfaces.
8. Change TTL on `smoke:string:ttl`, remove TTL from the same key, and confirm the updated TTL state is reflected in the inspector.
9. Capture screenshots or terminal output for build, launch, connection success, key browse, TTL update, and command execution. If screenshots are unavailable, copy the in-app QA snapshot text into the smoke log.
10. Run `./scripts/redis-fixture/stop.sh` after the session.
## Current Validation Boundary
- `cargo test -p redis-core` passes in the current workspace.
- `pnpm run desktop:build` passes in the current workspace.
- `./scripts/redis-fixture/start.sh`, `./scripts/redis-fixture/seed.sh`, and `./scripts/redis-fixture/stop.sh` pass in the current workspace.
- `pnpm run desktop:tauri:build` now produces Linux `.deb` and `.rpm` artifacts under `target/release/bundle/`.
- The same Tauri build still fails in its AppImage stage with `io: Connection reset by peer (os error 104)`, so AppImage should be treated as not yet verified.