Skip to content

Commit

Permalink
Cleaner tests
Browse files Browse the repository at this point in the history
  • Loading branch information
brickpop committed May 28, 2024
1 parent b1e4ef4 commit 923a249
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 89 deletions.
1 change: 0 additions & 1 deletion packages/contracts/test/unit-testing/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import {BigNumber} from '@ethersproject/bignumber';
import {expect} from 'chai';
import {ethers} from 'hardhat';

export const abiCoder = ethers.utils.defaultAbiCoder;
export const EMPTY_DATA = '0x';
export const ZERO_BYTES32 =
'0x0000000000000000000000000000000000000000000000000000000000000000';
Expand Down
69 changes: 23 additions & 46 deletions packages/contracts/test/unit-testing/governance-plugins-setup.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
import buildMetadata from '../../src/governance/governance-build-metadata.json';
import {
DAO,
GovernancePluginsSetup,
GovernancePluginsSetup__factory,
MainVotingPlugin__factory,
} from '../../typechain';
import {deployTestDao} from '../helpers/test-dao';
import {getNamedTypesFromMetadata, Operation} from '../helpers/types';
import {Operation} from '../helpers/types';
import {
abiCoder,
ADDRESS_ZERO,
EXECUTE_PERMISSION_ID,
NO_CONDITION,
Expand Down Expand Up @@ -47,22 +45,15 @@ describe('Governance Plugins Setup', function () {
it('returns the plugin, helpers, and permissions (no pluginUpgrader)', async () => {
const pluginUpgrader = ADDRESS_ZERO;

// Params: (MajorityVotingBase.VotingSettings, address[], uint64, address)
const initData = abiCoder.encode(
getNamedTypesFromMetadata(
buildMetadata.pluginSetup.prepareInstallation.inputs
),
[
{
votingMode: VotingMode.EarlyExecution,
supportThreshold: pctToRatio(25),
minParticipation: pctToRatio(50),
duration: 60 * 60 * 24 * 5,
},
[alice.address],
60 * 60 * 24,
pluginUpgrader,
]
const initData = await governancePluginsSetup.encodeInstallationParams(
{
votingMode: VotingMode.EarlyExecution,
supportThreshold: pctToRatio(25),
duration: 60 * 60 * 24 * 5,
},
[alice.address],
60 * 60 * 24,
pluginUpgrader
);
const nonce = await ethers.provider.getTransactionCount(
governancePluginsSetup.address
Expand Down Expand Up @@ -148,21 +139,15 @@ describe('Governance Plugins Setup', function () {
const pluginUpgrader = bob.address;

// Params: (MajorityVotingBase.VotingSettings, address, address)
const initData = abiCoder.encode(
getNamedTypesFromMetadata(
buildMetadata.pluginSetup.prepareInstallation.inputs
),
[
{
votingMode: VotingMode.EarlyExecution,
supportThreshold: pctToRatio(25),
minParticipation: pctToRatio(50),
duration: 60 * 60 * 24 * 5,
},
[alice.address],
60 * 60 * 24,
pluginUpgrader,
]
const initData = await governancePluginsSetup.encodeInstallationParams(
{
votingMode: VotingMode.EarlyExecution,
supportThreshold: pctToRatio(25),
duration: 60 * 60 * 24 * 5,
},
[alice.address],
60 * 60 * 24,
pluginUpgrader
);
const nonce = await ethers.provider.getTransactionCount(
governancePluginsSetup.address
Expand Down Expand Up @@ -267,12 +252,8 @@ describe('Governance Plugins Setup', function () {
).deploy();

const pluginUpgrader = ADDRESS_ZERO;
const uninstallData = abiCoder.encode(
getNamedTypesFromMetadata(
buildMetadata.pluginSetup.prepareUninstallation.inputs
),
[pluginUpgrader]
);
const uninstallData =
await governancePluginsSetup.encodeUninstallationParams(pluginUpgrader);
const permissions =
await governancePluginsSetup.callStatic.prepareUninstallation(
dao.address,
Expand Down Expand Up @@ -332,12 +313,8 @@ describe('Governance Plugins Setup', function () {
).deploy();

const pluginUpgrader = bob.address;
const uninstallData = abiCoder.encode(
getNamedTypesFromMetadata(
buildMetadata.pluginSetup.prepareUninstallation.inputs
),
[pluginUpgrader]
);
const uninstallData =
await governancePluginsSetup.encodeUninstallationParams(pluginUpgrader);
const permissions =
await governancePluginsSetup.callStatic.prepareUninstallation(
dao.address,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
import metadata from '../../src/personal/personal-space-admin-build-metadata.json';
import {
PersonalSpaceAdminPlugin__factory,
PersonalSpaceAdminPluginSetup,
PersonalSpaceAdminPluginSetup__factory,
} from '../../typechain';
import {getInterfaceID} from '../../utils/interfaces';
import {deployTestDao} from '../helpers/test-dao';
import {getNamedTypesFromMetadata, Operation} from '../helpers/types';
import {Operation} from '../helpers/types';
import {psvpInterface} from './personal-space-admin-plugin';
import {expect} from 'chai';
import {ethers} from 'hardhat';

const abiCoder = ethers.utils.defaultAbiCoder;
const AddressZero = ethers.constants.AddressZero;
const EMPTY_DATA = '0x';

Expand All @@ -25,25 +23,22 @@ describe('Personal Space Admin Plugin Setup', function () {
let adminSetup: PersonalSpaceAdminPluginSetup;
let implementationAddress: string;
let targetDao: any;
let minimum_data: any;
let prepareInstallationData: string;

before(async () => {
signers = await ethers.getSigners();
ownerAddress = await signers[0].getAddress();
targetDao = await deployTestDao(signers[0]);

minimum_data = abiCoder.encode(
getNamedTypesFromMetadata(
metadata.pluginSetup.prepareInstallation.inputs
),
[ownerAddress]
);

const PersonalSpaceAdminPluginSetup =
new PersonalSpaceAdminPluginSetup__factory(signers[0]);
adminSetup = await PersonalSpaceAdminPluginSetup.deploy();

implementationAddress = await adminSetup.implementation();

prepareInstallationData = await adminSetup.encodeInstallationParams(
ownerAddress
);
});

it('does not support the empty interface', async () => {
Expand All @@ -70,21 +65,24 @@ describe('Personal Space Admin Plugin Setup', function () {
await expect(
adminSetup.prepareInstallation(
targetDao.address,
minimum_data.substring(0, minimum_data.length - 2)
prepareInstallationData.substring(
0,
prepareInstallationData.length - 2
)
)
).to.be.reverted;

await expect(
adminSetup.prepareInstallation(targetDao.address, minimum_data)
adminSetup.prepareInstallation(
targetDao.address,
prepareInstallationData
)
).not.to.be.reverted;
});

it('reverts if encoded address in `_data` is zero', async () => {
const dataWithAddressZero = abiCoder.encode(
getNamedTypesFromMetadata(
metadata.pluginSetup.prepareInstallation.inputs
),
[AddressZero]
const dataWithAddressZero = await adminSetup.encodeInstallationParams(
AddressZero
);

await expect(
Expand All @@ -108,7 +106,7 @@ describe('Personal Space Admin Plugin Setup', function () {
preparedSetupData: {helpers, permissions},
} = await adminSetup.callStatic.prepareInstallation(
targetDao.address,
minimum_data
prepareInstallationData
);

expect(plugin).to.be.equal(anticipatedPluginAddress);
Expand Down Expand Up @@ -143,7 +141,7 @@ describe('Personal Space Admin Plugin Setup', function () {
nonce,
});

await adminSetup.prepareInstallation(daoAddress, minimum_data);
await adminSetup.prepareInstallation(daoAddress, prepareInstallationData);

const factory = new PersonalSpaceAdminPlugin__factory(signers[0]);
const adminAddressContract = factory.attach(anticipatedPluginAddress);
Expand Down
35 changes: 13 additions & 22 deletions packages/contracts/test/unit-testing/space-plugin-setup.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import buildMetadata from '../../src/space/space-build-metadata.json';
import {
DAO,
SpacePlugin__factory,
Expand All @@ -9,7 +8,6 @@ import {getPluginSetupProcessorAddress} from '../../utils/helpers';
import {deployTestDao} from '../helpers/test-dao';
import {getNamedTypesFromMetadata, Operation} from '../helpers/types';
import {
abiCoder,
ADDRESS_ONE,
ADDRESS_ZERO,
CONTENT_PERMISSION_ID,
Expand Down Expand Up @@ -41,12 +39,12 @@ describe('Space Plugin Setup', function () {

describe('prepareInstallation', async () => {
it('returns the plugin, helpers, and permissions (no pluginUpgrader)', async () => {
const initData = abiCoder.encode(
getNamedTypesFromMetadata(
buildMetadata.pluginSetup.prepareInstallation.inputs
),
[defaultInitData.contentUri, ADDRESS_ZERO, ADDRESS_ZERO]
const initData = await spacePluginSetup.encodeInstallationParams(
defaultInitData.contentUri,
ADDRESS_ZERO,
ADDRESS_ZERO
);

const nonce = await ethers.provider.getTransactionCount(
spacePluginSetup.address
);
Expand Down Expand Up @@ -92,11 +90,10 @@ describe('Space Plugin Setup', function () {

it('returns the plugin, helpers, and permissions (with a pluginUpgrader)', async () => {
const pluginUpgrader = bob.address;
const initData = abiCoder.encode(
getNamedTypesFromMetadata(
buildMetadata.pluginSetup.prepareInstallation.inputs
),
[defaultInitData.contentUri, ADDRESS_ONE, pluginUpgrader]
const initData = await spacePluginSetup.encodeInstallationParams(
defaultInitData.contentUri,
ADDRESS_ZERO,
pluginUpgrader
);
const nonce = await ethers.provider.getTransactionCount(
spacePluginSetup.address
Expand Down Expand Up @@ -157,11 +154,8 @@ describe('Space Plugin Setup', function () {
it('returns the permission changes (no pluginUpgrader)', async () => {
const plugin = await new SpacePlugin__factory(alice).deploy();

const uninstallData = abiCoder.encode(
getNamedTypesFromMetadata(
buildMetadata.pluginSetup.prepareUninstallation.inputs
),
[ADDRESS_ZERO]
const uninstallData = await spacePluginSetup.encodeUninstallationParams(
ADDRESS_ZERO
);

const permissions =
Expand Down Expand Up @@ -194,11 +188,8 @@ describe('Space Plugin Setup', function () {
const plugin = await new SpacePlugin__factory(alice).deploy();

const pluginUpgrader = bob.address;
const uninstallData = abiCoder.encode(
getNamedTypesFromMetadata(
buildMetadata.pluginSetup.prepareUninstallation.inputs
),
[pluginUpgrader]
const uninstallData = await spacePluginSetup.encodeUninstallationParams(
pluginUpgrader
);

const permissions =
Expand Down

0 comments on commit 923a249

Please sign in to comment.