mirror of
https://github.com/usebruno/bruno.git
synced 2026-06-25 05:35:41 +00:00
Added runtimeVars in prepareGqlIntrospectionRequest
This commit is contained in:
@@ -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', {});
|
||||
|
||||
@@ -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
|
||||
);
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user