UNPKG

3.13 kBtext/coffeescriptView Raw
1fixtureLoader = require '../src/fixtures-loader'
2sinon = require 'sinon'
3sinonChai = require 'sinon-chai'
4chai = require 'chai'
5expect = chai.expect
6chai.use(sinonChai)
7
8describe 'loopback-fixtures', ->
9
10 sandbox = null
11
12 beforeEach (done) ->
13 sandbox = sinon.sandbox.create()
14 done()
15
16 afterEach (done) ->
17 sandbox.restore()
18 done()
19
20 describe 'getRandomMatchingObject method', ->
21 fixtureLoader.savedData =
22 group_yellow: id: 1
23 group_red: id: 2
24 blue_team: id: 3
25
26 it 'should give a random matching object (2 results wildcard)', (done) ->
27 pattern = 'group_*'
28 object = fixtureLoader.getRandomMatchingObject pattern
29 expect(object).to.be.oneOf [fixtureLoader.savedData.group_yellow, fixtureLoader.savedData.group_red]
30 done()
31
32 it 'should give a random matching object (1 result with wildcard)', (done) ->
33 pattern = 'blue_.*'
34 object = fixtureLoader.getRandomMatchingObject pattern
35 expect(object).to.eql fixtureLoader.savedData.blue_team
36 done()
37
38 it 'should give a random matching object (1 result with exact pattern)', (done) ->
39 pattern = 'blue_team'
40 object = fixtureLoader.getRandomMatchingObject pattern
41 expect(object).to.eql fixtureLoader.savedData.blue_team
42 done()
43
44 it 'should give a random matching object (no result)', (done) ->
45 pattern = 'no_result.*'
46 object = fixtureLoader.getRandomMatchingObject pattern
47 expect(object).to.be.undefined
48 done()
49
50
51 describe 'replaceReferenceInObjects method', ->
52
53 describe 'should call replaceReferenceInObjects with the right parameters', ->
54
55 beforeEach (done) ->
56 fixtureLoader.savedData =
57 group_yellow: id: 1
58 group_red: id: 2
59 user: groupId: '@group_yellow'
60 done()
61
62 beforeEach (done) ->
63 sandbox.stub(
64 fixtureLoader
65 'getRandomMatchingObject'
66 (pattern) -> fixtureLoader.savedData.group_yellow
67 )
68 done()
69
70 it 'with existing reference', (done) ->
71 fixtureLoader.replaceReferenceInObjects fixtureLoader.savedData.user
72 .then ->
73 expect(fixtureLoader.getRandomMatchingObject).to.have.been.calledWith '^group_yellow$'
74 done()
75
76 it 'and remplace reference key', (done) ->
77 fixtureLoader.replaceReferenceInObjects fixtureLoader.savedData.user
78 .then ->
79 expect(fixtureLoader.savedData.user.groupId).to.eql 1
80 done()
81
82 describe 'should call replaceReferenceInObjects with the right parameters', ->
83 beforeEach (done) ->
84 fixtureLoader.savedData =
85 group_yellow: id: 1
86 group_red: id: 2
87 user: groupId: '@group_blue'
88 done()
89
90 beforeEach (done) ->
91 sandbox.stub(
92 fixtureLoader
93 'getRandomMatchingObject'
94 (pattern) -> undefined
95 )
96 done()
97
98 it 'and raised error', (done) ->
99 fixtureLoader.replaceReferenceInObjects fixtureLoader.savedData.user
100 .then ->
101 done(new Error 'it should not be called')
102 .catch ->
103 done()