mirror of
https://github.com/weaveworks/scope.git
synced 2026-03-03 18:20:27 +00:00
* Initial top level control. * Added the jump buttons. * Tiny styling adjustments. * Massive renaming. * Pause info * Added slider marks. * Improved messaging. * Freeze all updates when paused. * Repositioned for Configure button. * Improved the flow. * Working browsing through slider. * Small styling. * Hide time travel button behind the feature flag. * Fixed actions. * Elements positioning corner cases. * Removed nodes delta buffering code. * Fixed the flow. * Fixed almost all API call cases. * Final touches * Fixed the tests. * Fix resource view updates when time travelling. * Added some comments. * Addressed some of @foot's comments.
100 lines
3.5 KiB
JavaScript
100 lines
3.5 KiB
JavaScript
import moment from 'moment';
|
|
import { Map as makeMap, OrderedMap as makeOrderedMap } from 'immutable';
|
|
|
|
import { buildUrlQuery, basePath, getApiPath, getWebsocketUrl } from '../web-api-utils';
|
|
|
|
|
|
describe('WebApiUtils', () => {
|
|
describe('basePath', () => {
|
|
it('should handle /scope/terminal.html', () => {
|
|
expect(basePath('/scope/terminal.html')).toBe('/scope');
|
|
});
|
|
|
|
it('should handle /scope/', () => {
|
|
expect(basePath('/scope/')).toBe('/scope');
|
|
});
|
|
|
|
it('should handle /scope', () => {
|
|
expect(basePath('/scope')).toBe('/scope');
|
|
});
|
|
|
|
it('should handle /', () => {
|
|
expect(basePath('/')).toBe('');
|
|
});
|
|
});
|
|
|
|
describe('buildUrlQuery', () => {
|
|
let state = makeMap();
|
|
|
|
it('should handle empty options', () => {
|
|
expect(buildUrlQuery(makeOrderedMap([]), state)).toBe('');
|
|
});
|
|
|
|
it('should combine multiple options', () => {
|
|
expect(buildUrlQuery(makeOrderedMap([
|
|
['foo', 2],
|
|
['bar', 4]
|
|
]), state)).toBe('foo=2&bar=4');
|
|
});
|
|
|
|
it('should combine multiple options with a timestamp', () => {
|
|
state = state.set('pausedAt', moment('2015-06-14T21:12:05.275Z'));
|
|
expect(buildUrlQuery(makeOrderedMap([
|
|
['foo', 2],
|
|
['bar', 4]
|
|
]), state)).toBe('foo=2&bar=4×tamp=2015-06-14T21:12:05.275Z');
|
|
});
|
|
});
|
|
|
|
describe('getApiPath', () => {
|
|
afterEach(() => {
|
|
delete process.env.SCOPE_API_PREFIX;
|
|
});
|
|
it('returns the correct url when running standalone', () => {
|
|
expect(getApiPath('/')).toEqual('');
|
|
});
|
|
it('returns the correct url when running in an iframe', () => {
|
|
expect(getApiPath('/api/app/proud-cloud-77')).toEqual('/api/app/proud-cloud-77');
|
|
});
|
|
it('returns the correct url when running as a component', () => {
|
|
process.env.SCOPE_API_PREFIX = '/api';
|
|
expect(getApiPath('/app/proud-cloud-77')).toEqual('/api/app/proud-cloud-77');
|
|
});
|
|
it('returns the correct url from an arbitrary path', () => {
|
|
expect(getApiPath('/demo/')).toEqual('/demo');
|
|
});
|
|
it('returns the correct url from an *.html page', () => {
|
|
expect(getApiPath('/contrast.html')).toEqual('');
|
|
});
|
|
it('returns the correct url from an /*.html page while in an iframe', () => {
|
|
expect(getApiPath('/api/app/proud-cloud-77/contrast.html')).toEqual('/api/app/proud-cloud-77');
|
|
});
|
|
});
|
|
|
|
describe('getWebsocketUrl', () => {
|
|
const host = 'localhost:4042';
|
|
afterEach(() => {
|
|
delete process.env.SCOPE_API_PREFIX;
|
|
});
|
|
it('returns the correct url when running standalone', () => {
|
|
expect(getWebsocketUrl(host, '/')).toEqual(`ws://${host}`);
|
|
});
|
|
it('returns the correct url when running in an iframe', () => {
|
|
expect(getWebsocketUrl(host, '/api/app/proud-cloud-77')).toEqual(`ws://${host}/api/app/proud-cloud-77`);
|
|
});
|
|
it('returns the correct url when running as a component', () => {
|
|
process.env.SCOPE_API_PREFIX = '/api';
|
|
expect(getWebsocketUrl(host, '/app/proud-cloud-77')).toEqual(`ws://${host}/api/app/proud-cloud-77`);
|
|
});
|
|
it('returns the correct url from an arbitrary path', () => {
|
|
expect(getWebsocketUrl(host, '/demo/')).toEqual(`ws://${host}/demo`);
|
|
});
|
|
it('returns the correct url from an *.html page', () => {
|
|
expect(getWebsocketUrl(host, '/contrast.html')).toEqual(`ws://${host}`);
|
|
});
|
|
it('returns the correct url from an /*.html page while in an iframe', () => {
|
|
expect(getWebsocketUrl(host, '/api/app/proud-cloud-77/contrast.html')).toEqual(`ws://${host}/api/app/proud-cloud-77`);
|
|
});
|
|
});
|
|
});
|