Added runtimeVars in prepareGqlIntrospectionRequest

This commit is contained in:
devendra-bruno
2025-05-27 14:38:48 +05:30
parent afb2d3dffd
commit 8d5d952026
2 changed files with 60 additions and 3 deletions

View File

@@ -331,15 +331,17 @@ const fetchGqlSchemaHandler = async (event, endpoint, environment, _request, col
const folderVars = resolvedRequest.folderVariables;
const requestVariables = resolvedRequest.requestVariables;
const collectionVariables = resolvedRequest.collectionVariables;
const runtimeVars = collection.runtimeVariables;
// Precedence: globalEnvironmentVars < collectionVariables < envVars < folderVars < requestVariables
// Precedence: runtimeVars > requestVariables > folderVars > envVars > collectionVariables > globalEnvironmentVars
const resolvedVars = merge(
{},
globalEnvironmentVars,
collectionVariables,
envVars,
folderVars,
requestVariables
requestVariables,
runtimeVars
);
const collectionRoot = get(collection, 'root', {});

View File

@@ -15,7 +15,7 @@ jest.mock('../../src/ipc/network/prepare-gql-introspection-request', () => {
});
});
describe('fetchGqlSchemaHandler', () => {
describe('fetchGqlSchemaHandler - variable precedence', () => {
beforeEach(() => {
jest.clearAllMocks();
});
@@ -311,6 +311,61 @@ describe('fetchGqlSchemaHandler', () => {
collection.root
);
});
it('should override request variables with runtime variables', async () => {
const endpoint = 'https://example.com/';
const environment = {
variables: []
};
const request = {
uid: 'test-request',
vars: {
req: [
{ name: 'SHARED_VAR', value: 'request-value', enabled: true }
]
}
};
const collection = {
uid: 'test-collection',
pathname: '/test',
runtimeVariables: {
SHARED_VAR: 'runtime-value'
},
items: [
{
uid: 'test-request',
request: {
vars: {
req: [
{ name: 'SHARED_VAR', value: 'request-value', enabled: true }
]
}
}
}
],
root: {
request: {
headers: [],
vars: {
req: [] // No collection variables
}
}
}
};
await fetchGqlSchemaHandler(null, endpoint, environment, request, collection);
expect(prepareGqlIntrospectionRequest).toHaveBeenCalledWith(
endpoint,
expect.objectContaining({
SHARED_VAR: 'runtime-value'
}),
request,
collection.root
);
})
});