Tests with Hardhat throws "non-contract account" error on imported open zeppelin contracts

A contract I'm trying to test imports SafeERC20 from OpenZeppelin:
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";

one of my contract functions is using IERC20 as follows:
uint256 balance = IERC20(token).balanceOf(address(this));

Everything works fine when I run it as a script, but when I run it in a hardhat test, IERC20(token) throws the error: Error: Transaction reverted: function call to a non-contract account

on my js test I'm able to see that the token is already deployed and has some balance.
What am I doing wrong?
do I need to deploy the open zeppelin somehow?

This looks weird but I can't tell where the error is. Can you provide more context about your setup? Share some more code, what your test looks like, etc.