Skip to content
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

test: add tests for most used admin transactions #2473

Merged
merged 18 commits into from
Jul 23, 2024
Merged

Conversation

kingpinXD
Copy link
Contributor

@kingpinXD kingpinXD commented Jul 12, 2024

Description

Closes #2448

How Has This Been Tested?

  • Tested CCTX in localnet
  • Tested in development environment
  • Go unit tests
  • Go integration tests
  • Tested via GitHub Actions

Summary by CodeRabbit

  • New Features

    • Implemented new critical admin transaction tests for enhanced blockchain system management.
    • Added Inbound Tracker query support for tracking Ethereum and Bitcoin transactions.
  • Improvements

    • Updated admin-related test constants for better clarity and organization.
    • Introduced methods for block height management to improve testing capabilities.
    • Added a command for displaying inbound tracker details with improved error handling.

Copy link
Contributor

coderabbitai bot commented Jul 12, 2024

Walkthrough

The changes enhance the blockchain testing framework by introducing helper functions for managing block waits, updating constants for admin operations, and implementing tests for critical admin transactions. Additionally, a new inbound tracker query method in the keeper improves overall functionality and test coverage of the blockchain system.

Changes

File Change Summary
e2e/e2etests/helpers.go Added import statements and new functions for waiting on blockchain blocks.
e2e/e2etests/e2etests.go Updated constants for admin functionalities and added a new constant for critical admin transactions.
e2e/e2etests/test_admin_transactions.go Introduced tests for validating critical admin transactions.
x/crosschain/keeper/grpc_query_inbound_tracker.go Added a method to query inbound trackers based on chain ID and transaction hash.
e2e/runner/zeta.go Implemented methods for block height management.
x/crosschain/client/cli/query_inbound_tracker.go Introduced a function for displaying inbound tracker details with error handling.

Sequence Diagram(s)

sequenceDiagram
    participant Tester
    participant E2ERunner
    participant Blockchain
    participant Keeper

    Tester->>E2ERunner: Initiate critical admin transaction tests
    E2ERunner->>Blockchain: Execute transaction
    Blockchain->>E2ERunner: Confirm transaction execution
    Tester->>E2ERunner: Wait for specific block height
    E2ERunner->>Blockchain: Query block height
    Blockchain-->>E2ERunner: Return block height
    E2ERunner->>Tester: Continue testing
    Tester->>Keeper: Query inbound tracker
    Keeper->>Tester: Return tracker details
Loading

Assessment against linked issues

