Pausable.js 2.3 KB

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