grafana/public/app/plugins/datasource/loki/streaming.test.ts
Ivana Huckova fd5f66083c
Loki: Move convertToWebSocketUrl from Explore to Loki (#78542)
* Move convertToWebSocketUrl to Loki

* Add tests

* Fix test
2023-11-23 11:43:48 +02:00

46 lines
1.2 KiB
TypeScript

import { convertToWebSocketUrl } from './streaming';
jest.mock('@grafana/runtime', () => ({
...jest.requireActual('@grafana/runtime'),
config: {
appSubUrl: '/grafana',
},
}));
describe('convertToWebSocketUrl', () => {
const { location } = window;
beforeEach(() => {
// @ts-ignore
delete window.location;
window.location = {} as Location;
});
afterEach(() => {
window.location = location;
});
it('should convert HTTP URL to WebSocket URL', () => {
window.location.protocol = 'http:';
window.location.host = 'example.com';
const httpUrl = '/api/ds/proxy/1/api/v1/tail/loki?query=a';
const expectedWebSocketUrl = 'ws://example.com/grafana/api/ds/proxy/1/api/v1/tail/loki?query=a';
const result = convertToWebSocketUrl(httpUrl);
expect(result).toBe(expectedWebSocketUrl);
});
it('should convert HTTPS URL to WebSocket URL', () => {
window.location.protocol = 'https:';
window.location.host = 'example.com';
const httpsUrl = '/api/ds/proxy/1/api/v1/tail/loki?query=a';
const expectedWebSocketUrl = 'wss://example.com/grafana/api/ds/proxy/1/api/v1/tail/loki?query=a';
const result = convertToWebSocketUrl(httpsUrl);
expect(result).toBe(expectedWebSocketUrl);
});
});