fix: revert expanding default server variables

This commit is contained in:
Anya Stasiuk 2019-08-07 10:46:44 +03:00 committed by Roman Hotsiy
parent 3e18093e6f
commit 7849f7f6b7
3 changed files with 7 additions and 47 deletions

View File

@ -5,7 +5,7 @@ import { Markdown } from '../Markdown/Markdown';
import { OptionsContext } from '../OptionsProvider'; import { OptionsContext } from '../OptionsProvider';
import { SelectOnClick } from '../SelectOnClick/SelectOnClick'; import { SelectOnClick } from '../SelectOnClick/SelectOnClick';
import { expandDefaultServerVariables, getBasePath } from '../../utils'; import { getBasePath } from '../../utils';
import { import {
EndpointInfo, EndpointInfo,
HttpVerb, HttpVerb,
@ -61,16 +61,15 @@ export class Endpoint extends React.Component<EndpointProps, EndpointState> {
</EndpointInfo> </EndpointInfo>
<ServersOverlay expanded={expanded}> <ServersOverlay expanded={expanded}>
{operation.servers.map(server => { {operation.servers.map(server => {
const normalizedUrl = expandDefaultServerVariables(server.url, server.variables);
return ( return (
<ServerItem key={normalizedUrl}> <ServerItem key={server.url}>
<Markdown source={server.description || ''} compact={true} /> <Markdown source={server.description || ''} compact={true} />
<SelectOnClick> <SelectOnClick>
<ServerUrl> <ServerUrl>
<span> <span>
{hideHostname || options.hideHostname {hideHostname || options.hideHostname
? getBasePath(normalizedUrl) ? getBasePath(server.url)
: normalizedUrl} : server.url}
</span> </span>
{operation.path} {operation.path}
</ServerUrl> </ServerUrl>

View File

@ -13,7 +13,6 @@ import {
import { FieldModel, OpenAPIParser, RedocNormalizedOptions } from '../../services'; import { FieldModel, OpenAPIParser, RedocNormalizedOptions } from '../../services';
import { OpenAPIParameter, OpenAPIParameterLocation, OpenAPIParameterStyle } from '../../types'; import { OpenAPIParameter, OpenAPIParameterLocation, OpenAPIParameterStyle } from '../../types';
import { expandDefaultServerVariables } from '../openapi';
describe('Utils', () => { describe('Utils', () => {
describe('openapi getStatusCode', () => { describe('openapi getStatusCode', () => {
@ -294,39 +293,6 @@ describe('Utils', () => {
]); ]);
expect(res).toEqual([{ url: 'https://base.com/sandbox/test', description: 'test' }]); expect(res).toEqual([{ url: 'https://base.com/sandbox/test', description: 'test' }]);
}); });
it('should expand variables', () => {
const servers = normalizeServers('', [
{
url: 'http://{host}{basePath}',
variables: {
host: {
default: '127.0.0.1',
},
basePath: {
default: '/path/to/endpoint',
},
},
},
{
url: 'http://127.0.0.2:{port}',
variables: {},
},
{
url: 'http://127.0.0.3',
},
]);
expect(expandDefaultServerVariables(servers[0].url, servers[0].variables)).toEqual(
'http://127.0.0.1/path/to/endpoint',
);
expect(expandDefaultServerVariables(servers[1].url, servers[1].variables)).toEqual(
'http://127.0.0.2:{port}',
);
expect(expandDefaultServerVariables(servers[2].url, servers[2].variables)).toEqual(
'http://127.0.0.3',
);
});
}); });
describe('openapi humanizeConstraints', () => { describe('openapi humanizeConstraints', () => {
@ -550,7 +516,9 @@ describe('Utils', () => {
locationTestGroup.cases.forEach(valueTypeTestGroup => { locationTestGroup.cases.forEach(valueTypeTestGroup => {
describe(valueTypeTestGroup.description, () => { describe(valueTypeTestGroup.description, () => {
valueTypeTestGroup.cases.forEach(testCase => { valueTypeTestGroup.cases.forEach(testCase => {
it(`should serialize correctly when style is ${testCase.style} and explode is ${testCase.explode}`, () => { it(`should serialize correctly when style is ${testCase.style} and explode is ${
testCase.explode
}`, () => {
const parameter: OpenAPIParameter = { const parameter: OpenAPIParameter = {
name: locationTestGroup.name, name: locationTestGroup.name,
in: locationTestGroup.location, in: locationTestGroup.location,

View File

@ -487,13 +487,6 @@ export function mergeSimilarMediaTypes(types: Dict<OpenAPIMediaType>): Dict<Open
return mergedTypes; return mergedTypes;
} }
export function expandDefaultServerVariables(url: string, variables: object = {}) {
return url.replace(
/(?:{)(\w+)(?:})/g,
(match, name) => (variables[name] && variables[name].default) || match,
);
}
export function normalizeServers( export function normalizeServers(
specUrl: string | undefined, specUrl: string | undefined,
servers: OpenAPIServer[], servers: OpenAPIServer[],