Skip to content

Commit 2221915

Browse files
author
Zvonimir Sabljic
committed
Merge branch 'main' into z_improvements
2 parents 4b560f2 + 1feb00a commit 2221915

File tree

6 files changed

+21
-66
lines changed

6 files changed

+21
-66
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "pythagora",
3-
"version": "0.0.67",
3+
"version": "0.0.69",
44
"author": {
55
"name": "Zvonimir Sabljic",
66
"email": "[email protected]"

pythagora_tests/unit/src/helpers/api/cleanupGPTResponse.test.js

Lines changed: 0 additions & 39 deletions
This file was deleted.

src/commands/export.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ const {
2424
getJestTest,
2525
getJestTestName,
2626
isEligibleForExport,
27-
cleanupGPTResponse,
2827
checkForAPIKey
2928
} = require("../helpers/api");
3029
const _ = require('lodash');
@@ -69,8 +68,7 @@ async function configureAuthFile(generatedTests) {
6968
}
7069

7170
let loginData = pythagoraMetadata.exportRequirements.login;
72-
let gptResponse = await getJestAuthFunction(loginData.mongoQueriesArray, loginData.requestBody, loginData.endpointPath);
73-
let code = cleanupGPTResponse(gptResponse);
71+
let code = await getJestAuthFunction(loginData.mongoQueriesArray, loginData.requestBody, loginData.endpointPath);
7472

7573
fs.writeFileSync(`./${EXPORTED_TESTS_DIR}/auth.js`, code);
7674
}

src/helpers/api.js

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,11 @@ async function makeRequest(data, options, customLogFunction) {
6464
});
6565
res.on('end', async function () {
6666
process.stdout.write('\n');
67-
if (res.statusCode >= 400) reject(new Error(`Response status code: ${res.statusCode}. Error message: ${gptResponse}`));
68-
if (gptResponse.error) reject(new Error(`Error: ${gptResponse.error.message}. Code: ${gptResponse.error.code}`));
69-
if (gptResponse.message) reject(new Error(`Error: ${gptResponse.message}. Code: ${gptResponse.code}`));
70-
gptResponse = cleanupGPTResponse(gptResponse);
71-
resolve(gptResponse);
67+
if (res.statusCode >= 400) return reject(new Error(`Response status code: ${res.statusCode}. Error message: ${gptResponse}`));
68+
if (gptResponse.error) return reject(new Error(`Error: ${gptResponse.error.message}. Code: ${gptResponse.error.code}`));
69+
if (gptResponse.message) return reject(new Error(`Error: ${gptResponse.message}. Code: ${gptResponse.code}`));
70+
gptResponse = gptResponse.split('pythagora_end:').pop();
71+
return resolve(gptResponse);
7272
});
7373
});
7474

@@ -130,14 +130,6 @@ async function isEligibleForExport(test) {
130130
}
131131
}
132132

133-
function cleanupGPTResponse(gptResponse) {
134-
if (gptResponse.substring(0, 3) === "```") {
135-
gptResponse = gptResponse.substring(gptResponse.indexOf('\n') + 1, gptResponse.lastIndexOf('```'));
136-
}
137-
138-
return gptResponse;
139-
}
140-
141133
function checkForAPIKey() {
142134
if (!args.pythagora_api_key && !args.openai_api_key) {
143135
console.log(`${bold+red}No API key found!${reset}`);
@@ -155,7 +147,6 @@ module.exports = {
155147
getJestTest,
156148
getJestTestName,
157149
isEligibleForExport,
158-
cleanupGPTResponse,
159150
getUnitTests,
160151
checkForAPIKey
161152
}

src/helpers/unitTests.js

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ let functionList = {},
2929
testsGenerated = [],
3030
errors = [],
3131
ignoreFolders = ['node_modules', 'pythagora_tests'],
32-
processExtensions = ['.js']
32+
processExtensions = ['.js'],
33+
ignoreErrors = ['BABEL_PARSER_SYNTAX_ERROR'],
34+
force
3335
;
3436

3537
async function processFile(filePath) {
@@ -156,7 +158,7 @@ async function createTests(filePath, prefix, funcToTest) {
156158
spinner.start(folderStructureTree, indexToPush);
157159

158160
let testFilePath = path.join(getTestFolderPath(filePath, rootPath), `/${funcData.functionName}.test.js`);
159-
if (fs.existsSync(testFilePath)) {
161+
if (fs.existsSync(testFilePath) && !force) {
160162
await spinner.stop();
161163
folderStructureTree[indexToPush].line = `${green}${folderStructureTree[indexToPush].line}${reset}`;
162164
continue;
@@ -174,11 +176,11 @@ async function createTests(filePath, prefix, funcToTest) {
174176
testsGenerated.push(testPath);
175177
await spinner.stop();
176178
folderStructureTree[indexToPush].line = `${green}${folderStructureTree[indexToPush].line}${reset}`;
177-
} else {
179+
} else if (error) {
178180
errors.push({
179181
file:filePath,
180182
function: funcData.functionName,
181-
error
183+
error: { stack: error.stack, message: error.message }
182184
});
183185
await spinner.stop();
184186
folderStructureTree[indexToPush].line = `${red}${folderStructureTree[indexToPush].line}${reset}`;
@@ -190,8 +192,7 @@ async function createTests(filePath, prefix, funcToTest) {
190192
}
191193

192194
} catch (e) {
193-
errors.push(e);
194-
// writeLine(`Error parsing file ${filePath}: ${e}`);
195+
if (!ignoreErrors.includes(e.code)) errors.push(e);
195196
}
196197
}
197198

@@ -255,7 +256,11 @@ async function getFunctionsForExport(dirPath) {
255256
return functionList;
256257
}
257258

258-
async function generateTestsForDirectory(pathToProcess, funcName) {
259+
async function generateTestsForDirectory(args) {
260+
let pathToProcess = args.path,
261+
funcName = args.func;
262+
force = args.force;
263+
259264
checkForAPIKey();
260265
queriedPath = path.resolve(pathToProcess);
261266
rootPath = process.cwd();
@@ -269,7 +274,7 @@ async function generateTestsForDirectory(pathToProcess, funcName) {
269274
process.stdout.write('\x1B[2J\x1B[0f');
270275
if (errors.length) {
271276
let errLogPath = `${path.resolve(PYTHAGORA_UNIT_DIR, 'errorLogs.log')}`
272-
fs.writeFileSync(errLogPath, JSON.stringify(errors));
277+
fs.writeFileSync(errLogPath, JSON.stringify(errors, null, 2));
273278
console.error('There were errors encountered while trying to generate unit tests.\n');
274279
console.error(`You can find logs here: ${errLogPath}`);
275280
}

src/scripts/unit.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ if (!args.path && !args.func) {
66
process.exit(1);
77
}
88
if (!args.path) args.path = process.cwd();
9-
generateTestsForDirectory(args.path, args.func);
9+
generateTestsForDirectory(args);

0 commit comments

Comments
 (0)