add process.env variable support to GraphQL introspection

This commit is contained in:
anusree-bruno
2025-06-30 13:12:35 +05:30
parent c6c3931446
commit d2888daa88
2 changed files with 37 additions and 2 deletions

View File

@@ -333,6 +333,7 @@ const fetchGqlSchemaHandler = async (event, endpoint, environment, _request, col
const runtimeVars = collection.runtimeVariables;
// Precedence: runtimeVars > requestVariables > folderVars > envVars > collectionVariables > globalEnvironmentVars
const processEnvVars = getProcessEnvVars(collection.uid);
const resolvedVars = merge(
{},
globalEnvironmentVars,
@@ -340,7 +341,14 @@ const fetchGqlSchemaHandler = async (event, endpoint, environment, _request, col
envVars,
folderVars,
requestVariables,
runtimeVars
runtimeVars,
{
process: {
env: {
...processEnvVars
}
}
}
);
const collectionRoot = get(collection, 'root', {});
@@ -355,7 +363,6 @@ const fetchGqlSchemaHandler = async (event, endpoint, environment, _request, col
}
const collectionPath = collection.pathname;
const processEnvVars = getProcessEnvVars(collection.uid);
const axiosInstance = await configureRequest(
collection.uid,

View File

@@ -63,4 +63,32 @@ describe('prepareGqlIntrospectionRequest', () => {
expect(result.headers['Content-Type']).toBe('application/json');
});
it('should handle process.env variables in endpoint URL', () => {
const setup = createBasicSetup();
setup.endpoint = 'https://{{process.env.API_HOST}}/graphql';
const vars = {
process: {
env: {
API_HOST: 'api.example.com'
}
}
};
const result = prepareGqlIntrospectionRequest(setup.endpoint, vars, setup.request, setup.collectionRoot);
expect(result.url).toBe('https://api.example.com/graphql');
expect(result.method).toBe('POST');
});
it('should handle missing process.env variables gracefully', () => {
const setup = createBasicSetup();
setup.request.headers = [
{ name: 'X-API-Key', value: '{{process.env.MISSING_VAR}}', enabled: true }
];
const result = prepareGqlIntrospectionRequest(setup.endpoint, {}, setup.request, setup.collectionRoot);
expect(result.headers['X-API-Key']).toBe('{{process.env.MISSING_VAR}}');
});
});