Pausable.test.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. const assertRevert = require('./helpers/assertRevert');
  2. const PausableMock = artifacts.require('mocks/PausableMock.sol');
  3. contract('Pausable', function (accounts) {
  4. it('can perform normal process in non-pause', async function () {
  5. let Pausable = await PausableMock.new();
  6. let count0 = await Pausable.count();
  7. assert.equal(count0, 0);
  8. await Pausable.normalProcess();
  9. let count1 = await Pausable.count();
  10. assert.equal(count1, 1);
  11. });
  12. it('can not perform normal process in pause', async function () {
  13. let Pausable = await PausableMock.new();
  14. await Pausable.pause();
  15. let count0 = await Pausable.count();
  16. assert.equal(count0, 0);
  17. try {
  18. await Pausable.normalProcess();
  19. assert.fail('should have thrown before');
  20. } catch (error) {
  21. assertRevert(error);
  22. }
  23. let count1 = await Pausable.count();
  24. assert.equal(count1, 0);
  25. });
  26. it('can not take drastic measure in non-pause', async function () {
  27. let Pausable = await PausableMock.new();
  28. try {
  29. await Pausable.drasticMeasure();
  30. assert.fail('should have thrown before');
  31. } catch (error) {
  32. assertRevert(error);
  33. }
  34. const drasticMeasureTaken = await Pausable.drasticMeasureTaken();
  35. assert.isFalse(drasticMeasureTaken);
  36. });
  37. it('can take a drastic measure in a pause', async function () {
  38. let Pausable = await PausableMock.new();
  39. await Pausable.pause();
  40. await Pausable.drasticMeasure();
  41. let drasticMeasureTaken = await Pausable.drasticMeasureTaken();
  42. assert.isTrue(drasticMeasureTaken);
  43. });
  44. it('should resume allowing normal process after pause is over', async function () {
  45. let Pausable = await PausableMock.new();
  46. await Pausable.pause();
  47. await Pausable.unpause();
  48. await Pausable.normalProcess();
  49. let count0 = await Pausable.count();
  50. assert.equal(count0, 1);
  51. });
  52. it('should prevent drastic measure after pause is over', async function () {
  53. let Pausable = await PausableMock.new();
  54. await Pausable.pause();
  55. await Pausable.unpause();
  56. try {
  57. await Pausable.drasticMeasure();
  58. assert.fail('should have thrown before');
  59. } catch (error) {
  60. assertRevert(error);
  61. }
  62. const drasticMeasureTaken = await Pausable.drasticMeasureTaken();
  63. assert.isFalse(drasticMeasureTaken);
  64. });
  65. });