Pausable.test.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. const { assertRevert } = require('../helpers/assertRevert');
  2. const PausableMock = artifacts.require('PausableMock');
  3. contract('Pausable', function (accounts) {
  4. beforeEach(async function () {
  5. this.Pausable = await PausableMock.new();
  6. });
  7. it('can perform normal process in non-pause', async function () {
  8. const count0 = await this.Pausable.count();
  9. assert.equal(count0, 0);
  10. await this.Pausable.normalProcess();
  11. const count1 = await this.Pausable.count();
  12. assert.equal(count1, 1);
  13. });
  14. it('can not perform normal process in pause', async function () {
  15. await this.Pausable.pause();
  16. const count0 = await this.Pausable.count();
  17. assert.equal(count0, 0);
  18. await assertRevert(this.Pausable.normalProcess());
  19. const count1 = await this.Pausable.count();
  20. assert.equal(count1, 0);
  21. });
  22. it('can not take drastic measure in non-pause', async function () {
  23. await assertRevert(this.Pausable.drasticMeasure());
  24. const drasticMeasureTaken = await this.Pausable.drasticMeasureTaken();
  25. assert.isFalse(drasticMeasureTaken);
  26. });
  27. it('can take a drastic measure in a pause', async function () {
  28. await this.Pausable.pause();
  29. await this.Pausable.drasticMeasure();
  30. const drasticMeasureTaken = await this.Pausable.drasticMeasureTaken();
  31. assert.isTrue(drasticMeasureTaken);
  32. });
  33. it('should resume allowing normal process after pause is over', async function () {
  34. await this.Pausable.pause();
  35. await this.Pausable.unpause();
  36. await this.Pausable.normalProcess();
  37. const count0 = await this.Pausable.count();
  38. assert.equal(count0, 1);
  39. });
  40. it('should prevent drastic measure after pause is over', async function () {
  41. await this.Pausable.pause();
  42. await this.Pausable.unpause();
  43. await assertRevert(this.Pausable.drasticMeasure());
  44. const drasticMeasureTaken = await this.Pausable.drasticMeasureTaken();
  45. assert.isFalse(drasticMeasureTaken);
  46. });
  47. });