Skip to content

add support for Map argument#69

Open
gkorland wants to merge 7 commits into
masterfrom
map
Open

add support for Map argument#69
gkorland wants to merge 7 commits into
masterfrom
map

Conversation

@gkorland

@gkorland gkorland commented Sep 16, 2024

Copy link
Copy Markdown
Contributor

fix #68

Summary by CodeRabbit

  • New Features

    • Enhanced string conversion to support map objects for better representation of complex data.
  • Tests

    • Added tests to verify creation and retrieval of graph nodes with map properties, improving test coverage.

@coderabbitai

coderabbitai Bot commented Sep 16, 2024

Copy link
Copy Markdown

Warning

Rate limit exceeded

@gkorland has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 11 minutes and 8 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 71bcf50 and 4a9572d.

📒 Files selected for processing (2)
  • src/main/java/com/falkordb/impl/Utils.java (1 hunks)
  • src/test/java/com/falkordb/GraphAPITest.java (1 hunks)

"""

Walkthrough

The changes made in this pull request enhance the valueToString method in the Utils class to support the conversion of Map objects to string representations. The method now checks for Map instances, iterates over their entries, and constructs a string in the format key:value, removing any trailing commas. Additionally, a new test method testMapSupport has been added to the GraphAPITest class to validate this functionality by creating a node with map properties.

Changes

Files Change Summary
src/main/java/com/falkordb/impl/Utils.java Enhanced valueToString method to include support for converting Map objects to string format.
src/test/java/com/falkordb/GraphAPITest.java Added testMapSupport method to validate map handling in node creation tests.

Assessment against linked issues

Objective Addressed Explanation
Add support for Map in prepareQuery (#68)

🐰 In the land of code where rabbits play,
A map now sings in a string ballet.
With keys and values dancing in line,
Our valueToString shines, oh so fine!
Hops of joy for each data type,
In curly braces, they now delight! 🐇✨
"""

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch map

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov

codecov Bot commented Sep 16, 2024

Copy link
Copy Markdown

Codecov Report

Attention: Patch coverage is 0% with 10 lines in your changes missing coverage. Please review.

Project coverage is 0.00%. Comparing base (9f2436e) to head (5960486).

Files with missing lines Patch % Lines
src/main/java/com/falkordb/impl/Utils.java 0.00% 10 Missing ⚠️
Additional details and impacted files
@@          Coverage Diff           @@
##           master     #69   +/-   ##
======================================
  Coverage    0.00%   0.00%           
======================================
  Files          25      25           
  Lines         712     722   +10     
  Branches       64      67    +3     
======================================
- Misses        712     722   +10     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Outside diff range and nitpick comments (1)
src/main/java/com/falkordb/impl/Utils.java (1)

88-101: Add tests to improve code coverage.

The static analysis tool has flagged that the added lines are not covered by tests. To ensure the reliability and maintainability of the code, it's important to have adequate test coverage.

Do you want me to generate test cases for the added functionality or open a GitHub issue to track this task?

Tools
GitHub Check: codecov/patch

[warning] 90-91: src/main/java/com/falkordb/impl/Utils.java#L90-L91
Added lines #L90 - L91 were not covered by tests


[warning] 93-94: src/main/java/com/falkordb/impl/Utils.java#L93-L94
Added lines #L93 - L94 were not covered by tests


[warning] 97-97: src/main/java/com/falkordb/impl/Utils.java#L97
Added line #L97 was not covered by tests


[warning] 99-100: src/main/java/com/falkordb/impl/Utils.java#L99-L100
Added lines #L99 - L100 were not covered by tests

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between b3efd1d and 78922bc.

Files selected for processing (1)
  • src/main/java/com/falkordb/impl/Utils.java (1 hunks)
Additional context used
GitHub Check: codecov/patch
src/main/java/com/falkordb/impl/Utils.java

[warning] 90-91: src/main/java/com/falkordb/impl/Utils.java#L90-L91
Added lines #L90 - L91 were not covered by tests


[warning] 93-94: src/main/java/com/falkordb/impl/Utils.java#L93-L94
Added lines #L93 - L94 were not covered by tests


[warning] 97-97: src/main/java/com/falkordb/impl/Utils.java#L97
Added line #L97 was not covered by tests


[warning] 99-100: src/main/java/com/falkordb/impl/Utils.java#L99-L100
Added lines #L99 - L100 were not covered by tests

Additional comments not posted (1)
src/main/java/com/falkordb/impl/Utils.java (1)

88-101: LGTM! The code changes align with the PR objectives.

The added support for converting Map objects to string representations in the valueToString method addresses the limitation mentioned in the linked issue #68. The implementation correctly handles the recursive conversion of map entries and formats the resulting string appropriately.

Tools
GitHub Check: codecov/patch

[warning] 90-91: src/main/java/com/falkordb/impl/Utils.java#L90-L91
Added lines #L90 - L91 were not covered by tests


[warning] 93-94: src/main/java/com/falkordb/impl/Utils.java#L93-L94
Added lines #L93 - L94 were not covered by tests


[warning] 97-97: src/main/java/com/falkordb/impl/Utils.java#L97
Added line #L97 was not covered by tests


[warning] 99-100: src/main/java/com/falkordb/impl/Utils.java#L99-L100
Added lines #L99 - L100 were not covered by tests

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
src/main/java/com/falkordb/impl/Utils.java (1)

87-101: Consider quoting map keys for better consistency and safer Cypher queries.
Currently, map keys are converted to strings without quoting, which may lead to parsing issues if a JSON-like value contains spaces or punctuation. Also, if the key is of a different type, calling toString() might produce unexpected or ambiguous results. To improve safety and consistency (mirroring how string values are quoted), consider wrapping keys with quotes as well.

For example:

 for (Map.Entry<Object, Object> entry : map.entrySet()) {
-    sb.append(entry.getKey()).append(':').append(valueToString(entry.getValue())).append(",");
+    String keyStr = (entry.getKey() instanceof String)
+        ? quoteString((String) entry.getKey())
+        : entry.getKey().toString();
+    sb.append(keyStr)
+      .append(':')
+      .append(valueToString(entry.getValue()))
+      .append(",");
 }
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 507e3d9 and 8e5bd34.

📒 Files selected for processing (2)
  • src/main/java/com/falkordb/impl/Utils.java (1 hunks)
  • src/test/java/com/falkordb/GraphAPITest.java (1 hunks)
🔇 Additional comments (1)
src/test/java/com/falkordb/GraphAPITest.java (1)

698-719: Well-structured test for validating map support.
The new test confirms that a node is created correctly with map properties and retrieved as expected. Consider adding an additional test for nested maps or edge cases (e.g., empty maps, null values in the map) to further increase coverage.

@gkorland gkorland requested a review from barakb December 25, 2024 18:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support for Map in prepareQuery

2 participants