You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A grab-bag of test coverage gaps identified while auditing the networkmock family, independent of the OpenAPI migration (tracked in the epic, #72). Each bullet below is independently addressable — feel free to split into separate PRs (or separate issues) rather than doing all of them at once; this issue exists to record them so they aren't lost, not to mandate one big PR.
Gaps
Delay precedence — Operation.delayMs ?: group.defaultDelayMs resolution (devview-networkmock-core/src/commonMain/kotlin/com/worldline/devview/networkmock/core/repository/MockConfigRepository.kt:366) has no dedicated test asserting the precedence order (operation-level delay wins, falls back to group default, falls back to no delay).
Ambiguous-match precedence — if two groups' configured hosts both match an incoming request's hostname, findMatchingMock (repository/MockConfigRepository.kt:304-374) returns whichever is declared first, with no test pinning this down. (If Feature/feature flip #2 has landed by the time this is picked up, this is likely already covered there — check before duplicating.)
NetworkMockEndpointScreen has zero tests — no coverage exists for the sticky-header status-family grouping (devview-networkmock/src/commonMain/kotlin/com/worldline/devview/networkmock/NetworkMockEndpointScreen.kt:119-121, :234-278), the "No mock" row (:208-225), or response-row selection (:244-262).
Preview/diff bottom sheet has zero tests — NetworkMockEndpointPreviewBottomSheet.kt and the diff rendering pipeline it drives (utils/DiffLineUtils.kt) have no test coverage, despite PreviewSheetState itself (the state machine) being tested in PreviewSheetStateTest.kt.
No test loads the real sample mocks.json (or, post-migration, the real sample spec) — every existing config-loading test uses hand-built fixture data (MockTestData.kt), so the shipped sample can silently drift out of sync with what the parser actually accepts. Add a test that loads sample/network/src/commonMain/composeResources/files/networkmocks/mocks.json (or its post-migration equivalent) through the real repository and asserts it parses successfully.
queryParams/queryParameters matching through the Ktor plugin — RequestMatcherTest.kt covers matchesQueryParams in isolation thoroughly, but NetworkMockPluginTest.kt (devview-networkmock-ktor/src/androidHostTest/...) has no end-to-end test exercising query-param matching through the actual plugin interception path.
No assertion on response headers/content-type in NetworkMockPluginTest.kt — existing tests check status and body but not that Content-Type: application/json is actually present on the synthetic response.
Acceptance criteria
Each gap above has at least one new test closing it, or is explicitly noted as already covered by a different in-flight PR (to avoid duplicate work — check the epic Epic: OpenAPI migration and environment removal (0.2.0) #72 for what's landed).
New tests follow this repo's existing conventions: commonTest + JVM for repository/matcher logic (see RequestMatcherTest.kt, MockConfigRepositoryTest.kt for style), androidDeviceTest + fakes for Compose UI (see EndpointCardTest.kt for style), androidHostTest + MockK for the Ktor plugin (see NetworkMockPluginTest.kt for style).
Summary
A grab-bag of test coverage gaps identified while auditing the networkmock family, independent of the OpenAPI migration (tracked in the epic, #72). Each bullet below is independently addressable — feel free to split into separate PRs (or separate issues) rather than doing all of them at once; this issue exists to record them so they aren't lost, not to mandate one big PR.
Gaps
Operation.delayMs ?: group.defaultDelayMsresolution (devview-networkmock-core/src/commonMain/kotlin/com/worldline/devview/networkmock/core/repository/MockConfigRepository.kt:366) has no dedicated test asserting the precedence order (operation-level delay wins, falls back to group default, falls back to no delay).findMatchingMock(repository/MockConfigRepository.kt:304-374) returns whichever is declared first, with no test pinning this down. (If Feature/feature flip #2 has landed by the time this is picked up, this is likely already covered there — check before duplicating.)NetworkMockEndpointScreenhas zero tests — no coverage exists for the sticky-header status-family grouping (devview-networkmock/src/commonMain/kotlin/com/worldline/devview/networkmock/NetworkMockEndpointScreen.kt:119-121,:234-278), the "No mock" row (:208-225), or response-row selection (:244-262).NetworkMockEndpointPreviewBottomSheet.ktand the diff rendering pipeline it drives (utils/DiffLineUtils.kt) have no test coverage, despitePreviewSheetStateitself (the state machine) being tested inPreviewSheetStateTest.kt.mocks.json(or, post-migration, the real sample spec) — every existing config-loading test uses hand-built fixture data (MockTestData.kt), so the shipped sample can silently drift out of sync with what the parser actually accepts. Add a test that loadssample/network/src/commonMain/composeResources/files/networkmocks/mocks.json(or its post-migration equivalent) through the real repository and asserts it parses successfully.queryParams/queryParametersmatching through the Ktor plugin —RequestMatcherTest.ktcoversmatchesQueryParamsin isolation thoroughly, butNetworkMockPluginTest.kt(devview-networkmock-ktor/src/androidHostTest/...) has no end-to-end test exercising query-param matching through the actual plugin interception path.NetworkMockPluginTest.kt— existing tests check status and body but not thatContent-Type: application/jsonis actually present on the synthetic response.Acceptance criteria
commonTest+ JVM for repository/matcher logic (seeRequestMatcherTest.kt,MockConfigRepositoryTest.ktfor style),androidDeviceTest+ fakes for Compose UI (seeEndpointCardTest.ktfor style),androidHostTest+ MockK for the Ktor plugin (seeNetworkMockPluginTest.ktfor style).Files likely touched
devview-networkmock-core/src/commonTest/kotlin/com/worldline/devview/networkmock/core/repository/MockConfigRepositoryTest.ktdevview-networkmock/src/androidDeviceTest/kotlin/com/worldline/devview/networkmock/...(new test files for the endpoint screen and preview sheet)devview-networkmock-ktor/src/androidHostTest/kotlin/com/worldline/devview/networkmock/ktor/plugin/NetworkMockPluginTest.kt