UNPKG

3.38 kBJavaScriptView Raw
1'use strict';
2/*jshint asi: true */
3
4var test = require('tape').test
5var parse = require('..')
6
7test('parsing a proper link header with next and last', function (t) {
8 var link =
9 '<https://api.github.com/user/9287/repos?client_id=1&client_secret=2&page=2&per_page=100>; rel="next", ' +
10 '<https://api.github.com/user/9287/repos?client_id=1&client_secret=2&page=3&per_page=100>; rel="last"'
11
12 var res = parse(link)
13 t.deepEqual(
14 parse(link)
15 , { next:
16 { client_id: '1',
17 client_secret: '2',
18 page: '2',
19 per_page: '100',
20 rel: 'next',
21 url: 'https://api.github.com/user/9287/repos?client_id=1&client_secret=2&page=2&per_page=100' },
22 last:
23 { client_id: '1',
24 client_secret: '2',
25 page: '3',
26 per_page: '100',
27 rel: 'last',
28 url: ' https://api.github.com/user/9287/repos?client_id=1&client_secret=2&page=3&per_page=100' } }
29 , 'parses out link, page and perPage for next and last'
30 )
31 t.end()
32})
33
34test('parsing a proper link header with next, prev and last', function (t) {
35 var linkHeader =
36 '<https://api.github.com/user/9287/repos?page=3&per_page=100>; rel="next", ' +
37 '<https://api.github.com/user/9287/repos?page=1&per_page=100>; rel="prev", ' +
38 '<https://api.github.com/user/9287/repos?page=5&per_page=100>; rel="last"'
39
40 var res = parse(linkHeader)
41
42 t.deepEqual(
43 parse(linkHeader)
44 , { next:
45 { page: '3',
46 per_page: '100',
47 rel: 'next',
48 url: 'https://api.github.com/user/9287/repos?page=3&per_page=100' },
49 prev:
50 { page: '1',
51 per_page: '100',
52 rel: 'prev',
53 url: ' https://api.github.com/user/9287/repos?page=1&per_page=100' },
54 last:
55 { page: '5',
56 per_page: '100',
57 rel: 'last',
58 url: ' https://api.github.com/user/9287/repos?page=5&per_page=100' } }
59 , 'parses out link, page and perPage for next, prev and last'
60 )
61 t.end()
62})
63
64test('parsing an empty link header', function (t) {
65 var linkHeader = ''
66 var res = parse(linkHeader)
67
68 t.equal( parse(linkHeader) , null , 'returns null')
69 t.end()
70})
71
72test('parsing a proper link header with next and a link without rel', function (t) {
73 var linkHeader =
74 '<https://api.github.com/user/9287/repos?page=3&per_page=100>; rel="next", ' +
75 '<https://api.github.com/user/9287/repos?page=1&per_page=100>; pet="cat", '
76
77 var res = parse(linkHeader)
78
79 t.deepEqual(
80 parse(linkHeader)
81 , { next:
82 { page: '3',
83 per_page: '100',
84 rel: 'next',
85 url: 'https://api.github.com/user/9287/repos?page=3&per_page=100' } }
86 , 'parses out link, page and perPage for next only'
87 )
88 t.end()
89})
90
91test('parsing a proper link header with next and properties besides rel', function (t) {
92 var linkHeader =
93 '<https://api.github.com/user/9287/repos?page=3&per_page=100>; rel="next"; hello="world"; pet="cat"'
94
95 var res = parse(linkHeader)
96
97 t.deepEqual(
98 parse(linkHeader)
99 , { next:
100 { page: '3',
101 per_page: '100',
102 rel: 'next',
103 hello: 'world',
104 pet: 'cat',
105 url: 'https://api.github.com/user/9287/repos?page=3&per_page=100' } }
106 , 'parses out link, page and perPage for next and all other properties'
107 )
108 t.end()
109})