Skip to content

Commit

Permalink
Start working on possible fix to cucumber-redacted
Browse files Browse the repository at this point in the history
Details in issue: cucumber/cucumber-js#1489
  • Loading branch information
binarymist committed Mar 21, 2021
1 parent 92fca1c commit 0be3592
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 5 deletions.
27 changes: 27 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@
"// Old version of gherkin is required to satisfy src/scripts/cucumber-redacted.js": "Hopefully cucumber will reinstate the cucumber-redacted functionality at some stage.",
"dependencies": {
"@cucumber/cucumber": "^7.0.0-rc.0",
"@cucumber/gherkin": "^17.0.2",
"@hapi/bourne": "^2.0.0",
"@hapi/code": "^8.0.2",
"@hapi/good": "^9.0.1",
Expand Down
42 changes: 37 additions & 5 deletions src/api/app/models/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@

const { readFile } = require('fs').promises;
const cucumber = require('@cucumber/cucumber');
const { getActiveTestCasesFromFilesystem } = require('src/scripts/cucumber-redacted');
const Gherkin = require('@cucumber/gherkin');
const { getActiveTestCasesFromFilesystem } = require('src/scripts/cucumber-redacted'); // Todo: Remove

const model = require('.');

Expand Down Expand Up @@ -138,18 +139,49 @@ class App {
}

// eslint-disable-next-line class-methods-use-this
async getActiveTestCases(cucumberCli) {
async oldGetActiveTestCases(cucumberCli) {
const configuration = await cucumberCli.getConfiguration();
const activeTestCases = await getActiveTestCasesFromFilesystem({
cwd: process.cwd(),
cwd: process.cwd(), // '/usr/src/app'
eventBroadcaster: (() => new (require('events'))())(), // eslint-disable-line global-require
featureDefaultLanguage: configuration.featureDefaultLanguage,
featurePaths: configuration.featurePaths,
featureDefaultLanguage: configuration.featureDefaultLanguage, // 'en'
featurePaths: configuration.featurePaths, // ['/usr/src/app/src/features/app_scan.feature', '/usr/src/app/src/features/simple_math.feature']
pickleFilter: (() => new (require('@cucumber/cucumber/lib/pickle_filter')).default(configuration.pickleFilterOptions))() // eslint-disable-line global-require, new-cap
// pickleFilterOptions: '{"cwd":"/usr/src/app","featurePaths":["src/features"],"names":[],"tagExpression":"(@app_scan)"}'
});
return activeTestCases;
}

// eslint-disable-next-line class-methods-use-this
async getActiveTestCases(cucumberCli) {
const configuration = await cucumberCli.getConfiguration();


const activeTestCasesReadableStream = await Gherkin.fromPaths(configuration.featurePaths, { includePickles: true });

// const parser = new Gherkin.Parser();
// const gherkinDocument = parser.parse(`Feature: /usr/src/app/src/features/app_scan.feature`);
// const pickles = new Gherkin.Compiler().compile(gherkinDocument);


// var Gherkin = require("gherkin");
// var parser = new Gherkin.Parser();
// var gherkinDocument = parser.parse("Feature: /usr/src/app/src/features/app_scan.feature");
// var pickles = new Gherkin.Compiler().compile(gherkinDocument);


activeTestCasesReadableStream.on('data', (chunk) => {
console.log(chunk); // eslint-disable-line
});

activeTestCasesReadableStream.on('end', (chunk) => {
console.log(chunk); // eslint-disable-line
});


return 'Working on a fix...........';
}

// eslint-disable-next-line class-methods-use-this
async testPlanText(activeTestCases) {
const activeTestFileUris = activeTestCases
Expand Down

0 comments on commit 0be3592

Please sign in to comment.