fix: YML parsing and stringification to support post-response variables (#7009)

This commit is contained in:
naman-bruno
2026-02-02 18:57:35 +05:30
committed by GitHub
parent bafb235e72
commit 416b693afc
4 changed files with 34 additions and 2 deletions

View File

@@ -4,6 +4,7 @@ import { parseYml } from './utils';
import { toBrunoAuth } from './common/auth';
import { toBrunoHttpHeaders } from './common/headers';
import { toBrunoVariables } from './common/variables';
import { toBrunoPostResponseVariables } from './common/actions';
import { toBrunoScripts } from './common/scripts';
import { ensureString } from '../../utils';
@@ -174,7 +175,11 @@ const parseCollection = (ymlString: string): ParsedCollection => {
// variables
const variables = toBrunoVariables(oc.request.variables);
collectionRoot.request.vars = variables;
const postResponseVars = toBrunoPostResponseVariables((oc.request as any).actions);
collectionRoot.request.vars = {
req: variables.req,
res: postResponseVars
};
// scripts
const scripts = toBrunoScripts(oc.request.scripts);

View File

@@ -4,6 +4,7 @@ import { parseYml } from './utils';
import { toBrunoAuth } from './common/auth';
import { toBrunoHttpHeaders } from './common/headers';
import { toBrunoVariables } from './common/variables';
import { toBrunoPostResponseVariables } from './common/actions';
import { toBrunoScripts } from './common/scripts';
import { ensureString } from '../../utils';
@@ -52,7 +53,11 @@ const parseFolder = (ymlString: string): FolderRoot => {
// variables
const variables = toBrunoVariables(ocFolder.request.variables);
folderRoot.request.vars = variables;
const postResponseVars = toBrunoPostResponseVariables((ocFolder.request as any).actions);
folderRoot.request.vars = {
req: variables.req,
res: postResponseVars
};
// scripts
const scripts = toBrunoScripts(ocFolder.request.scripts);

View File

@@ -3,11 +3,13 @@ import type { ProtoFileItem, ProtoFileImportPath } from '@opencollection/types/c
import type { HttpRequestHeader } from '@opencollection/types/requests/http';
import type { ClientCertificate, PemCertificate, Pkcs12Certificate } from '@opencollection/types/config/certificates';
import type { Variable } from '@opencollection/types/common/variables';
import type { Action } from '@opencollection/types/common/actions';
import type { Scripts } from '@opencollection/types/common/scripts';
import { stringifyYml } from './utils';
import { toOpenCollectionAuth } from './common/auth';
import { toOpenCollectionHttpHeaders } from './common/headers';
import { toOpenCollectionVariables } from './common/variables';
import { toOpenCollectionActions } from './common/actions';
import { toOpenCollectionScripts } from './common/scripts';
import type { Auth } from '@opencollection/types/common/auth';
@@ -39,6 +41,7 @@ const hasRequestDefaults = (collectionRoot: any): boolean => {
return Boolean((requestRoot?.headers?.length)
|| (requestRoot?.vars?.req?.length)
|| (requestRoot?.vars?.res?.length)
|| hasRequestScripts(collectionRoot)
|| hasRequestAuth(collectionRoot));
};
@@ -178,6 +181,14 @@ const stringifyCollection = (collectionRoot: any, brunoConfig: any): string => {
}
}
// actions (post-response variables)
if (collectionRoot.request?.vars?.res?.length) {
const ocActions: Action[] | undefined = toOpenCollectionActions(collectionRoot.request?.vars?.res);
if (ocActions) {
(oc.request as any).actions = ocActions;
}
}
// scripts
if (hasRequestScripts(collectionRoot)) {
const ocScripts: Scripts | undefined = toOpenCollectionScripts(collectionRoot.request);

View File

@@ -1,6 +1,7 @@
import type { FolderRoot } from '@usebruno/schema-types/collection/folder';
import type { Folder, FolderInfo } from '@opencollection/types/collection/item';
import type { Variable } from '@opencollection/types/common/variables';
import type { Action } from '@opencollection/types/common/actions';
import type { Scripts } from '@opencollection/types/common/scripts';
import type { Auth } from '@opencollection/types/common/auth';
import type { HttpRequestHeader } from '@opencollection/types/requests/http';
@@ -8,6 +9,7 @@ import type { RequestDefaults } from '@opencollection/types/common/request-defau
import { toOpenCollectionAuth } from './common/auth';
import { toOpenCollectionHttpHeaders } from './common/headers';
import { toOpenCollectionVariables } from './common/variables';
import { toOpenCollectionActions } from './common/actions';
import { toOpenCollectionScripts } from './common/scripts';
import { stringifyYml } from './utils';
@@ -16,6 +18,7 @@ const hasRequestDefaults = (folderRoot: FolderRoot): boolean => {
return Boolean((requestDefaults?.headers?.length)
|| (requestDefaults?.vars?.req?.length)
|| (requestDefaults?.vars?.res?.length)
|| hasRequestScripts(folderRoot)
|| hasRequestAuth(folderRoot));
};
@@ -70,6 +73,14 @@ const stringifyFolder = (folderRoot: FolderRoot): string => {
}
}
// actions (post-response variables)
if (folderRoot.request?.vars?.res?.length) {
const ocActions: Action[] | undefined = toOpenCollectionActions(folderRoot.request?.vars?.res);
if (ocActions) {
(ocFolder.request as any).actions = ocActions;
}
}
// scripts
if (hasRequestScripts(folderRoot)) {
const ocScripts: Scripts | undefined = toOpenCollectionScripts(folderRoot?.request);