Manual validation (Windows/macOS)
This guide is a maintainer smoke checklist for real client environments before release.
It validates transport/discovery behavior in real conditions. It does not replace automated tests.
Scope and trust model
- Target environments: Windows and macOS with a real running League Client.
- Linux/Wine/Proton layouts are best-effort and should use explicit
LCU_LOCKFILE. - Do not mark this validation as passed unless checks were executed in a real environment.
Prerequisites
- .NET SDK from
global.json - League Client running on the machine
- repository cloned locally
Build the sample once:
dotnet restore Thresh.slnx
dotnet build Thresh.slnx -c Release
Smoke checklist
Run these checks in order.
1) Lockfile auto-discovery
Without setting LCU_LOCKFILE, run:
dotnet run --project samples/Thresh.Samples.Console/Thresh.Samples.Console.csproj -- http-get
Expected outcome:
- the sample performs a successful LCU HTTP call
- no manual lockfile path is required
2) Explicit LCU_LOCKFILE override
Set LCU_LOCKFILE and run the same demo.
PowerShell:
$env:LCU_LOCKFILE = "C:\path\to\lockfile"
dotnet run --project samples/Thresh.Samples.Console/Thresh.Samples.Console.csproj -- http-get
Remove-Item Env:LCU_LOCKFILE
Bash/zsh:
export LCU_LOCKFILE="/path/to/lockfile"
dotnet run --project samples/Thresh.Samples.Console/Thresh.Samples.Console.csproj -- http-get
unset LCU_LOCKFILE
Expected outcome:
- request succeeds using the explicit lockfile path
3) WebSocket connection
dotnet run --project samples/Thresh.Samples.Console/Thresh.Samples.Console.csproj -- ws-connect
Expected outcome:
- WebSocket reaches connected state
- no immediate reconnect loop under stable client conditions
4) WebSocket subscription
dotnet run --project samples/Thresh.Samples.Console/Thresh.Samples.Console.csproj -- sub-typed-snapshot
Expected outcome:
- initial snapshot callback is received
- subsequent event callbacks are received when state changes
5) Sample runner sanity
dotnet run --project samples/Thresh.Samples.Console/Thresh.Samples.Console.csproj -- --help
Expected outcome:
- demo list is printed
- expected demos include
http-get,ws-connect, andsub-typed-snapshot
6) Optional endpoint-level validation
When a live client state allows it:
dotnet run --project samples/Thresh.Samples.Console/Thresh.Samples.Console.csproj -- endpoints
Expected outcome:
- typed endpoint calls return data for available client state
Failure diagnostics
If checks fail:
- Verify League Client is running.
- Use explicit
LCU_LOCKFILEto bypass discovery ambiguity. - Confirm local certificate options used by your sample configuration:
AcceptSelfSignedCertificates = trueWsAcceptSelfSignedCertificates = true
- Re-run a single focused demo (
http-getorws-connect) before broader checks. - Capture logs and include OS, client state, and command used in the release PR notes.
Recording validation in release PRs
Use concise statements only for checks that were actually executed.
Example:
- Windows: ✅ auto-discovery, ✅
LCU_LOCKFILE, ✅ HTTP, ✅ WebSocket connect/subscription - macOS: ✅ auto-discovery, ✅
LCU_LOCKFILE, ✅ HTTP, ✅ WebSocket connect/subscription - Optional endpoint-level: ⚪ not executed (client state not suitable)