Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix issue #127 - calling pipe of resolved ProcessPromise should throw Error instead of producing empty output #129

Conversation

atsu85
Copy link

@atsu85 atsu85 commented May 30, 2021

Fixes #127 using fail-fast approach - if pipe is called on resolved/awaited ProcessPromise, then throw Error instead of producing empty output

  • Tests pass
  • No changes to behaviour documented in README

@google-cla
Copy link

google-cla bot commented May 30, 2021

We found a Contributor License Agreement for you (the sender of this pull request), but were unable to find agreements for all the commit author(s) or Co-authors. If you authored these, maybe you used a different email address in the git commits than was used to sign the CLA (login here to double check)? If these were authored by someone else, then they will need to sign a CLA as well, and confirm that they're okay with these being contributed to Google.
In order to pass this check, please resolve this problem and then comment @googlebot I fixed it.. If the bot doesn't comment, it means it doesn't think anything has changed.

ℹ️ Googlers: Go here for more info.

@atsu85
Copy link
Author

atsu85 commented May 30, 2021

@googlebot I fixed it.

@google-cla
Copy link

google-cla bot commented May 30, 2021

We found a Contributor License Agreement for you (the sender of this pull request), but were unable to find agreements for all the commit author(s) or Co-authors. If you authored these, maybe you used a different email address in the git commits than was used to sign the CLA (login here to double check)? If these were authored by someone else, then they will need to sign a CLA as well, and confirm that they're okay with these being contributed to Google.
In order to pass this check, please resolve this problem and then comment @googlebot I fixed it.. If the bot doesn't comment, it means it doesn't think anything has changed.

ℹ️ Googlers: Go here for more info.

test.mjs Outdated
console.log("This was expected", e)
}
assert(processOutput.exitCode === 0)
assert(processOutput.stdout === '') // this is unexpected - intuitively would expect "Hello"
Copy link
Author

@atsu85 atsu85 May 30, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This wasn't intuitive for me (maybe only because i'm not very familiar with NodeJS and how pipes work in there)

assert(processOutput.stdout === '') // this is unexpected - intuitively would expect "Hello"
assert(processOutput.stderr === '')
if (processOutput) {
assert.fail('Expected failure, but got ' + processOutput[inspect.custom]())
Copy link
Author

@atsu85 atsu85 May 30, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this new (changed behaviour) fail-fast approach makes more sense to me - would have saved me from a bit of debugging

@atsu85 atsu85 force-pushed the issue-127-pipe-with-resolved-promise-should-throw branch from 67f542f to 07bbcd9 Compare May 31, 2021 06:52
@atsu85
Copy link
Author

atsu85 commented May 31, 2021

@googlebot I fixed it.

@antonmedv
Copy link
Collaborator

Something failing.

@antonmedv
Copy link
Collaborator

Fixed in 423d77d

@antonmedv antonmedv closed this Aug 13, 2021
@atsu85
Copy link
Author

atsu85 commented Aug 16, 2021

thanks, @antonmedv! I missed these lines from my original implementation that caused test suit to remain running (because of child process) even after the test completed successfully

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

pipe doesn't receive input if ProcessPromise is already resolved/awaited
2 participants