Skip to content

Commit acb4d2a

Browse files
authored
Merge pull request #9 from json-api/url-port
Fixes #8
2 parents 2634a50 + fc54c81 commit acb4d2a

2 files changed

Lines changed: 37 additions & 1 deletion

File tree

src/lib/url/url.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ export const compileJsonApiUrl = ({
168168
.map(name => compileQueryParameter(name, query))
169169
.join('&');
170170

171-
return `${protocol}//${host}${port.length ? ':' + port : ''}${path}${
171+
return `${protocol}//${host}${path}${
172172
fragment.length ? '#' + fragment : ''
173173
}${queryString.length ? '?' + queryString : ''}`;
174174
};

src/lib/url/url.test.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,24 @@ import {
77
const baseUrl = 'http://drupal.test/jsonapi';
88
const articleUrl = `${baseUrl}/node/article`;
99

10+
const local = {
11+
url: 'http://127.0.0.1:8080/',
12+
parsed: {
13+
protocol: 'http:',
14+
host: '127.0.0.1:8080',
15+
port: '8080',
16+
path: '/',
17+
query: {
18+
filter: {},
19+
include: [],
20+
fields: {},
21+
page: {},
22+
sort: [],
23+
},
24+
fragment: '',
25+
}
26+
}
27+
1028
const base = {
1129
url: 'http://drupal.test/jsonapi',
1230
parsed: {
@@ -18,6 +36,7 @@ const base = {
1836
filter: {},
1937
include: [],
2038
fields: {},
39+
page: {},
2140
sort: [],
2241
},
2342
fragment: '',
@@ -35,6 +54,7 @@ const article = {
3554
filter: {},
3655
include: [],
3756
fields: {},
57+
page: {},
3858
sort: [],
3959
},
4060
fragment: '',
@@ -53,6 +73,7 @@ const include = {
5373
filter: {},
5474
include: ['uid'],
5575
fields: {},
76+
page: {},
5677
sort: [],
5778
},
5879
fragment: '',
@@ -66,6 +87,7 @@ const include = {
6687
filter: {},
6788
include: ['uid', 'node_type'],
6889
fields: {},
90+
page: {},
6991
sort: [],
7092
},
7193
fragment: '',
@@ -91,6 +113,7 @@ const fields = {
91113
fields: {
92114
'node--article': new Set(['drupal_internal__nid']),
93115
},
116+
page: {},
94117
sort: [],
95118
},
96119
fragment: '',
@@ -106,6 +129,7 @@ const fields = {
106129
fields: {
107130
'node--article': new Set(['drupal_internal__nid', 'status']),
108131
},
132+
page: {},
109133
sort: [],
110134
},
111135
fragment: '',
@@ -122,6 +146,7 @@ const fields = {
122146
'node--article': new Set(['drupal_internal__nid']),
123147
'user_role--user_role': new Set(['drupal_internal__id']),
124148
},
149+
page: {},
125150
sort: [],
126151
},
127152
fragment: '',
@@ -151,6 +176,7 @@ const filters = {
151176
filter: { foo: 'bar' },
152177
include: [],
153178
fields: {},
179+
page: {},
154180
sort: [],
155181
},
156182
fragment: '',
@@ -164,6 +190,7 @@ const filters = {
164190
filter: { foo: { bar: 'baz' } },
165191
include: [],
166192
fields: {},
193+
page: {},
167194
sort: [],
168195
},
169196
fragment: '',
@@ -177,6 +204,7 @@ const filters = {
177204
filter: { foo: new Set(['bar', 'baz']) },
178205
include: [],
179206
fields: {},
207+
page: {},
180208
sort: [],
181209
},
182210
fragment: '',
@@ -190,6 +218,7 @@ const filters = {
190218
filter: { foo: { bar: 'qux', baz: 'quux' } },
191219
include: [],
192220
fields: {},
221+
page: {},
193222
sort: [],
194223
},
195224
fragment: '',
@@ -203,6 +232,7 @@ const filters = {
203232
filter: { foo: { bar: new Set(['baz', 'qux']) } },
204233
include: [],
205234
fields: {},
235+
page: {},
206236
sort: [],
207237
},
208238
fragment: '',
@@ -221,6 +251,7 @@ const filters = {
221251
},
222252
include: [],
223253
fields: {},
254+
page: {},
224255
sort: [],
225256
},
226257
fragment: '',
@@ -242,6 +273,7 @@ const filters = {
242273
},
243274
include: [],
244275
fields: {},
276+
page: {},
245277
sort: [],
246278
},
247279
fragment: '',
@@ -263,6 +295,7 @@ const filters = {
263295
},
264296
include: [],
265297
fields: {},
298+
page: {},
266299
sort: [],
267300
},
268301
fragment: '',
@@ -304,6 +337,7 @@ const complex = {
304337
'node_type--node_type': new Set(['drupal_internal__type', 'name']),
305338
'user_role--user_role': new Set(['drupal_internal__id']),
306339
},
340+
page: {},
307341
sort: [],
308342
},
309343
fragment: '',
@@ -314,6 +348,7 @@ const complex = {
314348
describe('Parse JSON:API url from url string', () => {
315349
test('Top Level url', () => {
316350
expect(parseJsonApiUrl(base.url)).toEqual(base.parsed);
351+
expect(parseJsonApiUrl(local.url)).toEqual(local.parsed);
317352
});
318353

319354
test('Collection url', () => {
@@ -356,6 +391,7 @@ describe('Parse JSON:API url from url string', () => {
356391
describe('Compile url from JSON:API url object', () => {
357392
test('Top level url', () => {
358393
expect(compileJsonApiUrl(base.parsed)).toBe(base.url);
394+
expect(compileJsonApiUrl(local.parsed)).toBe(local.url);
359395
});
360396

361397
test('Collection url', () => {

0 commit comments

Comments
 (0)