-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.js
72 lines (56 loc) · 1.98 KB
/
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
jest.mock('tneu-news-parser');
const nock = require('nock');
const news = require('tneu-news-parser');
const index = require('.');
news.parseArticle.mockImplementation(() => ({}));
news.parseArticleSnippets.mockImplementation(() => [{}, {}, {}, {}, {}]);
afterEach(() => {
nock.cleanAll();
});
it('should define two methods', () => {
expect(index.getArticle).toBeInstanceOf(Function);
expect(index.getSnippets).toBeInstanceOf(Function);
});
it('should make request to tneu to get list of snippets', () => {
const api = nock('http://www.tneu.edu.ua').get(/\/news/).reply(200);
return index.getSnippets().then(() => {
expect(api.isDone()).toBeTruthy();
});
});
it('should make request for news snippets with passed page number', () => {
const api = nock('http://www.tneu.edu.ua')
.get(/\/news/)
.reply(200, uri => {
expect(uri).toBe('/news/page/3');
});
return index.getSnippets(3).then(() => {
expect(api.isDone()).toBeTruthy();
});
});
it('should call parser to get list of snippets', () => {
nock('http://www.tneu.edu.ua').get(/\/news/).reply(200);
return index.getSnippets().then(() => {
expect(news.parseArticleSnippets).toBeCalled();
});
});
it('should return a requested number of snippets', () => {
nock('http://www.tneu.edu.ua').get(/\/news/).reply(200);
return index.getSnippets(null, 3).then(snippets => {
expect(snippets).toHaveLength(3);
});
});
it('should make request to tneu to get article', () => {
const url = 'http://www.tneu.edu.ua/news/9585-v-profkomi-studentiv';
const api = nock('http://www.tneu.edu.ua').get(/\/news*/).reply(200);
return index.getArticle(url)
.then(() => {
expect(api.isDone()).toBeTruthy();
});
});
it('should reject an error if article not found', () => {
const url = 'http://www.tneu.edu.ua/news/9585-v-profkomi-studentiv';
nock('http://www.tneu.edu.ua').get(/\/news*/).reply(404);
return index.getArticle(url).catch(error => {
expect(error.statusCode).toBe(404);
});
});