2018-08-29 11:01:17 +00:00
|
|
|
import PerformanceBarService from '~/performance_bar/services/performance_bar_service';
|
|
|
|
|
|
|
|
describe('PerformanceBarService', () => {
|
|
|
|
describe('callbackParams', () => {
|
|
|
|
describe('fireCallback', () => {
|
|
|
|
function fireCallback(response, peekUrl) {
|
|
|
|
return PerformanceBarService.callbackParams(response, peekUrl)[0];
|
|
|
|
}
|
|
|
|
|
|
|
|
it('returns false when the request URL is the peek URL', () => {
|
2020-08-24 12:10:17 +00:00
|
|
|
expect(
|
|
|
|
fireCallback({ headers: { 'x-request-id': '123' }, config: { url: '/peek' } }, '/peek'),
|
|
|
|
).toBe(false);
|
2018-08-29 11:01:17 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
it('returns false when there is no request ID', () => {
|
2020-08-24 12:10:17 +00:00
|
|
|
expect(fireCallback({ headers: {}, config: { url: '/request' } }, '/peek')).toBe(false);
|
2018-08-29 11:01:17 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
it('returns false when the response is from the cache', () => {
|
2018-10-17 07:13:26 +00:00
|
|
|
expect(
|
|
|
|
fireCallback(
|
|
|
|
{ headers: { 'x-request-id': '123', 'x-gitlab-from-cache': 'true' }, url: '/request' },
|
|
|
|
'/peek',
|
|
|
|
),
|
2020-08-20 15:10:18 +00:00
|
|
|
).toBe(false);
|
2018-08-29 11:01:17 +00:00
|
|
|
});
|
|
|
|
|
2020-08-20 15:10:18 +00:00
|
|
|
it('returns true when the request is an API request', () => {
|
2020-08-24 12:10:17 +00:00
|
|
|
expect(
|
|
|
|
fireCallback({ headers: { 'x-request-id': '123' }, config: { url: '/api/' } }, '/peek'),
|
|
|
|
).toBe(true);
|
2020-08-20 15:10:18 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
it('returns true for all other requests', () => {
|
2020-08-24 12:10:17 +00:00
|
|
|
expect(
|
|
|
|
fireCallback(
|
|
|
|
{ headers: { 'x-request-id': '123' }, config: { url: '/request' } },
|
|
|
|
'/peek',
|
|
|
|
),
|
|
|
|
).toBe(true);
|
2018-08-29 11:01:17 +00:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('requestId', () => {
|
|
|
|
function requestId(response, peekUrl) {
|
|
|
|
return PerformanceBarService.callbackParams(response, peekUrl)[1];
|
|
|
|
}
|
|
|
|
|
|
|
|
it('gets the request ID from the headers', () => {
|
2020-08-24 12:10:17 +00:00
|
|
|
expect(requestId({ headers: { 'x-request-id': '123' } }, '/peek')).toBe('123');
|
2018-08-29 11:01:17 +00:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('requestUrl', () => {
|
|
|
|
function requestUrl(response, peekUrl) {
|
|
|
|
return PerformanceBarService.callbackParams(response, peekUrl)[2];
|
|
|
|
}
|
|
|
|
|
2020-08-24 12:10:17 +00:00
|
|
|
it('gets the request URL from response.config', () => {
|
|
|
|
expect(requestUrl({ headers: {}, config: { url: '/config-url' } }, '/peek')).toBe(
|
|
|
|
'/config-url',
|
|
|
|
);
|
2018-08-29 11:01:17 +00:00
|
|
|
});
|
|
|
|
});
|
2022-06-05 18:08:59 +00:00
|
|
|
|
|
|
|
describe('operationName', () => {
|
|
|
|
function requestUrl(response, peekUrl) {
|
|
|
|
return PerformanceBarService.callbackParams(response, peekUrl)[3];
|
|
|
|
}
|
|
|
|
|
|
|
|
it('gets the operation name from response.config', () => {
|
|
|
|
expect(
|
|
|
|
requestUrl({ headers: {}, config: { operationName: 'someOperation' } }, '/peek'),
|
|
|
|
).toBe('someOperation');
|
|
|
|
});
|
|
|
|
});
|
2018-08-29 11:01:17 +00:00
|
|
|
});
|
|
|
|
});
|