This is the section of my unit testing... I've been working on this problem for the last few hours. I couldn't, however... I think the error is in
const { deployer } = await getNamedAccounts()
this line. Raffle contract isn't recognized... (Note- All the deployments are working correctly... )
!developmentChains.includes(network.name)
? describe.skip()
: describe("Raffle UNIT test", async () => {
let raffle, vrfCoordinatorV2Mock
const chainId = network.config.chainId
beforeEach(async () => {
const { deployer } = await getNamedAccounts()
await deployments.fixture(["all"])
raffle = await ethers.getContract("Raffle", deployer)
vrfCoordinatorV2Mock = await ethers.getContract("VRFCoordinatorV2Mock", deployer)
})
describe("Constructor function", async () => {
it("Initializes the raffle correctly.", async () => {
const raffleState = await raffle.getRaffleState()
const interval = await raffle.getInterval()
assert.equal(raffleState.toString(), "0")
assert.equal(interval.toString(), networkConfig[chainId]["interval"])
})
})
})
ERROR that I got...
~/b/JSweb3_2/smart-contract_lottery on main !2 hh test ✔ took 5s system at 07:27:25 am
Raffle UNIT test
Constructor function
Development chain detected! Deploying mocks
Mocks deployed!!!...
---------------------!--!--!---------------------
1) "before each" hook for "Initializes the raffle correctly."
0 passing (428ms)
1 failing
1) Raffle UNIT test
"before each" hook for "Initializes the raffle correctly.":
Error: No Contract deployed with name Raffle
at Object.getContract (node_modules/@nomiclabs/hardhat-ethers/src/internal/helpers.ts:447:11)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at runNextTicks (node:internal/process/task_queues:65:3)
at listOnTimeout (node:internal/timers:528:9)
at processTimers (node:internal/timers:502:7)
at Context.<anonymous> (test/unit/Raffle.test.js:16:24)
I AM FOLLOWING A CORDING TUTOTIAL.
CodePudding user response:
I believe you're following Patrick's course, have you checked if your deploy scripts are executing or not before running tests? You can do console logs in scripts and be sure that they are exporting tags. for example,
module.exports.tags = ['all', 'mocks'];