Skip to content

Commit 9e3ac32

Browse files
Bill77Marc Rooding
authored andcommitted
Fixed multiple file buffer bug.
* once opts.filename is set, all other files will use that same name.
1 parent c2ef652 commit 9e3ac32

File tree

4 files changed

+348
-16
lines changed

4 files changed

+348
-16
lines changed

index.js

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,24 @@ function gulpProtractorCucumberHtmlReport(opts) {
2626
cb(null, file);
2727
return;
2828
}
29+
30+
var fileName;
2931

3032
if (file.isBuffer()) {
3133
if (!opts.dest) {
3234
opts.dest = __dirname;
3335
}
34-
if (!opts.filename) {
35-
opts.filename = path.basename(gutil.replaceExtension(file.path, '.html'));
36+
37+
if (opts.filename) {
38+
fileName = opts.filename;
3639
}
40+
else {
41+
fileName = path.basename(gutil.replaceExtension(file.path, '.html'));
42+
}
43+
3744
var testResults = JSON.parse(file.contents);
3845

39-
var output = path.join(opts.dest, opts.filename);
46+
var output = path.join(opts.dest, fileName);
4047
fs.open(output, 'w+', function (err, fd) {
4148
if (err) {
4249
fs.mkdirsSync(opts.dest);
@@ -49,7 +56,7 @@ function gulpProtractorCucumberHtmlReport(opts) {
4956

5057
cb(null, file);
5158
});
52-
59+
5360
} else {
5461
throw new PluginError(PLUGIN_NAME, '[Error] Currently only buffers are supported');
5562
}

test/data/cucumber_report1.json

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
2+
[
3+
{
4+
"id": "As-a-Staff-Member-I-want-to-select-my-ID-or-username-and-view-Personal-Dashboard-so-that-I-can-manage-my-schedule,-tasks-and-students",
5+
"name": "As a Staff Member I want to select my ID or username and view Personal Dashboard so that I can manage my schedule, tasks and students",
6+
"description": "",
7+
"line": 1,
8+
"keyword": "Feature",
9+
"uri": "/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/uat_tests/tests/features/login.feature",
10+
"elements": [
11+
{
12+
"name": "Log in as a teacher",
13+
"id": "As-a-Staff-Member-I-want-to-select-my-ID-or-username-and-view-Personal-Dashboard-so-that-I-can-manage-my-schedule,-tasks-and-students;log-in-as-a-teacher",
14+
"line": 3,
15+
"keyword": "Scenario",
16+
"description": "",
17+
"type": "scenario",
18+
"steps": [
19+
{
20+
"name": "I login as teacher",
21+
"line": 4,
22+
"keyword": "Given ",
23+
"result": {
24+
"duration": 5819484382,
25+
"status": "passed"
26+
},
27+
"match": {}
28+
},
29+
{
30+
"name": "I log out",
31+
"line": 5,
32+
"keyword": "Then ",
33+
"result": {
34+
"duration": 158910995,
35+
"status": "passed"
36+
},
37+
"match": {}
38+
}
39+
]
40+
},
41+
{
42+
"name": "Log in as a student",
43+
"id": "As-a-Staff-Member-I-want-to-select-my-ID-or-username-and-view-Personal-Dashboard-so-that-I-can-manage-my-schedule,-tasks-and-students;log-in-as-a-student",
44+
"line": 8,
45+
"keyword": "Scenario",
46+
"description": "",
47+
"type": "scenario",
48+
"steps": [
49+
{
50+
"name": "I login as student",
51+
"line": 9,
52+
"keyword": "Given ",
53+
"result": {
54+
"error_message": "NoSuchElementError: no such element\n (Session info: chrome=43.0.2357.125)\n (Driver info: chromedriver=2.9.248304,platform=Linux 3.19.8-100.fc20.x86_64 x86_64) (WARNING: The server did not provide any stacktrace information)\nCommand duration or timeout: 12 milliseconds\nFor documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html\nBuild info: version: '2.45.0', revision: '5017cb8', time: '2015-02-26 23:59:50'\nSystem info: host: 'DEV-N176SI5', ip: '10.157.50.100', os.name: 'Linux', os.arch: 'i386', os.version: '3.19.8-100.fc20.x86_64', java.version: '1.8.0_45'\nDriver info: org.openqa.selenium.chrome.ChromeDriver\nCapabilities [{applicationCacheEnabled=false, rotatable=false, chrome={userDataDir=/tmp/.com.google.Chrome.RkrTRf}, takesHeapSnapshot=true, databaseEnabled=false, handlesAlerts=true, version=43.0.2357.125, platform=LINUX, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}]\nSession ID: 3c0f59c98573fad432c5d21011bcac04\n*** Element info: {Using=name, value=username}\n at new bot.Error (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/atoms/error.js:113:18)\n at Object.bot.response.checkResponse (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/atoms/response.js:106:9)\n at /home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:362:20\n at /home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/base.js:1582:15\n at [object Object].webdriver.promise.ControlFlow.runInNewFrame_ (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1654:20)\n at notify (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:465:12)\n at notifyAll (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:442:7)\n at resolve (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:420:7)\n at [object Object].fulfill (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:535:5)\n at /home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1520:10\n at /home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/base.js:1582:15\n at [object Object].webdriver.promise.ControlFlow.runInNewFrame_ (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1654:20)\n at notify (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:465:12)\n at notifyAll (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:442:7)\n at resolve (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:420:7)\n at fulfill (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:535:5)\n at /home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/base.js:1582:15\n at [object Object].webdriver.promise.ControlFlow.runInNewFrame_ (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1654:20)\n at notify (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:465:12)\n at notifyAll (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:442:7)\n at resolve (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:420:7)\n at [object Object].fulfill (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:535:5)\n at /home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:721:49\n at /home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/http/http.js:96:5\n at IncomingMessage.<anonymous> (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/http/index.js:131:7)\n at IncomingMessage.emit (events.js:117:20)\n at _stream_readable.js:944:16\n at process._tickDomainCallback (node.js:486:13)\n==== async task ====\nWebDriver.findElement(By.name(\"username\"))\n at [object Object].webdriver.WebDriver.schedule (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:345:15)\n at [object Object].webdriver.WebDriver.findElement (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/node_modules/grunt-protractor-runner/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:819:17)\n at Fn.module.exports.Page.create.userName.get (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/uat_tests/tests/features/page/loginPage.js:6:55)\n at Fn.module.exports.Page.create.setUserName.value (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/uat_tests/tests/features/page/loginPage.js:10:52)\n at World.<anonymous> (/home/dominikajedrzejczak/git/a_poc_nse/nse-learning-services-client/uat_tests/tests/features/context/loginSteps.js:47:21)\n at process._tickDomainCallback (node.js:486:13)",
55+
"duration": 1126260826,
56+
"status": "failed"
57+
},
58+
"match": {}
59+
},
60+
{
61+
"name": "I log out",
62+
"line": 10,
63+
"keyword": "Then ",
64+
"result": {
65+
"status": "skipped"
66+
},
67+
"match": {}
68+
}
69+
]
70+
},
71+
{
72+
"name": "Set and verify bookmark tool",
73+
"id": "As-a-Staff-Member-I-want-to-select-my-ID-or-username-and-view-Personal-Dashboard-so-that-I-can-manage-my-schedule,-tasks-and-students;set-and-verify-bookmark-tool",
74+
"line": 12,
75+
"keyword": "Scenario",
76+
"description": "",
77+
"type": "scenario",
78+
"steps": [
79+
{
80+
"name": "I login as teacher",
81+
"line": 13,
82+
"keyword": "Given ",
83+
"result": {
84+
"duration": 3596225465,
85+
"status": "passed"
86+
},
87+
"match": {}
88+
},
89+
{
90+
"name": "I set bookmark tool for student 1 on:",
91+
"line": 14,
92+
"keyword": "When ",
93+
"rows": [
94+
{
95+
"cells": [
96+
"level",
97+
"unit",
98+
"lesson"
99+
]
100+
},
101+
{
102+
"cells": [
103+
"2",
104+
"5",
105+
"2"
106+
]
107+
}
108+
],
109+
"result": {
110+
"duration": 13358468517,
111+
"status": "passed"
112+
},
113+
"match": {}
114+
},
115+
{
116+
"name": "I should see bookmark set on:",
117+
"line": 17,
118+
"keyword": "Then ",
119+
"rows": [
120+
{
121+
"cells": [
122+
"level",
123+
"unit",
124+
"lesson"
125+
]
126+
},
127+
{
128+
"cells": [
129+
"2",
130+
"5",
131+
"2"
132+
]
133+
}
134+
],
135+
"result": {
136+
"duration": 1646766144,
137+
"status": "passed"
138+
},
139+
"match": {}
140+
}
141+
]
142+
}
143+
]
144+
}
145+
146+
]

0 commit comments

Comments
 (0)