Skip to content

Commit 4ad5118

Browse files
authored
fix(bruno-electron): interpolate auth headers for GraphQL introspection request (usebruno#5560)
1 parent 0c7bce3 commit 4ad5118

2 files changed

Lines changed: 41 additions & 1 deletion

File tree

packages/bruno-electron/src/ipc/network/prepare-gql-introspection-request.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const { get, each } = require('lodash');
22
const { interpolate } = require('@usebruno/common');
33
const { getIntrospectionQuery } = require('graphql');
4+
const interpolateVars = require('./interpolate-vars');
45
const { setAuthHeaders } = require('./prepare-request');
56

67
const prepareGqlIntrospectionRequest = (endpoint, resolvedVars, request, collectionRoot) => {
@@ -23,7 +24,9 @@ const prepareGqlIntrospectionRequest = (endpoint, resolvedVars, request, collect
2324
data: JSON.stringify(queryParams)
2425
};
2526

26-
return setAuthHeaders(axiosRequest, request, collectionRoot);
27+
axiosRequest = setAuthHeaders(axiosRequest, request, collectionRoot);
28+
29+
return interpolateVars(axiosRequest, resolvedVars);
2730
};
2831

2932
const mapHeaders = (requestHeaders, collectionHeaders, resolvedVars) => {

packages/bruno-electron/tests/network/prepare-gql-introspection-request.spec.js

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,43 @@ describe('prepareGqlIntrospectionRequest', () => {
2929
expect(result.url).toBe(setup.endpoint);
3030
});
3131

32+
it('should interpolate bearer auth headers from request auth', () => {
33+
const setup = createBasicSetup();
34+
setup.request.auth = {
35+
mode: 'bearer',
36+
bearer: {
37+
token: '{{AUTH_TOKEN}}'
38+
}
39+
};
40+
const vars = {
41+
AUTH_TOKEN: 'request-token'
42+
};
43+
44+
const result = prepareGqlIntrospectionRequest(setup.endpoint, vars, setup.request, setup.collectionRoot);
45+
46+
expect(result.headers['Authorization']).toBe('Bearer request-token');
47+
});
48+
49+
it('should interpolate inherited bearer auth headers', () => {
50+
const setup = createBasicSetup();
51+
setup.request.auth = {
52+
mode: 'inherit'
53+
};
54+
setup.collectionRoot.request.auth = {
55+
mode: 'bearer',
56+
bearer: {
57+
token: '{{AUTH_TOKEN}}'
58+
}
59+
};
60+
const vars = {
61+
AUTH_TOKEN: 'collection-token'
62+
};
63+
64+
const result = prepareGqlIntrospectionRequest(setup.endpoint, vars, setup.request, setup.collectionRoot);
65+
66+
expect(result.headers['Authorization']).toBe('Bearer collection-token');
67+
});
68+
3269
it('should override collection headers with request headers', () => {
3370
const setup = createBasicSetup();
3471
setup.collectionRoot.request.headers = [

0 commit comments

Comments
 (0)