|
|
|
@ -1,21 +1,24 @@ |
|
|
|
|
const { expect } = require('chai'); |
|
|
|
|
|
|
|
|
|
const time = require('../../helpers/time'); |
|
|
|
|
|
|
|
|
|
function shouldBehaveLikeERC6372(mode = 'blocknumber') { |
|
|
|
|
describe('should implement ERC-6372', function () { |
|
|
|
|
describe(`ERC-6372 behavior in ${mode} mode`, function () { |
|
|
|
|
beforeEach(async function () { |
|
|
|
|
this.mock = this.mock ?? this.token ?? this.votes; |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
it('clock is correct', async function () { |
|
|
|
|
expect(await this.mock.clock()).to.equal(await time.clock[mode]()); |
|
|
|
|
it('should have a correct clock value', async function () { |
|
|
|
|
const currentClock = await this.mock.clock(); |
|
|
|
|
const expectedClock = await time.clock[mode](); |
|
|
|
|
expect(currentClock).to.equal(expectedClock, `Clock mismatch in ${mode} mode`); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
it('CLOCK_MODE is correct', async function () { |
|
|
|
|
const params = new URLSearchParams(await this.mock.CLOCK_MODE()); |
|
|
|
|
expect(params.get('mode')).to.equal(mode); |
|
|
|
|
expect(params.get('from')).to.equal(mode == 'blocknumber' ? 'default' : null); |
|
|
|
|
it('should have the correct CLOCK_MODE parameters', async function () { |
|
|
|
|
const clockModeParams = new URLSearchParams(await this.mock.CLOCK_MODE()); |
|
|
|
|
const expectedFromValue = mode === 'blocknumber' ? 'default' : null; |
|
|
|
|
|
|
|
|
|
expect(clockModeParams.get('mode')).to.equal(mode, `Expected mode to be ${mode}`); |
|
|
|
|
expect(clockModeParams.get('from')).to.equal(expectedFromValue, `Expected 'from' to be ${expectedFromValue}`); |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|