const { ethers } = require('hardhat'); const { loadFixture } = require('@nomicfoundation/hardhat-network-helpers'); const { bigint: time } = require('../../helpers/time'); const { shouldBehaveLikeAccessControl, shouldBehaveLikeAccessControlDefaultAdminRules, } = require('../AccessControl.behavior.js'); async function fixture() { const delay = time.duration.hours(10); const [defaultAdmin, ...accounts] = await ethers.getSigners(); const mock = await ethers.deployContract('$AccessControlDefaultAdminRules', [delay, defaultAdmin]); return { mock, defaultAdmin, delay, accounts }; } describe('AccessControlDefaultAdminRules', function () { beforeEach(async function () { Object.assign(this, await loadFixture(fixture)); }); it('initial admin not zero', async function () { await expect(ethers.deployContract('$AccessControlDefaultAdminRules', [this.delay, ethers.ZeroAddress])) .to.be.revertedWithCustomError(this.mock, 'AccessControlInvalidDefaultAdmin') .withArgs(ethers.ZeroAddress); }); shouldBehaveLikeAccessControl(); shouldBehaveLikeAccessControlDefaultAdminRules(); });