Objective Addressed Explanation
Add new tests under the admin thread to test the most critical admin transactions (#2448)
Ensure coverage for critical messages like MsgUpdateChainParams, MsgRefundAbortedCCTX, etc. (#2448)

Poem

In the land of code, where data flows,
New tests arise as blockchain grows.
Admin tasks critically checked,
Ensuring systems are all decked.
With blocks awaited, trackers in line,
Our blockchain shines, oh so fine.
🐇✨


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@gartnera gartnera added the ADMIN_TESTS Run make start-admin-tests label Jul 12, 2024
@kingpinXD kingpinXD changed the title test : add tests for most used admin transactions test: add tests for most used admin transactions Jul 12, 2024
Copy link

codecov bot commented Jul 14, 2024

Codecov Report

Attention: Patch coverage is 12.94118% with 74 lines in your changes missing coverage. Please review.

Project coverage is 46.55%. Comparing base (8e1cfa7) to head (07ef2e8).
Report is 12 commits behind head on develop.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop    #2473      +/-   ##
===========================================
- Coverage    46.88%   46.55%   -0.33%     
===========================================
  Files          445      460      +15     
  Lines        29636    30675    +1039     
===========================================
+ Hits         13894    14281     +387     
- Misses       14936    15547     +611     
- Partials       806      847      +41     
Files Coverage Δ
x/crosschain/keeper/grpc_query_inbound_tracker.go 84.00% <100.00%> (+12.57%) ⬆️
e2e/runner/zeta.go 0.00% <0.00%> (ø)
e2e/e2etests/test_admin_transactions.go 0.00% <0.00%> (ø)

... and 42 files with indirect coverage changes

@kingpinXD kingpinXD marked this pull request as ready for review July 17, 2024 19:39
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 6

Outside diff range, codebase verification and nitpick comments (1)
x/crosschain/client/cli/query.go (1)

39-39: Approve the addition of CmdShowInboundTracker() to the command list.

The addition of CmdShowInboundTracker() to GetQueryCmd() is well-integrated within the existing command structure.

However, consider adding a comment above CmdShowInboundTracker() to briefly describe its purpose, enhancing code readability.

+		// CmdShowInboundTracker displays inbound tracker details
		CmdShowInboundTracker(),
Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 8e1cfa7 and 8d6265f.

Files ignored due to path filters (2)
  • x/crosschain/types/query.pb.go is excluded by !**/*.pb.go, !**/*.pb.go
  • x/crosschain/types/query.pb.gw.go is excluded by !**/*.pb.gw.go, !**/*.pb.gw.go
Files selected for processing (14)
  • changelog.md (1 hunks)
  • cmd/zetae2e/local/local.go (1 hunks)
  • docs/cli/zetacored/zetacored_query_crosschain.md (1 hunks)
  • docs/cli/zetacored/zetacored_query_crosschain_show-inbound-tracker.md (1 hunks)
  • docs/openapi/openapi.swagger.yaml (2 hunks)
  • e2e/e2etests/e2etests.go (2 hunks)
  • e2e/e2etests/helpers.go (2 hunks)
  • e2e/e2etests/test_admin_transactions.go (1 hunks)
  • proto/zetachain/zetacore/crosschain/query.proto (2 hunks)
  • typescript/zetachain/zetacore/crosschain/query_pb.d.ts (1 hunks)
  • x/crosschain/client/cli/query.go (1 hunks)
  • x/crosschain/client/cli/query_inbound_tracker.go (1 hunks)
  • x/crosschain/keeper/grpc_query_inbound_tracker.go (1 hunks)
  • x/crosschain/keeper/grpc_query_inbound_tracker_test.go (2 hunks)
Additional context used
Path-based instructions (9)
x/crosschain/client/cli/query.go (1)

Pattern **/*.go: Review the Go code, point out issues relative to principles of clean code, expressiveness, and performance.

x/crosschain/keeper/grpc_query_inbound_tracker.go (1)

Pattern **/*.go: Review the Go code, point out issues relative to principles of clean code, expressiveness, and performance.

x/crosschain/keeper/grpc_query_inbound_tracker_test.go (1)

Pattern **/*.go: Review the Go code, point out issues relative to principles of clean code, expressiveness, and performance.

x/crosschain/client/cli/query_inbound_tracker.go (1)

Pattern **/*.go: Review the Go code, point out issues relative to principles of clean code, expressiveness, and performance.

e2e/e2etests/test_admin_transactions.go (1)

Pattern **/*.go: Review the Go code, point out issues relative to principles of clean code, expressiveness, and performance.

e2e/e2etests/helpers.go (1)

Pattern **/*.go: Review the Go code, point out issues relative to principles of clean code, expressiveness, and performance.

proto/zetachain/zetacore/crosschain/query.proto (1)

Pattern **/*.proto: Review the Protobuf definitions, point out issues relative to compatibility, and expressiveness.

cmd/zetae2e/local/local.go (1)

Pattern **/*.go: Review the Go code, point out issues relative to principles of clean code, expressiveness, and performance.

e2e/e2etests/e2etests.go (1)

Pattern **/*.go: Review the Go code, point out issues relative to principles of clean code, expressiveness, and performance.

Markdownlint
docs/cli/zetacored/zetacored_query_crosschain_show-inbound-tracker.md

9-9: Expected: h2; Actual: h3
Heading levels should only increment by one level at a time

(MD001, heading-increment)


33-33: Column: 62
Hard tabs

(MD010, no-hard-tabs)


5-5: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)


11-11: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)


22-22: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/cli/zetacored/zetacored_query_crosschain.md

43-43: Column: 104
Hard tabs

(MD010, no-hard-tabs)

GitHub Check: codecov/patch
e2e/e2etests/test_admin_transactions.go

[warning] 15-17: e2e/e2etests/test_admin_transactions.go#L15-L17
Added lines #L15 - L17 were not covered by tests


[warning] 20-27: e2e/e2etests/test_admin_transactions.go#L20-L27
Added lines #L20 - L27 were not covered by tests


[warning] 29-30: e2e/e2etests/test_admin_transactions.go#L29-L30
Added lines #L29 - L30 were not covered by tests


[warning] 32-35: e2e/e2etests/test_admin_transactions.go#L32-L35
Added lines #L32 - L35 were not covered by tests


[warning] 37-38: e2e/e2etests/test_admin_transactions.go#L37-L38
Added lines #L37 - L38 were not covered by tests


[warning] 40-40: e2e/e2etests/test_admin_transactions.go#L40
Added line #L40 was not covered by tests


[warning] 42-43: e2e/e2etests/test_admin_transactions.go#L42-L43
Added lines #L42 - L43 were not covered by tests


[warning] 45-45: e2e/e2etests/test_admin_transactions.go#L45
Added line #L45 was not covered by tests


[warning] 48-58: e2e/e2etests/test_admin_transactions.go#L48-L58
Added lines #L48 - L58 were not covered by tests


[warning] 60-65: e2e/e2etests/test_admin_transactions.go#L60-L65
Added lines #L60 - L65 were not covered by tests


[warning] 67-68: e2e/e2etests/test_admin_transactions.go#L67-L68
Added lines #L67 - L68 were not covered by tests


[warning] 70-70: e2e/e2etests/test_admin_transactions.go#L70
Added line #L70 was not covered by tests


[warning] 72-78: e2e/e2etests/test_admin_transactions.go#L72-L78
Added lines #L72 - L78 were not covered by tests


[warning] 80-86: e2e/e2etests/test_admin_transactions.go#L80-L86
Added lines #L80 - L86 were not covered by tests

e2e/e2etests/helpers.go

[warning] 21-24: e2e/e2etests/helpers.go#L21-L24
Added lines #L21 - L24 were not covered by tests


[warning] 26-27: e2e/e2etests/helpers.go#L26-L27
Added lines #L26 - L27 were not covered by tests


[warning] 30-32: e2e/e2etests/helpers.go#L30-L32
Added lines #L30 - L32 were not covered by tests


[warning] 34-37: e2e/e2etests/helpers.go#L34-L37
Added lines #L34 - L37 were not covered by tests


[warning] 39-40: e2e/e2etests/helpers.go#L39-L40
Added lines #L39 - L40 were not covered by tests


[warning] 42-42: e2e/e2etests/helpers.go#L42
Added line #L42 was not covered by tests

Additional comments not posted (11)
x/crosschain/keeper/grpc_query_inbound_tracker_test.go (2)

52-83: Review the new test functions for inbound trackers.

The functions TestKeeper_InboundTracker and its subtests have been added to ensure the correct behavior of the InboundTracker functionality.

  • Correctness: The tests appear to correctly set up the environment and query the InboundTracker. However, ensure that the error messages and conditions tested are accurate and cover all necessary scenarios.
  • Logic: The tests use the chains import to get chainID, which is good for maintaining consistency with the chain configurations.
  • Performance: These are unit tests, so performance is typically not a concern, but ensure that the tests do not introduce unnecessary delays or resource usage.
  • Best Practices: Using subtests (t.Run) is a good practice as it organizes the test cases clearly.

Consider adding more edge cases if necessary to cover all potential scenarios that might affect the InboundTracker functionality.


7-7: Verify the use of the new import.

The import github.com/zeta-chain/zetacore/pkg/chains has been added. Ensure that this package is utilized in the test functions, specifically for accessing chain IDs.

Verification successful

Verified the use of the new import.

The import github.com/zeta-chain/zetacore/pkg/chains is utilized in the file at the following lines:

  • chainID := chains.GoerliLocalnet.ChainId
  • chainID := chains.GoerliLocalnet.ChainId

These usages confirm that the import is necessary and correctly applied.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the use of the `chains` import in the file.

# Test: Search for `chains` usage in the file. Expect: At least one occurrence.
rg --type go 'chains\.' x/crosschain/keeper/grpc_query_inbound_tracker_test.go

Length of output: 166

x/crosschain/client/cli/query_inbound_tracker.go (1)

14-38: Review the new CLI command function CmdShowInboundTracker.

The function CmdShowInboundTracker has been added to facilitate querying inbound trackers via CLI. Here are some observations:

  • Correctness: The function correctly parses chainID and txHash from the command line arguments and uses them to query the inbound tracker.
  • Logic: The function includes error handling for parsing errors and query failures, which is crucial for CLI tools.
  • Syntax: The code is syntactically correct and follows Go conventions.
  • Best Practices: The use of cobra.ExactArgs(2) ensures that the command receives exactly two arguments, which is a good practice for CLI command structure.

Ensure that the error messages are informative and guide the user on what went wrong, especially in parsing inputs.

e2e/e2etests/helpers.go (1)

4-4: Imports: Added fmt and github.com/zeta-chain/zetacore/pkg/retry.

The addition of these imports is justified by their usage in the newly added functions WaitForBlocks and waitForBlock. The fmt package is used for formatting error messages, and the retry package is utilized to handle retry logic in block height fetching.

Also applies to: 17-17

proto/zetachain/zetacore/crosschain/query.proto (2)

48-52: RPC Method InboundTracker: Ensure correct HTTP mapping.

The new RPC method InboundTracker is correctly defined with appropriate HTTP GET mapping. The URL template includes both chain_id and tx_hash which are essential for querying specific inbound tracker records.


393-400: Message Types QueryInboundTrackerRequest and QueryInboundTrackerResponse: Correctly defined.

The new message types are correctly defined with necessary fields. QueryInboundTrackerRequest includes chain_id and tx_hash, and QueryInboundTrackerResponse wraps an InboundTracker. These definitions align with the intended functionality of querying inbound trackers.

cmd/zetae2e/local/local.go (1)

292-292: Integration of TestCriticalAdminTransactionsName: Correctly added.

The new test function TestCriticalAdminTransactionsName has been correctly added to the list of admin tests within the localE2ETest function. This addition aligns with the PR's objective to enhance testing for critical admin transactions.

e2e/e2etests/e2etests.go (1)

97-103: Updated Test Constant Names: Consistency maintained.

The updates to the test constant names maintain consistency and improve descriptiveness. The addition of TestCriticalAdminTransactionsName expands the test coverage for critical admin transactions, aligning with the PR's objectives.

changelog.md (1)

84-84: Changelog entry for adding e2e tests is clear and well-documented.

The entry clearly states the addition of end-to-end tests for critical admin transactions and correctly links to the associated pull request, providing easy access to more detailed information.

typescript/zetachain/zetacore/crosschain/query_pb.d.ts (2)

1218-1244: New class QueryInboundTrackerRequest added

The class QueryInboundTrackerRequest has been correctly declared with appropriate fields and methods for binary and JSON serialization. The use of bigint for chainId and string for txHash is consistent with the types expected for these fields based on the context of blockchain-related transactions. The static methods for serialization and equality checks are standard and correctly implemented.


1246-1268: New class QueryInboundTrackerResponse added

The class QueryInboundTrackerResponse has been added to handle responses for inbound tracker queries. The optional field inboundTracker of type InboundTracker is correctly declared, allowing for the case where a tracker might not be present in the response. This is a common pattern in API design to accommodate responses that may not always have a data object to return. The methods for binary and JSON serialization, as well as the equality check, are correctly implemented.

e2e/e2etests/helpers.go Outdated Show resolved Hide resolved
e2e/e2etests/helpers.go Outdated Show resolved Hide resolved
e2e/e2etests/test_admin_transactions.go Outdated Show resolved Hide resolved
x/crosschain/keeper/grpc_query_inbound_tracker.go Outdated Show resolved Hide resolved
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 8d6265f and f1f8dba.

Files selected for processing (2)
  • e2e/e2etests/helpers.go (1 hunks)
  • x/crosschain/keeper/grpc_query_inbound_tracker.go (1 hunks)
Files skipped from review as they are similar to previous changes (1)
  • x/crosschain/keeper/grpc_query_inbound_tracker.go
Additional context used
Path-based instructions (1)
e2e/e2etests/helpers.go (1)

Pattern **/*.go: Review the Go code, point out issues relative to principles of clean code, expressiveness, and performance.

GitHub Check: codecov/patch
e2e/e2etests/helpers.go

[warning] 23-26: e2e/e2etests/helpers.go#L23-L26
Added lines #L23 - L26 were not covered by tests


[warning] 28-29: e2e/e2etests/helpers.go#L28-L29
Added lines #L28 - L29 were not covered by tests


[warning] 32-34: e2e/e2etests/helpers.go#L32-L34
Added lines #L32 - L34 were not covered by tests


[warning] 36-39: e2e/e2etests/helpers.go#L36-L39
Added lines #L36 - L39 were not covered by tests


[warning] 41-42: e2e/e2etests/helpers.go#L41-L42
Added lines #L41 - L42 were not covered by tests


[warning] 44-44: e2e/e2etests/helpers.go#L44
Added line #L44 was not covered by tests

e2e/e2etests/helpers.go Outdated Show resolved Hide resolved
e2e/e2etests/helpers.go Outdated Show resolved Hide resolved
e2e/e2etests/helpers.go Outdated Show resolved Hide resolved
e2e/e2etests/e2etests.go Show resolved Hide resolved
e2e/e2etests/e2etests.go Outdated Show resolved Hide resolved
@lumtis
Copy link
Member

lumtis commented Jul 18, 2024

Seems like we need to run make generate

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

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, codebase verification and nitpick comments (1)
e2e/e2etests/test_admin_transactions.go (1)

64-74: Ensure edge cases and error handling are covered.

The TestAddToInboundTracker function currently checks for errors after broadcasting transactions and querying the inbound tracker. However, it does not explicitly handle edge cases such as invalid chain IDs, invalid transaction hashes, or failures in broadcasting transactions. Consider adding tests for these edge cases to ensure robustness.

  • Add tests for invalid chain IDs and transaction hashes.
  • Handle potential failures in broadcasting transactions.
Analysis chain

Ensure edge cases and error handling are covered.

The function tests adding to the inbound tracker. Ensure that edge cases and potential errors are covered.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that edge cases and error handling are covered in `TestAddToInboundTracker`.

# Test: Search for the function usage. Expect: The function should handle edge cases and errors.
rg --type go -A 5 $'TestAddToInboundTracker'

Length of output: 982


Script:

#!/bin/bash
# Description: Retrieve the full implementation of the `TestAddToInboundTracker` function to verify edge cases and error handling.

# Search for the full implementation of the `TestAddToInboundTracker` function.
ast-grep --lang go --pattern $'func TestAddToInboundTracker($_) {
  $$$
}'

Length of output: 3159

Tools
GitHub Check: codecov/patch

[warning] 64-74: e2e/e2etests/test_admin_transactions.go#L64-L74
Added lines #L64 - L74 were not covered by tests

Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between f1f8dba and e6a8b17.

Files selected for processing (3)
  • e2e/e2etests/e2etests.go (2 hunks)
  • e2e/e2etests/test_admin_transactions.go (1 hunks)
  • x/crosschain/keeper/grpc_query_inbound_tracker.go (1 hunks)
Files skipped from review as they are similar to previous changes (2)
  • e2e/e2etests/e2etests.go
  • x/crosschain/keeper/grpc_query_inbound_tracker.go
Additional context used
Path-based instructions (1)
e2e/e2etests/test_admin_transactions.go (1)

Pattern **/*.go: Review the Go code, point out issues relative to principles of clean code, expressiveness, and performance.

GitHub Check: codecov/patch
e2e/e2etests/test_admin_transactions.go

[warning] 31-33: e2e/e2etests/test_admin_transactions.go#L31-L33
Added lines #L31 - L33 were not covered by tests


[warning] 36-43: e2e/e2etests/test_admin_transactions.go#L36-L43
Added lines #L36 - L43 were not covered by tests


[warning] 45-46: e2e/e2etests/test_admin_transactions.go#L45-L46
Added lines #L45 - L46 were not covered by tests


[warning] 48-51: e2e/e2etests/test_admin_transactions.go#L48-L51
Added lines #L48 - L51 were not covered by tests


[warning] 53-54: e2e/e2etests/test_admin_transactions.go#L53-L54
Added lines #L53 - L54 were not covered by tests


[warning] 56-56: e2e/e2etests/test_admin_transactions.go#L56
Added line #L56 was not covered by tests


[warning] 58-59: e2e/e2etests/test_admin_transactions.go#L58-L59
Added lines #L58 - L59 were not covered by tests


[warning] 61-61: e2e/e2etests/test_admin_transactions.go#L61
Added line #L61 was not covered by tests


[warning] 64-74: e2e/e2etests/test_admin_transactions.go#L64-L74
Added lines #L64 - L74 were not covered by tests


[warning] 76-81: e2e/e2etests/test_admin_transactions.go#L76-L81
Added lines #L76 - L81 were not covered by tests


[warning] 83-84: e2e/e2etests/test_admin_transactions.go#L83-L84
Added lines #L83 - L84 were not covered by tests


[warning] 86-86: e2e/e2etests/test_admin_transactions.go#L86
Added line #L86 was not covered by tests


[warning] 88-94: e2e/e2etests/test_admin_transactions.go#L88-L94
Added lines #L88 - L94 were not covered by tests


[warning] 96-102: e2e/e2etests/test_admin_transactions.go#L96-L102
Added lines #L96 - L102 were not covered by tests

Additional comments not posted (13)
e2e/e2etests/test_admin_transactions.go (13)

45-46: Ensure test coverage for updated flags.

The function updates the default flags. Ensure that the updated flags are covered by tests.

Verification successful

Ensure test coverage for updated flags.

The defaultFlagsUpdated variable is used in an assertion within the test_admin_transactions.go file, confirming that the updated flags are covered by tests.

  • File: e2e/e2etests/test_admin_transactions.go
  • Lines: 45-46
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that the updated flags are covered by tests.

# Test: Search for the updated flags usage. Expect: The updated flags should be covered by tests.
rg --type go -A 5 $'defaultFlagsUpdated'

Length of output: 1340

Tools
GitHub Check: codecov/patch

[warning] 45-46: e2e/e2etests/test_admin_transactions.go#L45-L46
Added lines #L45 - L46 were not covered by tests


58-59: Ensure the crosschain flags query is tested.

The function queries the crosschain flags. Ensure that the query is tested.

Verification successful

The crosschain flags query is tested.

The query for crosschain flags includes checks for successful execution and specific flag values.

  • e2e/e2etests/test_admin_transactions.go: Lines 58-59
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that the crosschain flags query is tested.

# Test: Search for the crosschain flags query usage. Expect: The query should be tested.
rg --type go -A 5 $'r.ObserverClient.CrosschainFlags'

Length of output: 533

Tools
GitHub Check: codecov/patch

[warning] 58-59: e2e/e2etests/test_admin_transactions.go#L58-L59
Added lines #L58 - L59 were not covered by tests


76-81: Ensure the second transaction is correctly broadcasted.

The function broadcasts a second transaction. Ensure that the transaction is correctly broadcasted.

Verification successful

The second transaction is correctly broadcasted and verified.

The code correctly broadcasts the second transaction using r.ZetaTxServer.BroadcastTx and verifies it through r.CctxClient.InboundTracker.

  • BroadcastTx is used to send the transaction.
  • Error handling is in place to ensure the transaction is broadcasted without issues.
  • Verification steps confirm that the transaction details match the expected values.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that the second transaction is correctly broadcasted.

# Test: Search for the broadcast transaction usage. Expect: The second transaction should be correctly broadcasted.
rg --type go -A 5 $'msgBtc'

Length of output: 1385

Tools
GitHub Check: codecov/patch

[warning] 76-81: e2e/e2etests/test_admin_transactions.go#L76-L81
Added lines #L76 - L81 were not covered by tests


53-54: Ensure error handling for the second transaction.

The function should handle errors for the second transaction. Ensure that the error handling is correctly implemented.

Verification successful

Error handling for the second transaction is correctly implemented.

The require.NoError(r, err) statement following the BroadcastTx function call in the e2e/e2etests/test_admin_transactions.go file ensures that errors are handled appropriately.

  • e2e/e2etests/test_admin_transactions.go:
    • Lines 53-54: require.NoError(r, err) ensures error handling for the second transaction.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that the error handling for the second transaction is correctly implemented.

# Test: Search for the error handling usage. Expect: The error handling should be correctly implemented.
rg --type go -A 5 $'require.NoError(r, err)'

Length of output: 45


Script:

#!/bin/bash
# Description: Verify that the error handling for the second transaction is correctly implemented.

# Test: Search for the BroadcastTx function call and check the surrounding lines for error handling.
rg --type go -A 5 'BroadcastTx'

Length of output: 41536

Tools
GitHub Check: codecov/patch

[warning] 53-54: e2e/e2etests/test_admin_transactions.go#L53-L54
Added lines #L53 - L54 were not covered by tests


96-102: Ensure the second inbound tracker query is tested.

The function queries the inbound tracker for the second transaction. Ensure that the query is tested.

Verification successful

Verified: The second inbound tracker query is tested.

The second inbound tracker query for msgBtc is tested using assertions in the code.

  • require.NoError(r, err)
  • require.NotNil(r, tracker)
  • require.Equal(r, msgBtc.TxHash, tracker.InboundTracker.TxHash)
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that the second inbound tracker query is tested.

# Test: Search for the second inbound tracker query usage. Expect: The query should be tested.
rg --type go -A 5 $'r.CctxClient.InboundTracker'

Length of output: 943

Tools
GitHub Check: codecov/patch

[warning] 96-102: e2e/e2etests/test_admin_transactions.go#L96-L102
Added lines #L96 - L102 were not covered by tests


48-51: Ensure the second transaction is correctly broadcasted.

The function broadcasts a second transaction with updated flags. Ensure that the transaction is correctly broadcasted.

Verification successful

The second transaction is correctly broadcasted.

The code ensures that the second transaction involving msgGasPriceFlags is correctly broadcasted and checked for errors.

  • e2e/e2etests/test_admin_transactions.go: _, err = r.ZetaTxServer.BroadcastTx(utils.OperationalPolicyName, msgGasPriceFlags)
  • e2e/e2etests/test_admin_transactions.go: require.NoError(r, err)
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that the second transaction is correctly broadcasted.

# Test: Search for the broadcast transaction usage. Expect: The second transaction should be correctly broadcasted.
rg --type go -A 5 $'msgGasPriceFlags'

Length of output: 1664

Tools
GitHub Check: codecov/patch

[warning] 48-51: e2e/e2etests/test_admin_transactions.go#L48-L51
Added lines #L48 - L51 were not covered by tests


83-84: Ensure error handling for the second transaction.

The function should handle errors for the second transaction. Ensure that the error handling is correctly implemented.

Verification successful

Error handling for the second transaction is correctly implemented.

The error handling for the second transaction using BroadcastTx is already in place with the require.NoError(r, err) assertion.

  • e2e/e2etests/test_admin_transactions.go:
    • Line 83: require.NoError(r, err) is present after the BroadcastTx call.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that the error handling for the second transaction is correctly implemented.

# Test: Search for the error handling usage. Expect: The error handling should be correctly implemented.
rg --type go -A 5 $'require.NoError(r, err)'

Length of output: 45


Script:

#!/bin/bash
# Description: Verify that the error handling for the second transaction is correctly implemented.

# Search for the BroadcastTx function usage and its error handling in the e2e/e2etests/test_admin_transactions.go file.
rg 'BroadcastTx' -A 5 e2e/e2etests/test_admin_transactions.go

Length of output: 982

Tools
GitHub Check: codecov/patch

[warning] 83-84: e2e/e2etests/test_admin_transactions.go#L83-L84
Added lines #L83 - L84 were not covered by tests


88-94: Ensure the inbound tracker query is tested.

The function queries the inbound tracker. Ensure that the query is tested.

Verification successful

The inbound tracker query is tested.

The InboundTracker queries are within the TestAddToInboundTracker function, which is called by the TestCriticalAdminTransactions function, both of which are test functions.

  • TestAddToInboundTracker function: Contains the InboundTracker queries and assertions.
  • TestCriticalAdminTransactions function: Calls TestAddToInboundTracker.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that the inbound tracker query is tested.

# Test: Search for the inbound tracker query usage. Expect: The query should be tested.
rg --type go -A 5 $'r.CctxClient.InboundTracker'

Length of output: 943


Script:

#!/bin/bash
# Description: Verify that the inbound tracker query is within a test function.

# Find all function definitions in the file to ensure the queries are within test functions.
rg --type go --pcre2 'func Test' e2e/e2etests/test_admin_transactions.go -A 15

Length of output: 1474

Tools
GitHub Check: codecov/patch

[warning] 88-94: e2e/e2etests/test_admin_transactions.go#L88-L94
Added lines #L88 - L94 were not covered by tests


61-61: Ensure the updated epoch length is correctly verified.

The function verifies the updated epoch length. Ensure that the verification is correctly implemented.

Verification successful

The updated epoch length is correctly verified.

The verification of the updated epoch length is correctly implemented in the code.

  • Location: e2e/e2etests/test_admin_transactions.go, line 61
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that the updated epoch length is correctly verified.

# Test: Search for the epoch length verification usage. Expect: The verification should be correctly implemented.
rg --type go -A 5 $'require.Equal(r, defaultFlagsUpdated.EpochLength'

Length of output: 183


Script:

#!/bin/bash
# Description: Verify that the updated epoch length is correctly verified.

# Test: Search for the epoch length verification usage. Expect: The verification should be correctly implemented.
rg --type go -A 5 'require.Equal(r, defaultFlagsUpdated.EpochLength'

Length of output: 183


Script:

#!/bin/bash
# Description: Verify that the updated epoch length is correctly verified.

# Test: Search for the epoch length verification usage. Expect: The verification should be correctly implemented.
rg --type go -A 5 "require.Equal(r, defaultFlagsUpdated.EpochLength"

Length of output: 183


Script:

#!/bin/bash
# Description: Verify that the updated epoch length is correctly verified.

# Test: Search for the epoch length verification usage. Expect: The verification should be correctly implemented.
rg --type go -A 5 "require\.Equal\(r, defaultFlagsUpdated\.EpochLength"

Length of output: 546

Tools
GitHub Check: codecov/patch

[warning] 61-61: e2e/e2etests/test_admin_transactions.go#L61
Added line #L61 was not covered by tests


56-56: Ensure block waiting mechanism is tested.

The function waits for blocks. Ensure that the block waiting mechanism is tested.

Verification successful

Block waiting mechanism is indirectly tested.

The WaitForBlocks function is used within several test functions, indicating that the block waiting mechanism is indirectly tested as part of these tests. However, there are no explicit test cases directly targeting the WaitForBlocks function.

  • e2e/e2etests/test_admin_transactions.go utilizes WaitForBlocks.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that the block waiting mechanism is tested.

# Test: Search for the block waiting mechanism usage. Expect: The block waiting mechanism should be tested.
rg --type go -A 5 $'WaitForBlocks'

Length of output: 1301


Script:

#!/bin/bash
# Description: Verify that the block waiting mechanism is tested.

# Find all Go test files
test_files=$(fd --type f --extension go --exec rg --files-with-matches 'func Test' {} +)

# Search for references to WaitForBlocks in test files
rg --type go 'WaitForBlocks' $test_files

Length of output: 82315


Script:

#!/bin/bash
# Description: Verify that the block waiting mechanism is tested.

# Search for test functions in the e2e/e2etests directory
rg --type go -A 5 'func Test' e2e/e2etests

# Search for references to WaitForBlocks in the e2e/e2etests directory
rg --type go 'WaitForBlocks' e2e/e2etests

Length of output: 26022

Tools
GitHub Check: codecov/patch

[warning] 56-56: e2e/e2etests/test_admin_transactions.go#L56
Added line #L56 was not covered by tests


31-33: Ensure test coverage for TestCriticalAdminTransactions.

The function calls two other test functions. Ensure that this function itself is covered by tests.

Tools
GitHub Check: codecov/patch

[warning] 31-33: e2e/e2etests/test_admin_transactions.go#L31-L33
Added lines #L31 - L33 were not covered by tests


36-43: Ensure edge cases and error handling are covered.

The function tests updating gas price increase flags. Ensure that edge cases and potential errors are covered.

Tools
GitHub Check: codecov/patch

[warning] 36-43: e2e/e2etests/test_admin_transactions.go#L36-L43
Added lines #L36 - L43 were not covered by tests


86-86: Ensure block waiting mechanism is tested.

The function waits for blocks. Ensure that the block waiting mechanism is tested.

Tools
GitHub Check: codecov/patch

[warning] 86-86: e2e/e2etests/test_admin_transactions.go#L86
Added line #L86 was not covered by tests

Copy link
Contributor

@swift1337 swift1337 left a comment

Choose a reason for hiding this comment

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

LGTM. left some minor non-blocking comments.

e2e/e2etests/helpers.go Outdated Show resolved Hide resolved
e2e/e2etests/test_admin_transactions.go Show resolved Hide resolved
x/crosschain/client/cli/query_inbound_tracker.go Outdated Show resolved Hide resolved
@kingpinXD kingpinXD enabled auto-merge July 22, 2024 17:54
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

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, codebase verification and nitpick comments (1)
e2e/runner/zeta.go (1)

34-42: The function waitForBlock is not covered by tests.

The function waitForBlock in e2e/runner/zeta.go is not included in the test suite, either directly or indirectly. It is crucial to add tests to ensure this function's functionality is verified.

  • Location: e2e/runner/zeta.go
Analysis chain

Add comments for clarity and verify coverage.

The function waitForBlock is well-structured but could benefit from additional comments to explain each step. Ensure that this function is covered by tests.

+  // waitForBlock checks if the current block height is less than the desired block height.
  height, err := r.CctxClient.LastZetaHeight(r.Ctx, &types.QueryLastZetaHeightRequest{})
  if err != nil {
    return err
  }
  if height.Height < n {
    return fmt.Errorf("waiting for %d blocks, current height %d", n, height.Height)
  }
  return nil
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that `waitForBlock` is included in the test suite.

# Test: Search for the function usage. Expect: Occurrences in test files.
rg --type go -g '*.go' 'waitForBlock'

Length of output: 181


Script:

#!/bin/bash
# Description: Verify that `waitForBlock` is indirectly tested through `retry.Retry`.

# Look for test files related to `e2e/runner/zeta.go`
fd --type f --name '*_test.go' e2e/runner

# Search for `retry.Retry` in the test files to check if `waitForBlock` is indirectly tested.
rg --type go -g '*_test.go' 'retry.Retry'

Length of output: 336


Script:

#!/bin/bash
# Description: Verify that `waitForBlock` is indirectly tested through `retry.Retry`.

# Look for test files related to `e2e/runner/zeta.go`
fd -e go -g '*_test.go' e2e/runner

# Search for `retry.Retry` in the test files to check if `waitForBlock` is indirectly tested.
rg --type go -g '*_test.go' 'retry.Retry'

Length of output: 78


Script:

#!/bin/bash
# Description: Verify that `waitForBlock` is included in the test suite.

# List all test files in the repository
fd -e go -g '*_test.go'

# Search for `waitForBlock` in the test files
rg --type go -g '*_test.go' 'waitForBlock'

# Search for `retry.Retry` in the test files
rg --type go -g '*_test.go' 'retry.Retry'

Length of output: 13821

Tools
GitHub Check: codecov/patch

[warning] 34-37: e2e/runner/zeta.go#L34-L37
Added lines #L34 - L37 were not covered by tests


[warning] 39-40: e2e/runner/zeta.go#L39-L40
Added lines #L39 - L40 were not covered by tests


[warning] 42-42: e2e/runner/zeta.go#L42
Added line #L42 was not covered by tests

Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between e6a8b17 and 618d4af.

Files selected for processing (3)
  • e2e/e2etests/test_admin_transactions.go (1 hunks)
  • e2e/runner/zeta.go (1 hunks)
  • x/crosschain/client/cli/query_inbound_tracker.go (1 hunks)
Files skipped from review as they are similar to previous changes (1)
  • x/crosschain/client/cli/query_inbound_tracker.go
Additional context used
Path-based instructions (2)
e2e/e2etests/test_admin_transactions.go (1)

Pattern **/*.go: Review the Go code, point out issues relative to principles of clean code, expressiveness, and performance.

e2e/runner/zeta.go (1)

Pattern **/*.go: Review the Go code, point out issues relative to principles of clean code, expressiveness, and performance.

GitHub Check: codecov/patch
e2e/e2etests/test_admin_transactions.go

[warning] 31-33: e2e/e2etests/test_admin_transactions.go#L31-L33
Added lines #L31 - L33 were not covered by tests


[warning] 36-36: e2e/e2etests/test_admin_transactions.go#L36
Added line #L36 was not covered by tests


[warning] 38-44: e2e/e2etests/test_admin_transactions.go#L38-L44
Added lines #L38 - L44 were not covered by tests


[warning] 47-48: e2e/e2etests/test_admin_transactions.go#L47-L48
Added lines #L47 - L48 were not covered by tests


[warning] 51-56: e2e/e2etests/test_admin_transactions.go#L51-L56
Added lines #L51 - L56 were not covered by tests


[warning] 58-58: e2e/e2etests/test_admin_transactions.go#L58
Added line #L58 was not covered by tests


[warning] 61-63: e2e/e2etests/test_admin_transactions.go#L61-L63
Added lines #L61 - L63 were not covered by tests


[warning] 66-76: e2e/e2etests/test_admin_transactions.go#L66-L76
Added lines #L66 - L76 were not covered by tests


[warning] 78-83: e2e/e2etests/test_admin_transactions.go#L78-L83
Added lines #L78 - L83 were not covered by tests


[warning] 85-86: e2e/e2etests/test_admin_transactions.go#L85-L86
Added lines #L85 - L86 were not covered by tests


[warning] 88-88: e2e/e2etests/test_admin_transactions.go#L88
Added line #L88 was not covered by tests


[warning] 90-96: e2e/e2etests/test_admin_transactions.go#L90-L96
Added lines #L90 - L96 were not covered by tests


[warning] 98-104: e2e/e2etests/test_admin_transactions.go#L98-L104
Added lines #L98 - L104 were not covered by tests

e2e/runner/zeta.go

[warning] 20-23: e2e/runner/zeta.go#L20-L23
Added lines #L20 - L23 were not covered by tests


[warning] 25-26: e2e/runner/zeta.go#L25-L26
Added lines #L25 - L26 were not covered by tests


[warning] 29-32: e2e/runner/zeta.go#L29-L32
Added lines #L29 - L32 were not covered by tests


[warning] 34-37: e2e/runner/zeta.go#L34-L37
Added lines #L34 - L37 were not covered by tests


[warning] 39-40: e2e/runner/zeta.go#L39-L40
Added lines #L39 - L40 were not covered by tests


[warning] 42-42: e2e/runner/zeta.go#L42
Added line #L42 was not covered by tests

Additional comments not posted (4)
e2e/e2etests/test_admin_transactions.go (3)

36-64: Add comments for clarity and verify coverage.

The function TestUpdateGasPriceIncreaseFlags is well-structured but could benefit from additional comments to explain each step. Ensure that this function is covered by tests.

+  // TestUpdateGasPriceIncreaseFlags tests the update of gas price increase flags.
+  // Set default flags on zetacore
  defaultFlags := observertypes.DefaultGasPriceIncreaseFlags
  msgGasPriceFlags := observertypes.NewMsgUpdateGasPriceIncreaseFlags(
    r.ZetaTxServer.MustGetAccountAddressFromName(utils.OperationalPolicyName),
    defaultFlags,
  )
  _, err := r.ZetaTxServer.BroadcastTx(utils.OperationalPolicyName, msgGasPriceFlags)
  require.NoError(r, err)

  // create a new set of flag values by incrementing the epoch length by 1
  defaultFlagsUpdated := defaultFlags
  defaultFlagsUpdated.EpochLength = defaultFlags.EpochLength + 1

  // Update the flags on zetacore with the new values
  msgGasPriceFlags = observertypes.NewMsgUpdateGasPriceIncreaseFlags(
    r.ZetaTxServer.MustGetAccountAddressFromName(utils.OperationalPolicyName),
    defaultFlagsUpdated,
  )
  _, err = r.ZetaTxServer.BroadcastTx(utils.OperationalPolicyName, msgGasPriceFlags)
  require.NoError(r, err)

  r.WaitForBlocks(1)

  // Verify that the flags have been updated
  flags, err := r.ObserverClient.CrosschainFlags(r.Ctx, &observertypes.QueryGetCrosschainFlagsRequest{})
  require.NoError(r, err)
  require.Equal(r, defaultFlagsUpdated.EpochLength, flags.CrosschainFlags.GasPriceIncreaseFlags.EpochLength)
Verification successful

The function TestUpdateGasPriceIncreaseFlags is covered by the test suite.

The e2e/e2etests directory, which includes the test_admin_transactions.go file containing the TestUpdateGasPriceIncreaseFlags function, is imported in multiple files within the cmd/zetae2e directory. This indicates that the tests within this directory are included in the test suite execution.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that `TestUpdateGasPriceIncreaseFlags` is included in the test suite.

# Test: Search for the function usage. Expect: Occurrences in test files.
rg --type go -g '*.go' 'TestUpdateGasPriceIncreaseFlags'

Length of output: 232


Script:

#!/bin/bash
# Description: Verify that `e2e/e2etests/test_admin_transactions.go` is included in the test suite execution.

# Test: Search for the file inclusion in test scripts or configuration files.
rg --type go -g '*.go' 'e2e/e2etests/test_admin_transactions.go'

Length of output: 64


Script:

#!/bin/bash
# Description: Verify that `e2e/e2etests` directory is included in the test suite execution.

# Test: Search for the directory inclusion in test scripts or configuration files.
rg --type go -g '*.go' 'e2e/e2etests'

Length of output: 1014

Tools
GitHub Check: codecov/patch

[warning] 36-36: e2e/e2etests/test_admin_transactions.go#L36
Added line #L36 was not covered by tests


[warning] 38-44: e2e/e2etests/test_admin_transactions.go#L38-L44
Added lines #L38 - L44 were not covered by tests


[warning] 47-48: e2e/e2etests/test_admin_transactions.go#L47-L48
Added lines #L47 - L48 were not covered by tests


[warning] 51-56: e2e/e2etests/test_admin_transactions.go#L51-L56
Added lines #L51 - L56 were not covered by tests


[warning] 58-58: e2e/e2etests/test_admin_transactions.go#L58
Added line #L58 was not covered by tests


[warning] 61-63: e2e/e2etests/test_admin_transactions.go#L61-L63
Added lines #L61 - L63 were not covered by tests


31-33: Ensure coverage for TestCriticalAdminTransactions.

The function TestCriticalAdminTransactions calls two other test functions but lacks direct test coverage. Ensure that this function is included in the test suite.

Verification successful

Ensure coverage for TestCriticalAdminTransactions.

The function TestCriticalAdminTransactions is included in the test suite and referenced in the necessary files:

  • e2e/e2etests/e2etests.go
  • cmd/zetae2e/local/local.go
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that `TestCriticalAdminTransactions` is included in the test suite.

# Test: Search for the function usage. Expect: Occurrences in test files.
rg --type go -g '*.go' 'TestCriticalAdminTransactions'

Length of output: 593


Script:

#!/bin/bash
# Extract relevant lines from files where `TestCriticalAdminTransactions` is mentioned to verify its inclusion in the test suite.

# Extract lines from e2e/e2etests/e2etests.go
echo "Contents of e2e/e2etests/e2etests.go:"
rg --type go -g 'e2e/e2etests/e2etests.go' -A 5 'TestCriticalAdminTransactions'

# Extract lines from cmd/zetae2e/local/local.go
echo "Contents of cmd/zetae2e/local/local.go:"
rg --type go -g 'cmd/zetae2e/local/local.go' -A 5 'TestCriticalAdminTransactions'

Length of output: 1517

Tools
GitHub Check: codecov/patch

[warning] 31-33: e2e/e2etests/test_admin_transactions.go#L31-L33
Added lines #L31 - L33 were not covered by tests


66-104: Add comments for clarity and verify coverage.

The function TestAddToInboundTracker is well-structured but could benefit from additional comments to explain each step. Ensure that this function is covered by tests.

+  // TestAddToInboundTracker tests the addition of inbound tracker for Ethereum and Bitcoin chains.
  chainEth := chains.GoerliLocalnet
  chainBtc := chains.BitcoinRegtest
  msgEth := crosschaintypes.NewMsgAddInboundTracker(
    r.ZetaTxServer.MustGetAccountAddressFromName(utils.EmergencyPolicyName),
    chainEth.ChainId,
    coin.CoinType_Gas,
    sample.Hash().Hex(),
  )
  _, err := r.ZetaTxServer.BroadcastTx(utils.EmergencyPolicyName, msgEth)
  require.NoError(r, err)

  msgBtc := crosschaintypes.NewMsgAddInboundTracker(
    r.ZetaTxServer.MustGetAccountAddressFromName(utils.EmergencyPolicyName),
    chainBtc.ChainId,
    coin.CoinType_Gas,
    sample.BtcHash().String(),
  )

  _, err = r.ZetaTxServer.BroadcastTx(utils.EmergencyPolicyName, msgBtc)
  require.NoError(r, err)

  r.WaitForBlocks(1)

  // Verify that the inbound tracker has been added for Ethereum
  tracker, err := r.CctxClient.InboundTracker(r.Ctx, &crosschaintypes.QueryInboundTrackerRequest{
    ChainId: msgEth.ChainId,
    TxHash:  msgEth.TxHash,
  })
  require.NoError(r, err)
  require.NotNil(r, tracker)
  require.Equal(r, msgEth.TxHash, tracker.InboundTracker.TxHash)

  // Verify that the inbound tracker has been added for Bitcoin
  tracker, err = r.CctxClient.InboundTracker(r.Ctx, &crosschaintypes.QueryInboundTrackerRequest{
    ChainId: msgBtc.ChainId,
    TxHash:  msgBtc.TxHash,
  })
  require.NoError(r, err)
  require.NotNil(r, tracker)
  require.Equal(r, msgBtc.TxHash, tracker.InboundTracker.TxHash)
Tools
GitHub Check: codecov/patch

[warning] 66-76: e2e/e2etests/test_admin_transactions.go#L66-L76
Added lines #L66 - L76 were not covered by tests


[warning] 78-83: e2e/e2etests/test_admin_transactions.go#L78-L83
Added lines #L78 - L83 were not covered by tests


[warning] 85-86: e2e/e2etests/test_admin_transactions.go#L85-L86
Added lines #L85 - L86 were not covered by tests


[warning] 88-88: e2e/e2etests/test_admin_transactions.go#L88
Added line #L88 was not covered by tests


[warning] 90-96: e2e/e2etests/test_admin_transactions.go#L90-L96
Added lines #L90 - L96 were not covered by tests


[warning] 98-104: e2e/e2etests/test_admin_transactions.go#L98-L104
Added lines #L98 - L104 were not covered by tests

e2e/runner/zeta.go (1)

20-33: Add comments for clarity and verify coverage.

The function WaitForBlocks is well-structured but could benefit from additional comments to explain each step. Ensure that this function is covered by tests.

+  // WaitForBlocks waits for a specified number of blocks to be mined.
  height, err := r.CctxClient.LastZetaHeight(r.Ctx, &types.QueryLastZetaHeightRequest{})
  if err != nil {
    return
  }
  call := func() error {
    return retry.Retry(r.waitForBlock(height.Height + n))
  }

  bo := backoff.NewConstantBackOff(time.Second * 5)
  boWithMaxRetries := backoff.WithMaxRetries(bo, 10)
  err = retry.DoWithBackoff(call, boWithMaxRetries)
  require.NoError(r, err, "failed to wait for %d blocks", n)
Tools
GitHub Check: codecov/patch

[warning] 20-23: e2e/runner/zeta.go#L20-L23
Added lines #L20 - L23 were not covered by tests


[warning] 25-26: e2e/runner/zeta.go#L25-L26
Added lines #L25 - L26 were not covered by tests


[warning] 29-32: e2e/runner/zeta.go#L29-L32
Added lines #L29 - L32 were not covered by tests

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 6

Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 618d4af and 07ef2e8.

Files selected for processing (2)
  • e2e/runner/zeta.go (1 hunks)
  • x/crosschain/client/cli/query_inbound_tracker.go (1 hunks)
Files skipped from review as they are similar to previous changes (1)
  • x/crosschain/client/cli/query_inbound_tracker.go
Additional context used
Path-based instructions (1)
e2e/runner/zeta.go (1)

Pattern **/*.go: Review the Go code, point out issues relative to principles of clean code, expressiveness, and performance.

GitHub Check: codecov/patch
e2e/runner/zeta.go

[warning] 20-23: e2e/runner/zeta.go#L20-L23
Added lines #L20 - L23 were not covered by tests


[warning] 25-26: e2e/runner/zeta.go#L25-L26
Added lines #L25 - L26 were not covered by tests


[warning] 29-32: e2e/runner/zeta.go#L29-L32
Added lines #L29 - L32 were not covered by tests


[warning] 34-37: e2e/runner/zeta.go#L34-L37
Added lines #L34 - L37 were not covered by tests


[warning] 39-40: e2e/runner/zeta.go#L39-L40
Added lines #L39 - L40 were not covered by tests


[warning] 42-42: e2e/runner/zeta.go#L42
Added line #L42 was not covered by tests

e2e/runner/zeta.go Show resolved Hide resolved
e2e/runner/zeta.go Show resolved Hide resolved
e2e/runner/zeta.go Show resolved Hide resolved
e2e/runner/zeta.go Show resolved Hide resolved
e2e/runner/zeta.go Show resolved Hide resolved
e2e/runner/zeta.go Show resolved Hide resolved
@kingpinXD kingpinXD added this pull request to the merge queue Jul 23, 2024
Merged via the queue into develop with commit 8ebae66 Jul 23, 2024
29 of 30 checks passed
@kingpinXD kingpinXD deleted the critical-admin-txs branch July 23, 2024 17:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add new tests under the admin thread to test the most critical admin transactions
4 participants