PatrickAlphaC / hardhat-fund-me-fcc

82 stars 182 forks source link

Solved: `AssertionError: Expected transaction to be reverted with reason 'You need to spend more ETH!', but it reverted with reason 'Did not send enough!' ` #192

Closed BilgeKaanGencdogan closed 2 months ago

BilgeKaanGencdogan commented 2 months ago

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:

bilgekaangencdogan@bilgekaangencdogan:~/Desktop/FreeCodeCampBlockchain/hardhat-fund-me-fcc$ yarn hardhat test
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

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.

PatrickAlphaC commented 2 months ago

Can you:

  1. Make this a discussion on the full repo? https://github.com/smartcontractkit/full-blockchain-solidity-course-js/

Thanks!