CrushedPixel

Untitled

Feb 10th, 2017
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { expect } from "chai";
  2. import * as redisCon from "../../../../src/persistence/redis/index";
  3. import { suite, test, timeout } from "mocha-typescript";
  4. import * as AtomicTimer from "../../../../src/utils/AtomicTimer";
  5.  
  6. const application = "mochaTestApp";
  7.  
  8. @suite class TestApiRequestService {
  9.  
  10.     static connection: redisCon.RedisConnection;
  11.     static readonly initialIncrement: number = 5;
  12.     static readonly secondIncrement: number = 12;
  13.  
  14.     static before() {
  15.         AtomicTimer.setTestMode(true);
  16.  
  17.         this.connection = redisCon.getConnection();
  18.  
  19.         // before the tests, delete application related entries in redis
  20.         this.connection.connection.eval("for _,k in ipairs(redis.call('keys','app:*')) do redis.call('del',k) end", 0);
  21.     }
  22.  
  23.     @test async "Incrementing Api Request count"() {
  24.         for (let i = 0; i < TestApiRequestService.initialIncrement; i++) {
  25.             await TestApiRequestService.connection.services.ApiRequest.incrApiRequest(application);
  26.         }
  27.  
  28.         const result: number = await TestApiRequestService.connection.services.ApiRequest.getApiRequests(application);
  29.  
  30.         expect(result).to.equal(TestApiRequestService.initialIncrement);
  31.     }
  32.  
  33.     @test async "Api Request count stays the same after ten minutes"() {
  34.         // increment the timer by 10 minutes
  35.         AtomicTimer.offsetTimer(10 * 60 * 1000);
  36.  
  37.         const result: number = await TestApiRequestService.connection.services.ApiRequest.getApiRequests(application);
  38.         expect(result).to.equal(TestApiRequestService.initialIncrement);
  39.     }
  40.  
  41.     static after() {
  42.         AtomicTimer.setTestMode(false);
  43.     }
  44.  
  45. }
Advertisement
Add Comment
Please, Sign In to add comment