forked from webex/components
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPeopleJSONAdapter.test.js
89 lines (77 loc) · 2.18 KB
/
PeopleJSONAdapter.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import people from '../data/people';
import PeopleJSONAdapter from './PeopleJSONAdapter';
describe('People JSON Adapter Interface', () => {
let personID;
let peopleJSONAdapter;
beforeEach(() => {
[personID] = Object.keys(people);
peopleJSONAdapter = new PeopleJSONAdapter(people);
});
afterEach(() => {
peopleJSONAdapter = null;
});
describe('getMe()', () => {
test('returns default person data', (done) => {
peopleJSONAdapter.getMe().subscribe((data) => {
expect(data).toEqual(people[personID]);
done();
});
});
});
describe('getPerson()', () => {
test('returns a person data', (done) => {
peopleJSONAdapter.getPerson(personID).subscribe((data) => {
expect(data).toEqual(people[personID]);
done();
});
});
test('throws a proper error message', (done) => {
const wrongPersonID = 'wrongPersonID';
peopleJSONAdapter.getPerson(wrongPersonID).subscribe(
() => {},
(error) => {
expect(error.message).toBe(`Could not find person with ID "${wrongPersonID}"`);
done();
},
);
});
test('completes the observable', (done) => {
peopleJSONAdapter.getPerson(personID).subscribe(
() => {},
() => {},
() => {
expect(true).toBeTruthy();
done();
},
);
});
});
describe('searchPeople()', () => {
test('returns people list on search', (done) => {
peopleJSONAdapter.searchPeople(personID).subscribe((data) => {
expect(data).toEqual(people[personID]);
done();
});
});
test('throws an error message', (done) => {
const wrongPersonName = 'wrongPersonName';
peopleJSONAdapter.searchPeople(wrongPersonName).subscribe(
() => {},
(error) => {
expect(error.message).toBe(`could not find the person with query${wrongPersonName}`);
done();
},
);
});
test('completes the observable', (done) => {
peopleJSONAdapter.searchPeople(personID).subscribe(
() => {},
() => {},
() => {
expect(true).toBeTruthy();
done();
},
);
});
});
});