Advertisement
Guest User

Untitled

a guest
Oct 17th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* eslint-env mocha */
  2. 'use strict';
  3.  
  4. var assert = require('assert');
  5.  
  6. var robbery = require('./robbery');
  7.  
  8. describe('robbery.getAppropriateMoment()', function () {
  9.     function getMomentFor(time) {
  10.         return robbery.getAppropriateMoment(
  11.             {
  12.                 Danny: [
  13.                     { from: 'ПН 12:00+5', to: 'ПН 17:00+5' },
  14.                     { from: 'ВТ 13:00+5', to: 'ВТ 16:00+5' }
  15.                 ],
  16.                 Rusty: [
  17.                     { from: 'ПН 11:30+5', to: 'ПН 16:30+5' },
  18.                     { from: 'ВТ 13:00+5', to: 'ВТ 16:00+5' }
  19.                 ],
  20.                 Linus: [
  21.                     { from: 'ПН 09:00+3', to: 'ПН 14:00+3' },
  22.                     { from: 'ПН 21:00+3', to: 'ВТ 09:30+3' },
  23.                     { from: 'СР 09:30+3', to: 'СР 15:00+3' }
  24.                 ]
  25.             },
  26.             time,
  27.             { from: '10:00+5', to: '18:00+5' }
  28.         );
  29.     }
  30.  
  31.     function getMomentFor1(time) {
  32.         return robbery.getAppropriateMoment(
  33.             {
  34.                 Danny: [
  35.                     { from: 'ПН 00:00+5', to: 'ВТ 00:10+5' }
  36.                         //ВС 22:00 до ПН 22:10
  37.                 ]
  38.             },
  39.             time,
  40.             { from: '01:00+3', to: '23:59+3' }
  41.         );
  42.     }
  43.  
  44.     it('должен форматировать существующий момент', function () {
  45.         var moment = getMomentFor1(30);
  46.  
  47.         assert.ok(moment.exists());
  48.         assert.strictEqual(
  49.             moment.format('Метим на %DD, старт в %HH:%MM!'),
  50.             'Метим на ВТ, старт в 22:10!'
  51.         );
  52.     });
  53.     it('должен форматировать существующий момент', function () {
  54.         var moment = getMomentFor(90);
  55.  
  56.         assert.ok(moment.exists());
  57.         assert.strictEqual(
  58.             moment.format('Метим на %DD, старт в %HH:%MM!'),
  59.             'Метим на ВТ, старт в 11:30!'
  60.         );
  61.     });
  62.  
  63.     it('должен вернуть пустую строку при форматировании несуществующего момента', function () {
  64.         var moment = getMomentFor(121);
  65.  
  66.         assert.ok(!moment.exists());
  67.         assert.strictEqual(
  68.             moment.format('Метим на %DD, старт в %HH:%MM!'),
  69.             ''
  70.         );
  71.     });
  72.  
  73.     if (robbery.isStar) {
  74.         it('должен перемещаться на более поздний момент [*]', function () {
  75.             var moment = getMomentFor(90);
  76.  
  77.             assert.ok(moment.tryLater());
  78.             assert.strictEqual(moment.format('%DD %HH:%MM'), 'ВТ 16:00');
  79.  
  80.             assert.ok(moment.tryLater());
  81.             assert.strictEqual(moment.format('%DD %HH:%MM'), 'ВТ 16:30');
  82.  
  83.             assert.ok(moment.tryLater());
  84.             assert.strictEqual(moment.format('%DD %HH:%MM'), 'СР 10:00');
  85.         });
  86.  
  87.         it('не должен сдвигать момент, если более позднего нет [*]', function () {
  88.             var moment = getMomentFor(90);
  89.  
  90.             assert.ok(moment.tryLater());
  91.             assert.ok(moment.tryLater());
  92.             assert.ok(moment.tryLater());
  93.  
  94.             assert.ok(!moment.tryLater());
  95.             assert.strictEqual(moment.format('%DD %HH:%MM'), 'СР 10:00');
  96.         });
  97.     }
  98. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement