1
1
'use strict' ;
2
2
3
- /* global chai: false */
3
+ /* global chai, sinon : false */
4
4
5
5
var expect = chai . expect ;
6
6
7
7
describe ( 'The contactEditionForm directive' , function ( ) {
8
8
var $compile , $rootScope , $scope , session ;
9
9
var CONTACT_AVATAR_SIZE , DEFAULT_ADDRESSBOOK_NAME , CONTACT_COLLECTED_ADDRESSBOOK_NAME ;
10
10
var contactAddressbookService , esnConfigMock ;
11
+ let userAPIMock , contactAddressbookDisplayServiceMock ;
11
12
12
13
beforeEach ( function ( ) {
14
+ contactAddressbookDisplayServiceMock = {
15
+ convertShellsToDisplayShells : sinon . spy ( function ( shells ) {
16
+ return shells . map ( shell => ( {
17
+ bookName : shell . bookName ,
18
+ shell : shell
19
+ } ) ) ;
20
+ } ) ,
21
+ sortAddressbookDisplayShells : shells => shells
22
+ } ;
13
23
angular . mock . module ( 'esn.core' ) ;
14
24
angular . mock . module ( 'linagora.esn.contact' ) ;
15
25
angular . mock . module ( function ( $provide ) {
16
26
esnConfigMock = function ( ) {
17
27
return $q . when ( true ) ;
18
28
} ;
19
29
30
+ userAPIMock = {
31
+ user : sinon . mock ( ) . returns (
32
+ $q . when ( {
33
+ data : {
34
+ id : 123456 ,
35
+ firstname : 'john' ,
36
+ lastname : 'doe'
37
+ }
38
+ } )
39
+ )
40
+ } ;
41
+
20
42
$provide . value ( 'esnConfig' , esnConfigMock ) ;
43
+ $provide . value ( 'userAPI' , userAPIMock ) ;
44
+ $provide . value ( 'contactAddressbookDisplayService' , contactAddressbookDisplayServiceMock ) ;
21
45
} ) ;
22
46
} ) ;
23
47
@@ -46,13 +70,25 @@ describe('The contactEditionForm directive', function() {
46
70
urls : [ ]
47
71
} ;
48
72
contactAddressbookService . listAddressbooksUserCanCreateContact = function ( ) {
49
- return $q . when ( [ {
50
- bookName : DEFAULT_ADDRESSBOOK_NAME ,
51
- href : '/addressbooks/userId/' + DEFAULT_ADDRESSBOOK_NAME + '.json'
52
- } , {
53
- bookName : CONTACT_COLLECTED_ADDRESSBOOK_NAME ,
54
- href : '/addressbooks/userId/' + CONTACT_COLLECTED_ADDRESSBOOK_NAME + '.json'
55
- } ] ) ;
73
+ return $q . when ( [
74
+ {
75
+ bookName : DEFAULT_ADDRESSBOOK_NAME ,
76
+ href : '/addressbooks/userId/' + DEFAULT_ADDRESSBOOK_NAME + '.json'
77
+ } ,
78
+ {
79
+ bookName : CONTACT_COLLECTED_ADDRESSBOOK_NAME ,
80
+ href : '/addressbooks/userId/' + CONTACT_COLLECTED_ADDRESSBOOK_NAME + '.json'
81
+ } ,
82
+ {
83
+ bookName : 'shared' ,
84
+ href : '/addressbooks/123456/123456.json' ,
85
+ group : undefined ,
86
+ isSubscription : true ,
87
+ source : {
88
+ bookId : 123456
89
+ }
90
+ }
91
+ ] ) ;
56
92
} ;
57
93
} ) ) ;
58
94
@@ -73,4 +109,10 @@ describe('The contactEditionForm directive', function() {
73
109
74
110
expect ( element . isolateScope ( ) . avatarSize ) . to . equal ( CONTACT_AVATAR_SIZE . bigger ) ;
75
111
} ) ;
112
+
113
+ it ( 'should try to load the user using the userId collected from the shared addressbook' , ( ) => {
114
+ initDirective ( $scope ) ;
115
+
116
+ expect ( userAPIMock . user ) . to . have . been . calledWith ( 123456 ) ;
117
+ } ) ;
76
118
} ) ;
0 commit comments