refactor(Cypress): add nodemodules
This commit is contained in:
160
node_modules/cypress-cucumber-preprocessor/lib/cukejson/cucumberDataCollector.test.js
generated
vendored
Normal file
160
node_modules/cypress-cucumber-preprocessor/lib/cukejson/cucumberDataCollector.test.js
generated
vendored
Normal file
@@ -0,0 +1,160 @@
|
||||
const fs = require("fs");
|
||||
const statuses = require("cucumber/lib/status").default;
|
||||
const { CucumberDataCollector } = require("./cucumberDataCollector");
|
||||
const { generateCucumberJson } = require("./generateCucumberJson");
|
||||
|
||||
window.cucumberJson = { generate: true };
|
||||
|
||||
const assertCucumberJson = (json, expectedResults) => {
|
||||
expect(json).to.have.length(1);
|
||||
expect(json[0].keyword).to.eql("Feature");
|
||||
expect(json[0].name).to.eql("Being a plugin");
|
||||
expect(json[0].elements).to.have.length(1);
|
||||
expect(json[0].elements[0].keyword).to.eql("Scenario");
|
||||
expect(json[0].elements[0].name).to.eql("Basic example");
|
||||
expect(json[0].elements[0].steps).to.have.length(3);
|
||||
expect(json[0].elements[0].steps[0].keyword).to.equal("Given ");
|
||||
expect(json[0].elements[0].steps[0].name).to.equal(
|
||||
"a feature and a matching step definition file"
|
||||
);
|
||||
// eslint-disable-next-line no-unused-expressions
|
||||
expect(json[0].elements[0].steps[0].result).to.be.not.null;
|
||||
expect(json[0].elements[0].steps[0].result.status).to.eql(expectedResults[0]);
|
||||
expect(json[0].elements[0].steps[1].keyword).to.equal("When ");
|
||||
expect(json[0].elements[0].steps[1].name).to.equal("I run cypress tests");
|
||||
// eslint-disable-next-line no-unused-expressions
|
||||
expect(json[0].elements[0].steps[1].result).to.be.not.null;
|
||||
expect(json[0].elements[0].steps[1].result.status).to.eql(expectedResults[1]);
|
||||
expect(json[0].elements[0].steps[2].keyword).to.equal("Then ");
|
||||
expect(json[0].elements[0].steps[2].name).to.equal("they run properly");
|
||||
// eslint-disable-next-line no-unused-expressions
|
||||
expect(json[0].elements[0].steps[2].result).to.be.not.null;
|
||||
expect(json[0].elements[0].steps[2].result.status).to.eql(expectedResults[2]);
|
||||
};
|
||||
describe("Cucumber Data Collector", () => {
|
||||
const scenario = {
|
||||
type: "Scenario",
|
||||
tags: [],
|
||||
location: { line: 7, column: 3 },
|
||||
keyword: "Scenario",
|
||||
name: "Basic example",
|
||||
steps: [
|
||||
{
|
||||
type: "Step",
|
||||
location: { line: 8, column: 5 },
|
||||
keyword: "Given ",
|
||||
text: "a feature and a matching step definition file",
|
||||
},
|
||||
{
|
||||
type: "Step",
|
||||
location: { line: 9, column: 5 },
|
||||
keyword: "When ",
|
||||
text: "I run cypress tests",
|
||||
},
|
||||
{
|
||||
type: "Step",
|
||||
location: { line: 10, column: 5 },
|
||||
keyword: "Then ",
|
||||
text: "they run properly",
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const stepsToRun = [
|
||||
{
|
||||
type: "Step",
|
||||
location: { line: 8, column: 5 },
|
||||
keyword: "Given ",
|
||||
text: "a feature and a matching step definition file",
|
||||
index: 0,
|
||||
},
|
||||
{
|
||||
type: "Step",
|
||||
location: { line: 9, column: 5 },
|
||||
keyword: "When ",
|
||||
text: "I run cypress tests",
|
||||
index: 1,
|
||||
},
|
||||
{
|
||||
type: "Step",
|
||||
location: { line: 10, column: 5 },
|
||||
keyword: "Then ",
|
||||
text: "they run properly",
|
||||
index: 2,
|
||||
},
|
||||
];
|
||||
|
||||
beforeEach(() => {
|
||||
const filePath = "./cypress/integration/Plugin.feature";
|
||||
const spec = fs.readFileSync(filePath);
|
||||
this.testState = new CucumberDataCollector(filePath, spec);
|
||||
this.testState.onStartTest();
|
||||
});
|
||||
|
||||
it("runs", () => {
|
||||
this.testState.onFinishTest();
|
||||
const json = generateCucumberJson(this.testState);
|
||||
expect(json).to.have.length(0);
|
||||
});
|
||||
|
||||
it("records pending scenarios", () => {
|
||||
this.testState.onStartScenario(scenario, stepsToRun);
|
||||
this.testState.onFinishScenario(scenario);
|
||||
this.testState.onFinishTest();
|
||||
const json = generateCucumberJson(this.testState);
|
||||
assertCucumberJson(json, [
|
||||
statuses.SKIPPED,
|
||||
statuses.SKIPPED,
|
||||
statuses.SKIPPED,
|
||||
]);
|
||||
});
|
||||
it("records passed scenarios", () => {
|
||||
this.testState.onStartScenario(scenario, stepsToRun);
|
||||
this.testState.onStartStep(stepsToRun[0]);
|
||||
this.testState.onFinishStep(stepsToRun[0], statuses.PASSED);
|
||||
this.testState.onStartStep(stepsToRun[1]);
|
||||
this.testState.onFinishStep(stepsToRun[1], statuses.PASSED);
|
||||
this.testState.onStartStep(stepsToRun[2]);
|
||||
this.testState.onFinishStep(stepsToRun[2], statuses.PASSED);
|
||||
this.testState.onFinishScenario(scenario);
|
||||
this.testState.onFinishTest();
|
||||
const json = generateCucumberJson(this.testState);
|
||||
assertCucumberJson(json, [
|
||||
statuses.PASSED,
|
||||
statuses.PASSED,
|
||||
statuses.PASSED,
|
||||
]);
|
||||
});
|
||||
|
||||
it("records failed scenarios", () => {
|
||||
this.testState.onStartScenario(scenario, stepsToRun);
|
||||
this.testState.onStartStep(stepsToRun[0]);
|
||||
this.testState.onFinishStep(stepsToRun[0], statuses.PASSED);
|
||||
this.testState.onStartStep(stepsToRun[1]);
|
||||
this.testState.onFinishStep(stepsToRun[1], statuses.FAILED);
|
||||
this.testState.onFinishScenario(scenario);
|
||||
this.testState.onFinishTest();
|
||||
const json = generateCucumberJson(this.testState);
|
||||
assertCucumberJson(json, [
|
||||
statuses.PASSED,
|
||||
statuses.FAILED,
|
||||
statuses.SKIPPED,
|
||||
]);
|
||||
});
|
||||
|
||||
it("handles missing steps", () => {
|
||||
this.testState.onStartScenario(scenario, stepsToRun);
|
||||
this.testState.onStartStep(stepsToRun[0]);
|
||||
this.testState.onFinishStep(stepsToRun[0], statuses.PASSED);
|
||||
this.testState.onStartStep(stepsToRun[1]);
|
||||
this.testState.onFinishStep(stepsToRun[1], statuses.UNDEFINED);
|
||||
this.testState.onFinishScenario(scenario);
|
||||
this.testState.onFinishTest();
|
||||
const json = generateCucumberJson(this.testState);
|
||||
assertCucumberJson(json, [
|
||||
statuses.PASSED,
|
||||
statuses.UNDEFINED,
|
||||
statuses.SKIPPED,
|
||||
]);
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user