fix: filter empty suite titles from Cucumber URI path parts#243
Merged
Conversation
When Cucumber tests are run with Gradle using file-system feature paths, the feature URI has the form file:///absolute/path/features/file.feature. Splitting this on "/" produces empty strings at indices 1 and 2 (from the triple slash), which are sent as SuiteData entries with blank titles. The Qase API rejects these with HTTP 422: "relations.suite.data.1.title field is required". Filter out null and blank path segments in buildCucumberRelations() before creating SuiteData entries. This affects all Cucumber reporter versions (v3–v7). Also bump version to 4.1.51 and update all example projects.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
file:///URI (common with Gradle)/produced empty path segments sent as suite entries with blank titles — the API rejected them with"relations.suite.data.1.title field is required"buildCucumberRelations()before building suite relationsRoot Cause
V7TestCaseAdapter.getUriPathParts()callstestCase.getUri().toString().split("/"). For afile:///path/to/features/file.featureURI,split("/")produces["file:", "", "", "path", ...]— empty strings at indices 1 and 2 from the triple slash. These becomeSuiteDataobjects with emptytitle, which the Qase API rejects (422).Test plan
fromCucumber_fileUriPathPartsWithEmptySegments_filtersOutBlanksthat reproduces the exact scenarioTestResultBuilderTesttests pass