Refactored test-http-allow-req-after-204-res file to use countdown#17211
Refactored test-http-allow-req-after-204-res file to use countdown#17211mithunsasidharan wants to merge 1 commit intonodejs:masterfrom mithunsasidharan:master
test-http-allow-req-after-204-res file to use countdown#17211Conversation
There was a problem hiding this comment.
this was basically used as the counter, so i do not think it's necessary anymore (hardcoding the method into the request is enough).
There was a problem hiding this comment.
@Bamieh : Thanks. I've updated the PR. Kindly review!
aqrln
left a comment
There was a problem hiding this comment.
Hi and thanks a lot for your contribution! I left a couple of comments.
There was a problem hiding this comment.
Can you please wrap the callback into common.mustCall()?
Something like this:
const countdown = new Countdown(methods.length, common.mustCall(() => {
server.close();
}));There was a problem hiding this comment.
Missing new line at the end of file.
|
@aqrln : Thanks for the feedback. I've updated the PR with changes. I accidentally closed the PR...apologies for that. Kindly review! |
There was a problem hiding this comment.
Now that you removed the methods array, it should be codes.length, shouldn't it?
There was a problem hiding this comment.
@aqrln : Thanks. I've fixed it..kindly review.
|
CI is failing on this. |
|
This patch works diff --git a/test/common/countdown.js b/test/common/countdown.js
index 6a22be0a07..93bdbbfb16 100644
--- a/test/common/countdown.js
+++ b/test/common/countdown.js
@@ -17,6 +17,7 @@ class Countdown {
assert(this[kLimit] > 0, 'Countdown expired');
if (--this[kLimit] === 0)
this[kCallback]();
+ return this[kLimit];
}
get remaining() {
diff --git a/test/parallel/test-http-allow-req-after-204-res.js b/test/parallel/test-http-allow-req-after-204-res.js
index cd55a4f17c..53237f6677 100644
--- a/test/parallel/test-http-allow-req-after-204-res.js
+++ b/test/parallel/test-http-allow-req-after-204-res.js
@@ -23,12 +23,12 @@
const common = require('../common');
const http = require('http');
const assert = require('assert');
+const Countdown = require('../common/countdown');
// first 204 or 304 works, subsequent anything fails
const codes = [204, 200];
-// Methods don't really matter, but we put in something realistic.
-const methods = ['DELETE', 'DELETE'];
+const countdown = new Countdown(codes.length, () => server.close());
const server = http.createServer(common.mustCall((req, res) => {
const code = codes.shift();
@@ -39,17 +39,13 @@ const server = http.createServer(common.mustCall((req, res) => {
}, codes.length));
function nextRequest() {
- const method = methods.shift();
-
- const request = http.request({
+ const request = http.get({
port: server.address().port,
- method: method,
path: '/'
}, common.mustCall((response) => {
response.on('end', common.mustCall(() => {
- if (methods.length === 0) {
- server.close();
- } else {
+ if (countdown.dec()) {
// throws error:
nextRequest();
// works just fine: |
|
@thefourtheye : Thanks for suggesting the correction. I've update the PR. Kindly review! |
|
@maclover7 : Kindly run the CI for this PR too. Thanks ! |
There was a problem hiding this comment.
No strong opinion, but instead of modifying common/countdown.js, you can just use the existing API and do something like
countdown.dec();
if (countdown.remaining > 0) {
...
}There was a problem hiding this comment.
@aqrln : I feel making the change in countdown.jswill be better as it makes the test case condition more readable and save an extra line! Kindly suggest. Also, could you please run the CI. I've fixed the lint issues. Thanks.
There was a problem hiding this comment.
@mithunsasidharan sure, no problem. In the future, please run make -j4 test locally before pushing to the PR branch to save your time and the number of review iterations. Thanks!
|
Landed in f6926d5 Thanks for the contribution! ✨ 🎉 |
PR-URL: #17211 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Alexey Orlenko <eaglexrlnk@gmail.com> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: #17211 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Alexey Orlenko <eaglexrlnk@gmail.com> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: #17211 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Alexey Orlenko <eaglexrlnk@gmail.com> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: #17211 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Alexey Orlenko <eaglexrlnk@gmail.com> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: #17211 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Alexey Orlenko <eaglexrlnk@gmail.com> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: #17211 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Alexey Orlenko <eaglexrlnk@gmail.com> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Refactored the test case
test-http-allow-req-after-204-resto use countdown, as per issue #17169Checklist
make -j4 test(UNIX), orvcbuild test(Windows) passesAffected core subsystem(s)
test