UNPKG

2.2 kBJavaScriptView Raw
1var Finder = require('../lib/finder');
2
3describe('Finder', function () {
4 var dbModel;
5 var finder;
6 var expectedCode;
7 var testNumber = '83912332211';
8 beforeEach(function () {
9 function generateRandomCode() {
10 var min = 24;
11 var max = 95;
12 return Math.round(Math.random() * (max - min) + min);
13 }
14
15 expectedCode = generateRandomCode();
16 });
17 it('return code if there is appropriate document in db', function (done) {
18 var expectedQuery = {
19 code: '391',
20 begin: {
21 $lte: '2332211'
22 },
23 end: {
24 $gte: '2332211'
25 }
26 };
27 dbModel = {
28 findOne: function (query, callback) {
29 expect(query).toEqual(expectedQuery);
30 callback(null, {
31 region: {
32 code: expectedCode
33 }
34 });
35 }
36 };
37 finder = new Finder(dbModel);
38 var resultPromise = finder.findCodeForNumber(testNumber);
39 resultPromise.then(function (code) {
40 expect(code).toBe(expectedCode);
41 done();
42 });
43 });
44 it('return "NULL" if there is no appropriate document in db', function (done) {
45 dbModel = {
46 findOne: function (query, callback) {
47 callback(null, null);
48 }
49 };
50 finder = new Finder(dbModel);
51 var resultPromise = finder.findCodeForNumber(testNumber);
52 resultPromise.then(function (code) {
53 expect(code).toBe('NULL');
54 done();
55 });
56 });
57 it('promise call reject if findOne return error', function (done) {
58 var expectedErrorMessage = 'test error';
59 dbModel = {
60 findOne: function (query, callback) {
61 callback(new Error(expectedErrorMessage));
62 }
63 };
64 finder = new Finder(dbModel);
65 var resultPromise = finder.findCodeForNumber(testNumber);
66 resultPromise.fail(function (err) {
67 expect(err.message).toBe(expectedErrorMessage);
68 done();
69 });
70 });
71});