File tree Expand file tree Collapse file tree 2 files changed +49
-0
lines changed
Expand file tree Collapse file tree 2 files changed +49
-0
lines changed Original file line number Diff line number Diff line change 1+ import { throwError } from 'rxjs' ;
2+
3+ import WebexAdapter from './WebexAdapter' ;
4+
5+ /**
6+ * This is a base class that defines the interface that maps activity data.
7+ * Developers that want to extend `ActivityAdapter` must implement all of its methods,
8+ * adhering to the exact parameters and structure of the returned objects.
9+ */
10+ export default class ActivityAdapter extends WebexAdapter {
11+ /**
12+ * Returns an observable that emits message data of the given ID.
13+ *
14+ * @param {string } ID ID of the message to get.
15+ * @returns {Observable.<Activity> }
16+ * @memberof ActivityAdapter
17+ */
18+ // eslint-disable-next-line no-unused-vars
19+ getMessage ( ID ) {
20+ return throwError ( new Error ( 'getMessage(ID) must be defined in ActivityAdapter' ) ) ;
21+ }
22+ }
Original file line number Diff line number Diff line change 1+ import ActivityAdapter from './ActivityAdapter' ;
2+
3+ describe ( 'Activity Adapter Interface' , ( ) => {
4+ let activityAdapter ;
5+
6+ beforeEach ( ( ) => {
7+ activityAdapter = new ActivityAdapter ( ) ;
8+ } ) ;
9+
10+ test ( 'getMessage() returns an observable' , ( ) => {
11+ expect ( rxjs . isObservable ( activityAdapter . getMessage ( ) ) ) . toBeTruthy ( ) ;
12+ } ) ;
13+
14+ test ( 'getMessage() throws a proper error message' , ( done ) => {
15+ activityAdapter . getMessage ( 'msgID' ) . subscribe (
16+ ( ) => { } ,
17+ ( error ) => {
18+ expect ( error . message ) . toBe ( 'getMessage(ID) must be defined in ActivityAdapter' ) ;
19+ done ( ) ;
20+ }
21+ ) ;
22+ } ) ;
23+
24+ afterEach ( ( ) => {
25+ activityAdapter = null ;
26+ } ) ;
27+ } ) ;
You can’t perform that action at this time.
0 commit comments