Feat/import translation for deprecated pm import (#3388)

* feat: add translation for pm `tests[]`
* feat: add bru.deleteEnvVar function and update translations

---------

Co-authored-by: Pragadesh-45 <temporary7904@gmail.com>
This commit is contained in:
Pragadesh-45 2024-11-20 17:58:59 +05:30 committed by GitHub
parent 77d3fa7e1e
commit 23c22a96bc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 27 additions and 1 deletions

View File

@ -65,6 +65,7 @@ if (!SERVER_RENDERED) {
'bru.getFolderVar(key)', 'bru.getFolderVar(key)',
'bru.getCollectionVar(key)', 'bru.getCollectionVar(key)',
'bru.setEnvVar(key,value)', 'bru.setEnvVar(key,value)',
'bru.deleteEnvVar(key)',
'bru.hasVar(key)', 'bru.hasVar(key)',
'bru.getVar(key)', 'bru.getVar(key)',
'bru.setVar(key,value)', 'bru.setVar(key,value)',

View File

@ -11,6 +11,9 @@ describe('postmanTranslation function', () => {
pm.collectionVariables.set('key', 'value'); pm.collectionVariables.set('key', 'value');
const data = pm.response.json(); const data = pm.response.json();
pm.expect(pm.environment.has('key')).to.be.true; pm.expect(pm.environment.has('key')).to.be.true;
postman.setEnvironmentVariable('key', 'value');
postman.getEnvironmentVariable('key');
postman.clearEnvironmentVariable('key');
`; `;
const expectedOutput = ` const expectedOutput = `
bru.getEnvVar('key'); bru.getEnvVar('key');
@ -21,6 +24,9 @@ describe('postmanTranslation function', () => {
bru.setVar('key', 'value'); bru.setVar('key', 'value');
const data = res.getBody(); const data = res.getBody();
expect(bru.getEnvVar('key') !== undefined && bru.getEnvVar('key') !== null).to.be.true; expect(bru.getEnvVar('key') !== undefined && bru.getEnvVar('key') !== null).to.be.true;
bru.setEnvVar('key', 'value');
bru.getEnvVar('key');
bru.deleteEnvVar('key');
`; `;
expect(postmanTranslation(inputScript)).toBe(expectedOutput); expect(postmanTranslation(inputScript)).toBe(expectedOutput);
}); });
@ -151,3 +157,13 @@ test('should handle response commands', () => {
`; `;
expect(postmanTranslation(inputScript)).toBe(expectedOutput); expect(postmanTranslation(inputScript)).toBe(expectedOutput);
}); });
test('should handle tests object', () => {
const inputScript = `
tests['Status code is 200'] = responseCode.code === 200;
`;
const expectedOutput = `
test("Status code is 200", function() { expect(Boolean(responseCode.code === 200)).to.be.true; });
`;
expect(postmanTranslation(inputScript)).toBe(expectedOutput);
});

View File

@ -17,7 +17,12 @@ const replacements = {
'pm\\.response\\.code': 'res.getStatus()', 'pm\\.response\\.code': 'res.getStatus()',
'pm\\.response\\.text\\(': 'res.getBody()?.toString(', 'pm\\.response\\.text\\(': 'res.getBody()?.toString(',
'pm\\.expect\\.fail\\(': 'expect.fail(', 'pm\\.expect\\.fail\\(': 'expect.fail(',
'pm\\.response\\.responseTime': 'res.getResponseTime()' 'pm\\.response\\.responseTime': 'res.getResponseTime()',
"tests\\['([^']+)'\\]\\s*=\\s*([^;]+);": 'test("$1", function() { expect(Boolean($2)).to.be.true; });',
// deprecated translations
'postman\\.setEnvironmentVariable\\(': 'bru.setEnvVar(',
'postman\\.getEnvironmentVariable\\(': 'bru.getEnvVar(',
'postman\\.clearEnvironmentVariable\\(': 'bru.deleteEnvVar(',
}; };
const extendedReplacements = Object.keys(replacements).reduce((acc, key) => { const extendedReplacements = Object.keys(replacements).reduce((acc, key) => {

View File

@ -65,6 +65,10 @@ class Bru {
this.envVariables[key] = value; this.envVariables[key] = value;
} }
deleteEnvVar(key) {
delete this.envVariables[key];
}
getGlobalEnvVar(key) { getGlobalEnvVar(key) {
return this._interpolate(this.globalEnvironmentVariables[key]); return this._interpolate(this.globalEnvironmentVariables[key]);
} }