Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Yoann HOUPERT
hublot
Commits
f786813b
Commit
f786813b
authored
May 16, 2017
by
Tom JORQUERA
Browse files
Merge branch 'issue-5' into 'master'
client: Update controller API Closes #5 See merge request !7
parents
dd944083
30455a1b
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
118 additions
and
9 deletions
+118
-9
client/controller/controller.js
client/controller/controller.js
+9
-9
client/controller/controller.test.js
client/controller/controller.test.js
+109
-0
No files found.
client/controller/controller.js
View file @
f786813b
...
...
@@ -7,7 +7,6 @@
/* exported robotController */
const
room
=
arguments
[
0
];
const
name
=
arguments
[
1
];
robotController
=
{
$scope
:
angular
.
element
(
document
.
body
).
scope
().
$root
,
...
...
@@ -38,20 +37,21 @@ robotController = {
}
}
return
res
;
}
},
onAttendeePush
:
()
=>
{},
onAttendeeRemove
:
()
=>
{},
onAttendeeUpdate
:
()
=>
{}
};
robotController
.
$scope
.
$on
(
'
conferencestate:attendees:push
'
,
(
event
,
data
)
=>
{
console
.
log
(
'
### someone connected %j %j
'
,
event
,
data
);
console
.
log
(
'
RemoteMediaStream %j
'
,
robotController
.
getRemoteStream
(
data
.
easyrtcid
));
robotController
.
chatService
.
sendMessage
({
author
:
name
,
displayName
:
name
,
message
:
'
Hello!
'
});
robotController
.
onAttendeePush
(
event
,
data
);
});
robotController
.
$scope
.
$on
(
'
conferencestate:attendees:remove
'
,
(
event
,
data
)
=>
{
console
.
log
(
'
### someone leaved %j %j
'
,
event
,
data
);
robotController
.
chatService
.
sendMessage
({
author
:
name
,
displayName
:
name
,
message
:
'
Goodbye!
'
});
robotController
.
onAttendeeRemove
(
event
,
data
);
});
robotController
.
$scope
.
$on
(
'
attendee:update
'
,
(
event
,
data
)
=>
{
console
.
log
(
'
### received update %j %j
'
,
event
,
data
);
robotController
.
$scope
.
$on
(
'
conferencestate:
attendee
s
:update
'
,
(
event
,
data
)
=>
{
robotController
.
onAttendeeUpdate
(
event
,
data
);
});
client/controller/controller.test.js
0 → 100644
View file @
f786813b
'
use strict
'
;
// Let's do some simple mocking of client-side services
const
angular
=
{
registeredEvents
:
{},
element
:
()
=>
({
scope
:
()
=>
({
$root
:
{
$on
:
(
event
,
f
)
=>
{
angular
.
registeredEvents
[
event
]
=
f
;
}
}
}),
injector
:
()
=>
({
get
:
()
=>
{
return
{};
}
})
})
};
const
easyRTCMock
=
participants
=>
({
getRoomOccupantsAsArray
:
()
=>
participants
,
getRemoteStream
:
participant
=>
({
origin
:
participant
})
});
const
document
=
{
body
:
{}
};
describe
(
'
client/controller
'
,
()
=>
{
beforeEach
(()
=>
{
global
.
document
=
document
;
global
.
angular
=
angular
;
global
.
easyrtc
=
easyRTCMock
([
'
p1
'
,
'
p2
'
,
'
p3
'
]);
/* eslint-disable import/no-unassigned-import */
require
(
'
./controller.js
'
);
/* eslint-enable */
});
test
(
'
should set robotController global
'
,
()
=>
{
expect
(
global
.
robotController
).
toBeDefined
();
});
test
(
'
should return the correct participants
'
,
()
=>
{
const
participants
=
global
.
robotController
.
getParticipants
();
expect
(
participants
).
toEqual
(
expect
.
arrayContaining
([
'
p1
'
,
'
p2
'
,
'
p3
'
]));
expect
(
participants
).
toHaveLength
(
3
);
});
test
(
'
should return the Streams of the participant
'
,
()
=>
{
const
stream
=
global
.
robotController
.
getRemoteStream
(
'
p2
'
);
expect
(
stream
.
origin
).
toBe
(
'
p2
'
);
});
test
(
'
should return the Streams of all the participants
'
,
()
=>
{
const
streams
=
global
.
robotController
.
getRemoteStreams
();
expect
(
streams
).
toHaveProperty
(
'
p1
'
);
expect
(
streams
).
toHaveProperty
(
'
p2
'
);
expect
(
streams
).
toHaveProperty
(
'
p3
'
);
});
test
(
'
should call listener on push events
'
,
()
=>
{
let
eventFired
=
false
;
global
.
robotController
.
onAttendeePush
=
()
=>
{
eventFired
=
true
;
};
expect
(
angular
.
registeredEvents
).
toHaveProperty
(
'
conferencestate:attendees:push
'
);
expect
(
eventFired
).
toBe
(
false
);
angular
.
registeredEvents
[
'
conferencestate:attendees:push
'
]({});
expect
(
eventFired
).
toBe
(
true
);
});
test
(
'
should call listener on remove events
'
,
()
=>
{
let
eventFired
=
false
;
global
.
robotController
.
onAttendeeRemove
=
()
=>
{
eventFired
=
true
;
};
expect
(
angular
.
registeredEvents
).
toHaveProperty
(
'
conferencestate:attendees:remove
'
);
expect
(
eventFired
).
toBe
(
false
);
angular
.
registeredEvents
[
'
conferencestate:attendees:remove
'
]({});
expect
(
eventFired
).
toBe
(
true
);
});
test
(
'
should call listener on update events
'
,
()
=>
{
let
eventFired
=
false
;
global
.
robotController
.
onAttendeeUpdate
=
()
=>
{
eventFired
=
true
;
};
expect
(
angular
.
registeredEvents
).
toHaveProperty
(
'
conferencestate:attendees:update
'
);
expect
(
eventFired
).
toBe
(
false
);
angular
.
registeredEvents
[
'
conferencestate:attendees:update
'
]({});
expect
(
eventFired
).
toBe
(
true
);
});
});
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment