Skip to content

Commit

Permalink
feat(api): HZN-1357 tests for uri.js
Browse files Browse the repository at this point in the history
  • Loading branch information
smith-opennms committed Aug 21, 2018
1 parent d354040 commit e98cfa4
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 2 deletions.
6 changes: 4 additions & 2 deletions src/api/OnmsServer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,10 +70,12 @@ export class OnmsServer {
if (forFragment === undefined) {
return this.url;
}
let uri = URI(this.url);
if (forFragment.indexOf('/') === 0 || forFragment.indexOf('http') === 0) {
return forFragment;
uri = URI(forFragment);
} else {
uri = uri.segment(forFragment);
}
let uri = URI(this.url).segment(forFragment);
if (withQuery !== undefined) {
uri = uri.addQuery(withQuery);
}
Expand Down
15 changes: 15 additions & 0 deletions test/api/OnmsServer.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,21 @@ describe('Given an instance of OnmsServer...', () => {
expect(server.resolveURL('foo')).toEqual(SERVER_URL + 'foo');
expect(server.resolveURL('foo/')).toEqual(SERVER_URL + 'foo');
});
it('URL starting with "/" are returned as-is.', () => {
expect(server.resolveURL('/rest/foo/')).toEqual('/rest/foo/');
});
it('Absolute with query appends query', () => {
expect(server.resolveURL('/rest/foo', 'foo=bar')).toEqual('/rest/foo?foo%3Dbar');
});
it('multi segment urls are handled.', () => {
expect(server.resolveURL('rest/foo/')).toEqual(SERVER_URL + 'rest/foo');
});
it('Colons are not escaped', () => {
expect(server.resolveURL('rest/foo/A:B:0.0.0.0:C')).toEqual(SERVER_URL + 'rest/foo/A:B:0.0.0.0:C');
});
it('Escape forward slashes', () => {
expect(server.resolveURL('rest/S%2FA%3AB%3A0.0.0.0%3AC')).toEqual(SERVER_URL + 'rest/S%2FA:B:0.0.0.0:C');
});
it('it should have a "host" property', () => {
expect(server.host).toBeDefined();
expect(server.host).toEqual('demo.opennms.org');
Expand Down

0 comments on commit e98cfa4

Please sign in to comment.