feat(desktop): add redis gui foundation baseline
Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
87
docs/qa/local-desktop-smoke.md
Normal file
87
docs/qa/local-desktop-smoke.md
Normal file
@@ -0,0 +1,87 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user