-
Notifications
You must be signed in to change notification settings - Fork 93
Merge v0.1.5 into master - Coverage improvements and fixes #45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
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
… can lookup value
IMO, when the field is missing in the slice, instead of erring out, ignoring that and continuing onto the next index/element is more relevant I feel.
go.mod: Rename go module to github.com/dolthub/jsonpath.
additionally, converts `fmt.Print` to `t.Log` and improves an error message
- Add go.mod for modules support - Fix t.Fatal to t.Fatalf in tests
- Support string keys in map[interface{}]interface{} type
- Continue filtering when field is missing instead of erroring
- Add nil check after idx and range operations
- Add recursive operation type - Implement getAllDescendants() function - Add test cases for $..author and $..price queries Note: AGENTS.md excluded from this merge
- Fix t.Fatal to t.Fatalf for proper formatting - Fix $..* tokenization to not produce redundant * token
- Add quoted key support: $.store.book[0].price - Fix error handling - Use standard library instead of external dependencies Note: Removed gopkg.in/src-d/go-errors.v1 dependency
- Move Test_jsonpath_tokenize and token_cases to dedicated file - No functional changes, pure refactoring for better code organization
- Move Test_jsonpath_parse_token and parse_token_cases to dedicated file - Remove unused reflect import from jsonpath_test.go - No functional changes, pure refactoring
- Move Test_jsonpath_get_key, get_idx, get_range, get_scan to dedicated file - No functional changes, pure refactoring for better code organization
- Move Test_jsonpath_types_eval, Test_jsonpath_cmp_any, tcase_cmp_any to dedicated file - Remove unused go/token and go/types imports from jsonpath_test.go - No functional changes, pure refactoring
- Move Test_jsonpath_null_in_the_middle, Test_jsonpath_num_cmp, TestReg, TestRegOp, tcases_reg_op to dedicated file - Remove unused regexp import from jsonpath_test.go - No functional changes, pure refactoring
- Move Test_jsonpath_rootnode_is_array, rootnode_is_array_range, rootnode_is_nested_array, rootnode_is_nested_array_range, TestRecursiveDescent to dedicated file - No functional changes, pure refactoring
- Add Test_jsonpath_length_function_coverage with tests for: - length() with @.path argument - length() with $.path argument - get_length with nil, array, string, map, []int, unsupported types - eval_length edge cases with wrong argument count - Add coverage.out to .gitignore - Coverage improved from 70.7% to 72.8%
- Add Test_MustCompile for MustCompile, String, and Lookup methods - Add Test_jsonpath_eval_match_coverage for nil values and edge cases - Add Test_jsonpath_eval_search_coverage for nil values and edge cases - Add Test_jsonpath_eval_count_coverage for error cases - Add Test_jsonpath_eval_reg_filter_coverage for map filtering - Add Test_jsonpath_get_scan_coverage for nested and empty maps - Add Test_parse_filter_v1_skipped for abandoned v1 code - Coverage improved from 72.8% to 76.1%
- Change * wildcard from X to Y (partially supported) - Change .. deep scan from X to Y (supported) - Fix slice example [0:2] to show correct result [8.95, 12.99] - Fix typo in [:] example (8.9.5 → 8.95, 8.9.9 → 8.99) - Add RFC 9535 functions to Operators table (length, count, match, search) - Add RFC 9535 function notes at bottom - Add examples for $..author and $.store.book[*].price
- Capitalize example code: and given these example data - Wrap jsonpath expressions containing < and > in backticks - Wrap ^pattern$ in backticks for proper markdown rendering - Clean up table formatting
Added comprehensive coverage tests: - Test_jsonpath_eval_reg_filter_non_string: test nil pattern and non-string types - Test_jsonpath_get_lp_v_coverage: test function call, @/$, literal paths - Test_jsonpath_eval_filter_func_coverage: test count, length, invalid functions - Test_jsonpath_eval_func_coverage: test unsupported function - Test_jsonpath_isNumber_coverage: test various numeric types - Test_jsonpath_parse_filter_coverage: test comparison, exists, regex filters - Test_jsonpath_get_range_coverage: test negative indices, nil bounds - Test_jsonpath_Compile_coverage: test empty, invalid, edge cases - Test_jsonpath_Lookup_coverage: test multi-index, range, filter - Test_jsonpath_getAllDescendants_coverage: test nested structures - Test_jsonpath_filter_get_from_explicit_path_coverage: test nested paths, indices - Test_jsonpath_get_key_coverage: test not found, non-map types - Test_jsonpath_get_idx_coverage: test out of bounds, empty array - Test_jsonpath_cmp_any_coverage: test various operators - Test_jsonpath_eval_filter_coverage: test exists check, function results - Test_jsonpath_get_filtered_coverage: test map/slice with filters - Test_jsonpath_get_scan_coverage: test nil, non-map types Coverage: 77.7% → 81.9%
- Comment out parse_filter_v1 abandoned code - Add comprehensive coverage tests for edge cases - Functions improved: tokenize, get_range, get_scan, eval_count
Split into: - jsonpath_coverage_basic_test.go (1040 lines, 27 tests) - jsonpath_coverage_comprehensive_test.go (789 lines, 11 tests) - jsonpath_coverage_edge_test.go (700 lines, 2 tests) - jsonpath_coverage_final_test.go (548 lines, 1 test) Coverage maintained at 89%
- Remove corrupted duplicate code in get_filtered_or test - Fix get_filtered_match test to use correct pattern syntax - Fix get_filtered_search test to use correct pattern syntax The match() and search() functions expect quoted string patterns, not /pattern/ regex syntax. Updated tests to use 'pattern' format.
- Run tests on Go 1.20, 1.21, 1.22, 1.23 - Upload coverage to Codecov - Run go vet and format checks - Run benchmarks
- Replace duplicate-prone jsonpath_test.go with clean v0.1.5 version - Fix ci.yml: use staticcheck via go install instead of non-existent action
- Fix go.mod to use go 1.20 (minimum tested version) - Remove benchmark job (requires special setup) - Simplify staticcheck installation
- Test with Go 1.15, 1.20, 1.21, 1.22, 1.23 - Set go.mod to 1.15 (minimum supported version)
- Only check .go files with gofmt, not go.mod - Use gofmt -l for listing and -d for diff separately
Staticcheck is too strict for this legacy project with many stylistic warnings. Keeping go vet and gofmt for basic checks.
Only check *.go files in current directory
After go mod tidy, go.sum is empty. These dependencies were not actually used.
oliveagle
commented
Jan 24, 2026
Owner
Author
oliveagle
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good to go
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
Merge v0.1.5 branch into master with coverage improvements and test fixes.
Changes
Testing
Files Added