Issue: I cannot override the default timeout of 40000ms when testing using rinkeby network. I'm getting the error of Timeout of 40000ms exceeded. (Error: Timeout of 40000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise,...) I didn't test with other json-rpc network such as kovan so I can't be certain the issue is present there too
Background: my solidity code is a simple lottery setup and is connected to chainlink oracle to determine usd/eth exchange. I can confirm my solidity code is fine because the test sometimes run fine and is able to return me those values I have consoled.log. Other time, it just give a timeout error
unless the way I setup my test is incorrect, then I think the issue lies in the timeout. Anyone can advise on this? Thanks
Packages
"hardhat": "^2.8.2",
"@nomiclabs/hardhat-ethers": "^2.0.4",
"@nomiclabs/hardhat-waffle": "^2.0.1",
"chai": "^4.3.4",
networks: {
rinkeby: {
url: INFURA_RINKEBY_URL,
accounts: [
`0x${PRIVATE_KEY_RINKEBY}`,
`0x${TESTNET_ACCOUNT_1}`,
`0x${TESTNET_ACCOUNT_2}`,
],
timeout: 200000, // <---- issue
}
},
describe.only("Lottery", function () {
let lottery;
let admin;
let player1;
let player2;
let result;
before(async () => {
const Lottery = await ethers.getContractFactory("Lottery");
lottery = await Lottery.deploy();
await lottery.deployed();
[admin, player1, player2] = await ethers.getSigners();
await lottery.connect(admin).startLottery();
await lottery.connect(player1).enter({
value: ethers.utils.parseEther("0.1"),
});
// await lottery.connect(player2).enter({
// value: ethers.utils.parseEther("0.1"),
// });
});
describe.only("Return Lottery Results", async function () {
it("Should return lottery", async function () {
console.log("fee", await lottery.fee());
console.log("usdEntryFee", await lottery.usdEntryFee());
//todo function call to a non-contract account
console.log("getEntranceFee", await lottery.getEntranceFee());
console.log("randomness", await lottery.randomness());
console.log("lottery_state", await lottery.lottery_state());
console.log("players", await lottery.getPlayers());
});
});
});