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(sims): fix test cases feegrant #19863

Merged
merged 2 commits into from
Mar 26, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions tests/sims/feegrant/operations_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,8 @@ func (suite *SimTestSuite) getTestingAccounts(r *rand.Rand, n int) []simtypes.Ac

// add coins to the accounts
for _, account := range accounts {
acc := suite.accountKeeper.NewAccountWithAddress(suite.ctx, account.Address)
suite.accountKeeper.SetAccount(suite.ctx, acc)
Comment on lines +89 to +90
Copy link
Contributor

@coderabbitai coderabbitai bot Mar 25, 2024

Choose a reason for hiding this comment

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

The addition of NewAccountWithAddress and SetAccount methods correctly addresses the issue of test accounts not being added to the account keeper, which was causing nil pointer dereferences. This change ensures that test accounts are properly initialized and set in the account keeper before being used in tests, thereby preventing the previously observed runtime errors.

However, it's important to ensure that the NewAccountWithAddress method does not have side effects that could affect other tests or the overall test suite's behavior. Additionally, consider adding a check after setting the account to verify that it has been correctly added to the account keeper. This could further improve the robustness of the tests.

Would you like me to provide an example of how to verify that accounts have been correctly added to the account keeper?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

All tests in the test suite are affected, now they pass. Before that they all failed.

Account is properly added to the keeper because all the tests passes. Why I should check that when the production code will failed if it is not. If we follow that logic we should check that account is fund correctly or that the context is properly created and so on.

Copy link
Contributor

Choose a reason for hiding this comment

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

@EmilGeorgiev, thank you for your insight. You make a valid point about the balance between ensuring robustness and avoiding redundancy in tests. Given that all tests in the suite now pass, indicating that the accounts are properly added to the account keeper, it's reasonable to rely on these outcomes as confirmation of the accounts being correctly set up. Your approach highlights the importance of practicality in testing, ensuring that we focus on what truly matters for the integrity of the code without overcomplicating the test suite. I appreciate your perspective on this matter.

err := banktestutil.FundAccount(suite.ctx, suite.bankKeeper, account.Address, initCoins)
suite.Require().NoError(err)
}
Expand Down
Loading