fix(bruno-electron): interpolate auth headers for GraphQL introspection request (#5560)

This commit is contained in:
phoval
2026-05-11 07:43:21 +02:00
committed by GitHub
parent 0c7bce3320
commit 4ad51186a1
2 changed files with 41 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
const { get, each } = require('lodash');
const { interpolate } = require('@usebruno/common');
const { getIntrospectionQuery } = require('graphql');
const interpolateVars = require('./interpolate-vars');
const { setAuthHeaders } = require('./prepare-request');
const prepareGqlIntrospectionRequest = (endpoint, resolvedVars, request, collectionRoot) => {
@@ -23,7 +24,9 @@ const prepareGqlIntrospectionRequest = (endpoint, resolvedVars, request, collect
data: JSON.stringify(queryParams)
};
return setAuthHeaders(axiosRequest, request, collectionRoot);
axiosRequest = setAuthHeaders(axiosRequest, request, collectionRoot);
return interpolateVars(axiosRequest, resolvedVars);
};
const mapHeaders = (requestHeaders, collectionHeaders, resolvedVars) => {

View File

@@ -29,6 +29,43 @@ describe('prepareGqlIntrospectionRequest', () => {
expect(result.url).toBe(setup.endpoint);
});
it('should interpolate bearer auth headers from request auth', () => {
const setup = createBasicSetup();
setup.request.auth = {
mode: 'bearer',
bearer: {
token: '{{AUTH_TOKEN}}'
}
};
const vars = {
AUTH_TOKEN: 'request-token'
};
const result = prepareGqlIntrospectionRequest(setup.endpoint, vars, setup.request, setup.collectionRoot);
expect(result.headers['Authorization']).toBe('Bearer request-token');
});
it('should interpolate inherited bearer auth headers', () => {
const setup = createBasicSetup();
setup.request.auth = {
mode: 'inherit'
};
setup.collectionRoot.request.auth = {
mode: 'bearer',
bearer: {
token: '{{AUTH_TOKEN}}'
}
};
const vars = {
AUTH_TOKEN: 'collection-token'
};
const result = prepareGqlIntrospectionRequest(setup.endpoint, vars, setup.request, setup.collectionRoot);
expect(result.headers['Authorization']).toBe('Bearer collection-token');
});
it('should override collection headers with request headers', () => {
const setup = createBasicSetup();
setup.collectionRoot.request.headers = [