mirror of
https://github.com/Redocly/redoc.git
synced 2024-11-22 00:26:34 +03:00
fix: correct URLs of OperationModel servers for static site generation (#2081)
Co-authored-by: paza0322 <pavel.zagorodniuk@netcracker.com>
This commit is contained in:
parent
d7a1ec11d4
commit
b1afd08bcf
|
@ -425,6 +425,24 @@ describe('Utils', () => {
|
|||
expect(res).toEqual([{ url: 'https://base.com/sandbox/test', description: 'test' }]);
|
||||
});
|
||||
|
||||
it('should remove query string and hash from url', () => {
|
||||
const originalWindow = { ...window };
|
||||
const windowSpy: jest.SpyInstance = jest.spyOn(global, 'window', 'get');
|
||||
windowSpy.mockImplementation(() => ({
|
||||
...originalWindow,
|
||||
location: {
|
||||
...originalWindow.location,
|
||||
href: 'https://base.com/subpath/?param=value#tag',
|
||||
},
|
||||
}));
|
||||
const res = normalizeServers(undefined, [
|
||||
{
|
||||
url: 'sandbox/test',
|
||||
},
|
||||
]);
|
||||
expect(res).toEqual([{ url: 'https://base.com/subpath/sandbox/test', description: '' }]);
|
||||
});
|
||||
|
||||
it('should expand variables', () => {
|
||||
const servers = normalizeServers('', [
|
||||
{
|
||||
|
|
|
@ -179,10 +179,11 @@ export function titleize(text: string) {
|
|||
return text.charAt(0).toUpperCase() + text.slice(1);
|
||||
}
|
||||
|
||||
export function removeQueryString(serverUrl: string): string {
|
||||
export function removeQueryStringAndHash(serverUrl: string): string {
|
||||
try {
|
||||
const url = parseURL(serverUrl);
|
||||
url.search = '';
|
||||
url.hash = '';
|
||||
return url.toString();
|
||||
} catch (e) {
|
||||
// when using with redoc-cli serverUrl can be empty resulting in crash
|
||||
|
|
|
@ -16,7 +16,7 @@ import {
|
|||
Referenced,
|
||||
} from '../types';
|
||||
import { IS_BROWSER } from './dom';
|
||||
import { isNumeric, removeQueryString, resolveUrl, isArray, isBoolean } from './helpers';
|
||||
import { isNumeric, removeQueryStringAndHash, resolveUrl, isArray, isBoolean } from './helpers';
|
||||
|
||||
function isWildcardStatusCode(statusCode: string | number): statusCode is string {
|
||||
return typeof statusCode === 'string' && /\dxx/i.test(statusCode);
|
||||
|
@ -606,7 +606,7 @@ export function normalizeServers(
|
|||
return href.endsWith('.html') ? dirname(href) : href;
|
||||
};
|
||||
|
||||
const baseUrl = specUrl === undefined ? removeQueryString(getHref()) : dirname(specUrl);
|
||||
const baseUrl = specUrl === undefined ? removeQueryStringAndHash(getHref()) : dirname(specUrl);
|
||||
|
||||
if (servers.length === 0) {
|
||||
// Behaviour defined in OpenAPI spec: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#openapi-object
|
||||
|
|
Loading…
Reference in New Issue
Block a user