Add tests of class RfqMakerBlacklist

Addresses review comment https://github.com/0xProject/0x-monorepo/pull/2706#pullrequestreview-489852363
This commit is contained in:
F. Eugene Aumson 2020-09-16 19:11:24 -04:00
parent f53a512e70
commit 5c9b6eb078
No known key found for this signature in database
GPG Key ID: 23E6737B1374A24A

View File

@ -0,0 +1,40 @@
import * as chai from 'chai';
import 'mocha';
import { constants } from '../src/constants';
import { RfqMakerBlacklist } from '../src/utils/rfq_maker_blacklist';
import { chaiSetup } from './utils/chai_setup';
chaiSetup.configure();
const expect = chai.expect;
describe('RfqMakerBlacklist', () => {
it('does blacklist', async () => {
const blacklistDurationMinutes = 1;
const timeoutStreakThreshold = 3;
const blacklist = new RfqMakerBlacklist(blacklistDurationMinutes, timeoutStreakThreshold);
blacklist.logTimeoutOrLackThereof('makerA', true);
blacklist.logTimeoutOrLackThereof('makerA', true);
expect(blacklist.isMakerBlacklisted('makerA')).to.be.false();
blacklist.logTimeoutOrLackThereof('makerA', true);
const sleepTimeMs = 10;
await new Promise<void>(r => {
setTimeout(r, sleepTimeMs);
});
expect(blacklist.isMakerBlacklisted('makerA')).to.be.true();
});
it('does unblacklist', async () => {
const blacklistDurationMinutes = 0.1;
const timeoutStreakThreshold = 3;
const blacklist = new RfqMakerBlacklist(blacklistDurationMinutes, timeoutStreakThreshold);
blacklist.logTimeoutOrLackThereof('makerA', true);
blacklist.logTimeoutOrLackThereof('makerA', true);
blacklist.logTimeoutOrLackThereof('makerA', true);
expect(blacklist.isMakerBlacklisted('makerA')).to.be.true();
await new Promise<void>(r => {
setTimeout(r, blacklistDurationMinutes * constants.ONE_MINUTE_MS);
});
expect(blacklist.isMakerBlacklisted('makerA')).to.be.false();
});
});