full-blockchain-solidity-course-js
full-blockchain-solidity-course-js copied to clipboard
Solved: ` AssertionError: Expected transaction to be reverted with reason 'You need to spend more ETH!', but it reverted with reason 'Did not send enough!' `
Hello, I've just opened this issue for those who have the same error as I have. When I write the test for
function fund() public payable {
require(
msg.value.getConversionRate(priceFeed) >= MINIMUM_USD,
"Did not send enough!"
);
funders.push(msg.sender);
addressToAmountFunded[msg.sender] += msg.value;
}
in the FundMe.test.js
, I got this error.
Error content is this:
yarn run v1.22.22
warning package.json: No license field
$ /home/bilgekaangencdogan/Desktop/FreeCodeCampBlockchain/hardhat-fund-me-fcc/node_modules/.bin/hardhat test
WARNING: You are currently using Node.js v21.7.3, which is not supported by Hardhat. This can lead to unexpected behavior. See https://hardhat.org/nodejs-versions
FundMe
constructor
✔ Sets the aggregator addresses correctly
fund
1) Fails if you do not send enough ETH!!
1 passing (11s)
1 failing
1) FundMe
fund
Fails if you do not send enough ETH!!:
AssertionError: Expected transaction to be reverted with reason 'You need to spend more ETH!', but it reverted with reason 'Did not send enough!'
at Context.<anonymous> (test/unit/FundMe.test.js:30:13)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.```
To resolve this issue, your message in
```javascript
require(
msg.value.getConversionRate(priceFeed) >= MINIMUM_USD,
"Did not send enough!"
);
To resolve this issue, your message in
require(
msg.value.getConversionRate(priceFeed) >= MINIMUM_USD,
"Did not send enough!"
);
should match with message which is in
describe("fund", async function () {
it("Fails if you do not send enough ETH!!", async function () {
await expect(fundMe.fund()).to.be.revertedWith(
"You need to spend more ETH!"
)
})
})
I hope it is helpful for those who tore their hair just because of this problem.
Thanks.
yes , fund fund function in contract code , the require message need same to revertedWith massage
function fund() public payable {
require(msg.value.getConversionRate(priceFeed) >= MINIMUM_USD, "You need to spend more ETH!");
// require(PriceConverter.getConversionRate(msg.value) >= MINIMUM_USD, "You need to spend more ETH!");
addressToAmountFunded[msg.sender] += msg.value;
funders.push(msg.sender);
}
describe("fund", async function () {
it("Fails if you don't send enough eth", async function () {
await expect(fundMe.fund()).to.be.revertedWith(
"You need to spend more ETH!"
)
})
})