ReqLab uses a layered validation strategy:
- Unit tests (
core-network,core-storage,core-model,core-scripting) - Shared UI/unit tests (
ui-shared,editor-core,editor-ui) - Integration and end-to-end API workflow tests (
qa-tests) - Desktop UI automation and regression tests (
ui-desktop)
Model serialization and data structure behavior.
RealtimeModelsTest— WebSocket message and realtime model serializationResponseMetricsTimingTest— phase-level response timing (DNS, TCP, TLS, TTFB, body, total)ResponseDefinitionStreamFieldsTest—streamEvents/assembledTextdefaults and serialization
Protocol behavior, request mapping, and variable substitution.
KtorApiClientTest— HTTP methods (GET/POST/PUT/PATCH/DELETE/OPTIONS/HEAD), body type delivery (JSON, form-data, urlencoded, raw, binary), auth headers, dynamic variables in URL/headers, timing metrics, retry logic, SSE/NDJSON streamingSseParserTest— incremental SSE parsing (data:, comments,[DONE])LlmTextAssemblerTest— OpenAI delta / NDJSON content assemblyVariableResolverTest— variable interpolation, scope precedence, unresolved-variable passthrough
Script runtime, assertions, and variable scopes.
ReqLabScriptEngineTest— JS execution isolation,req/resbindings, pre-request scripts, post-response assertions,response.llm.*/streamEvents, variable set/get across script phases, assertion error messages
Repository and persistence behavior.
InMemoryRepositoriesTest— CRUD for requests, tabs, environments, collections; ordering/rename/delete invariants
Editor engine micro-tests (15 test classes).
GapBufferTest— insert/delete at arbitrary offsets, gap recentering, boundary casesDocumentModelTest— line counting, offset-to-line mapping, large document editsEditorDocumentTest— high-level document operations viaEditorDocumentfacadeEditorEngineTest— integrated edit/cursor/undo/redo sequencesFoldingModelTest— fold/unfold, nested regions,visibleLineCountconsistencyDisplayLineMapCapacityTest— prefix-sum correctness, capacity expansionDisplayLineMapFoldPreservationTest— fold-state preservation after reflowCursorStateTest— cursor clamping, word-boundary navigationSelectionModelTest— extend/collapse, word/line select edge casesLineIndexTest— line start/end lookup, newline scanning performanceLanguageModeTest— mode detection, auto-detection from content hintsJsonModeTest— JSON tokenizer correctness on valid/invalid inputJavaScriptModeTest— JS token classification and formatter regression coverage (blocks, comments, strings,for(...)headers)XmlHtmlModeTest— tag, attribute, and CDATA tokenizationPerformanceBenchmarkTest— lexer throughput and display-line rebuild timing
Editor renderer/ViewModel logic and regression tests.
DiagnosticsAndFoldUpdateTest— diagnostic overlay rendering, fold version consistencyEditorViewModelFixTest— ViewModel command sequencing, state emission correctnessPerformanceIssueReproTest— regression guards for previously found performance problems
Cross-platform shared UI behavior (16 test classes).
EditorArchitectureTest— architectural invariants: clean layer separation, no illegal cross-layer depsEditorEngineIntegrationTest— integrated editor operations through the shared APIEditorQaUnitTest— unit-level QA coverage for editor shared behaviourBodyEditorStateTest— body editor tab state: switching, reset, content preservationCodeFoldingTest— brace-based, tag-based, and comment-based fold region detectionSyntaxHighlighterTest— JSON/XML/HTML/GraphQL/JS token colorizationLargeDocumentHighlightingTest— highlighting performance on large payloadsIssueFixTest— regression guards for tracked UI-shared bugsPreReleaseQaTest— pre-release sanity checks for the shared layerRequestExecutorLogResolutionTest— variable resolution in log/request-executor callsPostmanImporterTest— Postman v2/v2.1 collection and environment import correctnessImportExportFormDataTest— form-data field serialization round-tripAppStateBehaviorTest— app state transitions, active-tab tracking, collection mutationsStreamTabStateTest— livestreamChunks/liveStreamTextassembly on the request tabFirstLaunchStateTest— first-launch default state, initial tab creationI18nCompletenessTest— all string keys present in every supported localeI18nProviderTest— locale switching, fallback behavior, pluralization
Compose Desktop UI automation, regression, integration, and persistence tests (50+ test classes).
Shell and tab management:
DesktopShellUiTest— layout panels, header/sidebar/main panel visibility, label correctnessTabManagementUiTest— tab open/close/reorder, tab overflow handlingFirstLaunchUiTest— first-launch onboarding state, empty-state rendering
Request flow and integration:
integration/RequestFlowsIntegrationTest— full send/receive cycles (GET, POST, auth, variables)integration/SettingsImpactIntegrationTest— setting changes propagate to request behaviorintegration/RequestSettingsPersistenceWorkflowIntegrationTest— settings survive save+reloadintegration/HistorySidebarSyncIntegrationTest— history list stays in sync after requestsintegration/CopyCommandIntegrationTest— "Copy as cURL / Kotlin / JS" output correctness
Settings and environments:
SettingsDialogUiTest— settings dialog open/close, field mutation, saveEnvironmentEditorUiTest— environment creation/editing, active-env switchingGlobalVariablesUiTest— global variable add/edit/delete, popup interactionsVariablePopupTest— variable popup positioning, keyboard navigationcomponents/VariablePopupContractsTest— popup contract: trigger, select, dismisscomponents/VariableHighlightTest—{{var}}highlight rendering in URL and body editorscomponents/UrlParamSyncTest— URL query param ↔ params table bi-directional sync
Response and body:
ResponseBodyUiTest— response body rendering, raw/pretty/tree tabs, syntax highlightingBodyTableUxTest— key/value body table UX: add/edit/delete/enable
Import and export:
ImportExportUiTest— Postman collection import/export round-trip via UIpersistence/PostmanImportIntegrationTest— Postman import against sample collectionspersistence/PostmanImportSapBydFixtureTest— SAP ByDesign fixture import correctnesspersistence/ImportExportFixturesIntegrationTest— fixture-based import/export paritypersistence/ImportExportRepositoryTest— repository-level import/export operations
Editor-specific UI tests:
EditorQaUiTest— editor component smoke tests at the desktop levelEditorInteractionBugTest— regression guards for tracked editor interaction bugsEditorInputCorrectnessTest— typed input, paste, backspace correctnessEditorLargePasteScrollUiTest— scroll position after large-paste operationsEditorScrollAndSelectionBugTest— scroll/selection consistency after editsEditorScrollKeyClickBackspaceUndoTest— compound keyboard+click+undo sequencesEditorConstraintSelectionContextMenuTest— context-menu on constrained selectionsEditorV2RegressionTest— V2 editor architecture regression suiteEditorNoWrapRegressionTest— no-wrap mode invariantsEditorKnownIssuesBugTest— known-issue guards preventing regressionsGutterLayoutStabilityTest— gutter width stability across content/fold changesLargeTextEditorUiTest— large document load/render, no jankLargePayloadSaveUiTest— large body save + reload correctnessSliderResizeTest— panel-resize slider behavior
History and toolbar:
HistoryValidationUiTest— history list content, ordering, and badge countsToolbarTooltipUiTest— tooltip text accuracy for toolbar buttonsNewFeaturesUiTest— UI presence checks for newly shipped features
Regression and QA:
UiRegressionFixTest— general UI regression suiteArchitecturalFixesUiTest— verifies architectural changes didn't break UI contractsQaFixesUiTest— QA-driven regression fixes verificationQaFixesStateTest— state-level regression checks for QA-found issuesstate/AppStateCollectionTest— app state collection mutation correctness
Network and persistence:
network/NetworkClientFactoryTest— desktop-side network client factory wiringpersistence/SettingsRepositoryTest— settings persistence read/writepersistence/TabsRepositoryTest— tab state persistence and restorepersistence/WorkspaceRepositoryTest— workspace-level persistence operationscomponents/SidebarCollectionHelpersTest— sidebar collection helper contractcomponents/SidebarPerformanceTest— sidebar render performance under large collections
Platform:
ui/shared/platform/PlatformStorageTest— platform storage abstraction
JVM integration and E2E tests against the running sample-server.
ApiClientE2ETest— all HTTP methods, body types (JSON, form-data, urlencoded, raw, binary), auth (Basic, Bearer, API Key), dynamic variables, timing metrics, retryNetworkClientWsAndMultipartE2ETest— WebSocket connect/send/receive/disconnect; multipart uploadSampleCollectionE2ETest— scripted collection run against the sample collection fixtureLlmApiE2ETest— OpenAI-compatible chat, SSE/NDJSON assembly, embeddings, tools, JSON mode, error statuses, visibledemo=truestreamSseApiE2ETest— genericGET/POST /sse(text/event-stream), finite ping events, POST body echo,?count=McpHttpE2ETest— MCP Streamable HTTP handshake, tools, resources, prompts, subscribe notifications, Bearer+API key auth, variable interpolation, OAuth Bearer, GET SSE notificationsScriptingDocsIntegrationTest— scripting doc examples execute correctly end-to-endWebSocketE2ETest— WebSocket lifecycle: connect, send, receive, close, reconnect
GET /GET/POST/PUT/PATCH/DELETE/OPTIONS/HEAD /api/users(+/{id}where applicable)GET /api/searchGET /api/echo-headersPOST /api/jsonPOST /api/graphqlPOST /api/rawPOST /api/form-dataPOST /api/urlencodedPOST /api/uploadGET /api/auth/basicGET /api/auth/bearerGET /api/auth/apikeyGET /api/time,GET /api/timestampGET /api/protectedGET /api/cookiesGET /api/redirect,GET /api/finalGET /api/error/{code}GET /api/slowGET /status/200,GET /status/201GET /json/user,GET /json/array,GET /json/objectGET /headers,GET /cookies,GET /response-time,GET /string-bodyPOST /echo-body,POST /api/token,POST /api/validate,GET /api/echo-fullGET /v1/modelsPOST /v1/chat/completions(?demo=true,?chunkMs=,?fail=429|500,?earlyClose=true)POST /v1/chat/ndjsonPOST /v1/embeddingsGET /v1/chat/slow?ms=<delay>GET /sse(?count=,?delayMs=)POST /sse(echoes a body snippet as the last event)WS /ws
Simulation parameters used by current endpoints:
GET /api/slow?ms=<delay>GET /response-time?ms=<delay>
./gradlew :core-network:allTests
./gradlew :core-storage:allTests
./gradlew :core-model:allTests
./gradlew :core-scripting:allTests
./gradlew :editor-core:desktopTest
./gradlew :editor-ui:allTests
./gradlew :ui-shared:desktopTest
./gradlew :qa-tests:jvmTest
./gradlew :ui-desktop:desktopTestRun the full validation bundle:
./gradlew :qa-tests:jvmTest :core-storage:allTests :ui-desktop:desktopTestImplemented and tested:
- HTTP methods:
GET,POST,PUT,PATCH,DELETE,OPTIONS,HEAD - Auth: Basic, Bearer, API Key
- Variables: URL, headers, body, auth token interpolation (
{{var}}); 4-level scope precedence - Body types covered in current suites:
- JSON
- x-www-form-urlencoded
- Raw text
- GraphQL
- Form-data and binary upload flows
- Retry behavior and server error handling
- Scripting runtime (pre-request scripts, post-response tests, assertions, variable scopes)
- WebSocket connect/send/receive/disconnect
- Storage behavior via in-memory repository implementations
- Settings dialog open/close, field mutation, and persistence across save/reload
- Environment editor: create, edit, variable binding, active-environment switching
- Global variables: add/edit/delete/popup UI
- Response viewer: raw, pretty, and tree tabs; syntax highlighting
- Import/Export: Postman v2/v2.1 collection and environment import/export; SAP ByDesign fixture
- Variable popup: trigger, keyboard navigation, dismiss,
{{var}}highlight in editors - URL ↔ query-params table bi-directional sync
- History sidebar: list content, ordering, badge counts, sync after requests
- Copy command formats: cURL, Kotlin, JavaScript — output correctness
- Body table UX: key/value row add/edit/delete/enable
- Desktop shell rendering (layout panels, header/sidebar/main, labels)
- Tab management: open/close/reorder, overflow handling, persistence
- App state transitions: tab activation, collection mutations, first-launch defaults
- i18n completeness: all string keys present in every supported locale; locale switching
- Syntax highlighting: JSON, XML/HTML, GraphQL, JavaScript token colorization
- Code folding: brace-based, tag-based, comment-based region detection and fold state management
- Editor operations: GapBuffer insert/delete, DocumentModel line mapping, cursor/selection, undo/redo, display-line reflow, folding
- Editor ViewModel: command sequencing, state emission, diagnostic overlays
- Editor UI regressions: large-paste scroll, no-wrap mode, gutter stability, known-issue guards
- Network client factory wiring (desktop-side initialization)
- Sidebar collection helpers and performance under large collections
- Platform storage abstraction
Quality-gate tests used by release packaging:
:editor-ui:allTests:ui-shared:desktopTest:ui-web:wasmJsTest
Partially covered or still evolving areas:
- Advanced collection drag-and-drop edge cases under high node counts
- Deeper web UI interaction parity (desktop-level interaction coverage is stronger)
- Collection runner reporting UI depth
- OpenAPI/curl import and code-generation feature surface
- Persistent SQLDelight/SQLite restart durability
- OAuth2 and JWT auth scheme E2E coverage
GitHub Actions workflow: .github/workflows/release.yml
- Push to
main: quality gate, then artifact build validation across macOS, Ubuntu, and Windows. - Tag
v*: quality gate, then artifact build + GitHub Release publication.