Skip to content

Commit 711d249

Browse files
nivedinCopilot
andauthored
fix: correctly resolve inherited properties before request runs (hoppscotch#5418)
Co-authored-by: Copilot <[email protected]>
1 parent 5039a14 commit 711d249

File tree

2 files changed

+24
-53
lines changed

2 files changed

+24
-53
lines changed

packages/hoppscotch-common/src/components/collections/Collection.vue

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@
8282
@click="emit('add-folder')"
8383
/>
8484
<HoppButtonSecondary
85-
v-if="!isEmpty"
8685
v-tippy="{ theme: 'tooltip' }"
8786
:icon="IconPlaySquare"
8887
:title="t('collection_runner.run_collection')"
@@ -145,7 +144,6 @@
145144
"
146145
/>
147146
<HoppSmartItem
148-
v-if="!isEmpty"
149147
ref="runCollectionAction"
150148
:icon="IconPlaySquare"
151149
:label="t('collection_runner.run_collection')"
@@ -372,28 +370,6 @@ const ordering = ref(false)
372370
const orderingLastItem = ref(false)
373371
const dropItemID = ref("")
374372
375-
/**
376-
* Determines if the collection/folder is empty.
377-
* A collection/folder is considered empty if it has no requests and no child folders.
378-
*/
379-
const isEmpty = computed(() => {
380-
if (!props.data) return true
381-
382-
if (props.collectionsType === "my-collections") {
383-
const collection = props.data as HoppCollection
384-
const req = collection.requests.length
385-
const fol = collection.folders.length
386-
387-
return req === 0 && fol === 0
388-
}
389-
390-
const teamCollection = props.data as TeamCollection
391-
const req = teamCollection.requests?.length ?? 0
392-
const child = teamCollection.children?.length ?? 0
393-
394-
return req === 0 && child === 0
395-
})
396-
397373
/**
398374
* Determines if the collection/folder is sortable.
399375
* A collection/folder is sortable if it has more than one request or more than one child folder.

packages/hoppscotch-common/src/helpers/RequestRunner.ts

Lines changed: 24 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -397,8 +397,30 @@ export function runRESTRequest$(
397397

398398
const cookieJarEntries = getCookieJarEntries()
399399

400+
const { request, inheritedProperties } = tab.value.document
401+
402+
const requestAuth =
403+
request.auth.authType === "inherit" && request.auth.authActive
404+
? inheritedProperties?.auth.inheritedAuth
405+
: request.auth
406+
407+
const inheritedHeaders = inheritedProperties?.headers
408+
?.filter((header) => header.inheritedHeader)
409+
.map((header) => header.inheritedHeader!)
410+
411+
const requestHeaders: HoppRESTHeaders = [
412+
...(inheritedHeaders ?? []),
413+
...request.headers,
414+
]
415+
416+
const resolvedRequest = {
417+
...tab.value.document.request,
418+
auth: requestAuth ?? { authType: "none", authActive: false },
419+
headers: requestHeaders,
420+
}
421+
400422
const res = delegatePreRequestScriptRunner(
401-
tab.value.document.request,
423+
resolvedRequest,
402424
getCombinedEnvVariables(),
403425
cookieJarEntries
404426
).then(async (preRequestScriptResult) => {
@@ -409,31 +431,6 @@ export function runRESTRequest$(
409431
return E.left("script_fail" as const)
410432
}
411433

412-
const requestAuth =
413-
tab.value.document.request.auth.authType === "inherit" &&
414-
tab.value.document.request.auth.authActive
415-
? tab.value.document.inheritedProperties?.auth.inheritedAuth
416-
: tab.value.document.request.auth
417-
418-
let requestHeaders
419-
420-
const inheritedHeaders =
421-
tab.value.document.inheritedProperties?.headers.map((header) => {
422-
if (header.inheritedHeader) {
423-
return header.inheritedHeader
424-
}
425-
return []
426-
})
427-
428-
if (inheritedHeaders) {
429-
requestHeaders = [
430-
...inheritedHeaders,
431-
...tab.value.document.request.headers,
432-
]
433-
} else {
434-
requestHeaders = [...tab.value.document.request.headers]
435-
}
436-
437434
const finalRequestVariables =
438435
tab.value.document.request.requestVariables.map(
439436
(v: HoppRESTRequestVariable) => {
@@ -460,9 +457,7 @@ export function runRESTRequest$(
460457
}))
461458

462459
const finalRequest = {
463-
...tab.value.document.request,
464-
auth: requestAuth ?? { authType: "none", authActive: false },
465-
headers: requestHeaders as HoppRESTHeaders,
460+
...resolvedRequest,
466461
...(preRequestScriptResult.right.updatedRequest ?? {}),
467462
}
468463

0 commit comments

Comments
 (0)