opennms
Version:
Client API for the OpenNMS network monitoring platform
75 lines (68 loc) • 2.88 kB
text/typescript
declare const describe, beforeEach, it, expect;
import {Client} from '../../src/Client';
import {OnmsAuthConfig} from '../../src/api/OnmsAuthConfig';
import {OnmsServer} from '../../src/api/OnmsServer';
const SERVER_NAME='Demo';
const SERVER_URL='http://demo.opennms.org/opennms/';
const SERVER_USER='demo';
const SERVER_PASSWORD='demo';
var server, auth;
describe('Given an instance of OnmsServer...', () => {
beforeEach(() => {
auth = new OnmsAuthConfig(SERVER_USER, SERVER_PASSWORD);
server = new OnmsServer(SERVER_NAME, SERVER_URL, auth);
});
describe('When I have a server with just an ID...', () => {
it('it should have an ID', () => {
expect(server.id).toBeDefined();
expect(new OnmsServer().id.length).toEqual(36);
});
it('it should have no URL', () => {
expect(new OnmsServer().url).toBeUndefined();
});
it('it should return undefined when asking for a relative URL without a URL set', () => {
expect(new OnmsServer().resolveURL()).toBeUndefined();
});
it('it should not have a "host" property', () => {
expect(new OnmsServer().host).toBeUndefined();
});
});
describe('When I have a properly-configured server object...', () => {
it('it should have an ID', () => {
expect(server.id).toBeDefined();
expect(server.id.length).toEqual(36);
});
it('it should have a URL', () => {
expect(server.url).toBeDefined();
expect(server.url).toEqual(SERVER_URL);
});
it('it should return the base URL when undefined is passed to resolveURL()', () => {
expect(server.resolveURL()).toBeDefined();
expect(server.resolveURL()).toEqual(SERVER_URL);
});
it('it should return a new URL when a value is passed to resolveURL()', () => {
expect(server.resolveURL('foo')).toBeDefined();
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');
});
});
});