UNPKG

2.34 kBJavaScriptView Raw
1'use strict';
2
3const assert = require('assert');
4const Request = require('../lib/request');
5
6const HOST = 'https://example.com';
7
8describe('Request', () => {
9 describe('.baseUrl', () => {
10 it('sets the base URL', () => {
11 const request = Request.create();
12 request.baseUrl(HOST);
13 assert.equal(request._baseUrl, HOST);
14 });
15
16 it('sets the base with queries', () => {
17 const request = Request.create();
18 request.baseUrl(HOST + '?a=1&n=2');
19 assert.equal(request._baseUrl, HOST + '?a=1&n=2');
20 });
21 });
22
23 describe('.getUrl', () => {
24 it('returns an url', () => {
25 const request = Request.create();
26 request.baseUrl(HOST);
27
28 assert.equal(request.getUrl(), HOST);
29 });
30
31 it('returns an url including query strings', () => {
32 const request = Request.create();
33 request
34 .baseUrl(HOST)
35 .addQuery('a', 1)
36 .addQuery('b', 2);
37
38 assert.equal(request.getUrl(), HOST + '?a=1&b=2');
39 });
40
41 it('query object gets appended to url queries', () => {
42 const request = Request.create();
43 request
44 .baseUrl(HOST + '?a=1&b=2')
45 .addQuery('a', 10)
46 .addQuery('b', 20);
47
48 assert.equal(request.getUrl(), HOST + '?a=1&b=2&a=10&b=20');
49 });
50
51 it('supports multiple queries', () => {
52 const request = Request.create();
53 request.baseUrl(HOST + '?a=1&a=2').addQuery('a', 3);
54
55 assert.equal(request.getUrl(), HOST + '?a=1&a=2&a=3');
56 });
57
58 it('uri-encodes query string parameters', () => {
59 const request = Request.create();
60 request
61 .baseUrl(HOST)
62 .addQuery('a', 10)
63 .addQuery('b', '#?& !');
64
65 assert.equal(request.getUrl(), HOST + '?a=10&b=%23%3F%26%20%21');
66 });
67
68 it('uri-encodes multi-parameter queries', () => {
69 const request = Request.create();
70 request.baseUrl(HOST).addQuery('a', [1, 2]);
71 assert.equal(request.getUrl(), HOST + '?a%5B0%5D=1&a%5B1%5D=2');
72 });
73 });
74
75 describe('.getRequestKey', () => {
76 it('returns a cacheable key for a request', () => {
77 const request = Request.create();
78
79 request
80 .method('GET')
81 .baseUrl(HOST)
82 .addQuery('a', 1)
83 .addQuery('b', 2);
84
85 const key = `GET:${HOST}?a=1&b=2`;
86 assert.equal(request.getRequestKey(), key);
87 });
88 });
89});