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

Remove cycle in printDiffs, diffLines and joinAlignedDiffs #10818

Merged
merged 6 commits into from
Nov 11, 2021

Conversation

raymondnumbergenerator
Copy link
Contributor

Summary

The jest-diff package has three files with cyclical dependencies. This makes the logic more confusing to follow and the distinction between files less clear. Several helper functions that should be private are also needed to be exported because of the cycles.

  • formatTrailingSpaces, printDiffLine, printDeleteLine, printInsertLine, printCommonLine and createPatchMark are moved from printDiffs to joinAlignedDiffs and made private.
  • hasCommonDiff in printDiffs is made private.
  • countChanges and printAnnotation are moved from printDiffs to diffLines and made private.
  • printDiffLines is moved from printDiffs to diffLines and exported there, imports are changed to reflect this.

Test plan

No new tests added, passes existing tests with yarn test.

I ran madge --circular to demonstrate that the cycles are gone.

Madge output before:

» madge --circular --extensions ts packages/jest-diff
Processed 24 files (453ms) (7 warnings)

✖ Found 2 circular dependencies!

1) src/diffLines.ts > src/printDiffs.ts
2) src/printDiffs.ts > src/joinAlignedDiffs.ts

Madge output after:

» madge --circular --extensions ts packages/jest-diff
Processed 24 files (449ms) (7 warnings)

✔ No circular dependency found!

@facebook-github-bot
Copy link
Contributor

Hi @raymondnumbergenerator!

Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file.

In order for us to review and merge your code, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

If you have received this in error or have any questions, please contact us at [email protected]. Thanks!

Copy link
Member

@SimenB SimenB left a comment

Choose a reason for hiding this comment

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

Thanks! could you add a changelog entry as well? just in case 🙂

@SimenB SimenB requested a review from jeysal November 14, 2020 10:20
@SimenB
Copy link
Member

SimenB commented Nov 17, 2020

Thanks @raymondnumbergenerator! Could you sign the CLA? Then I can merge 🙂

@facebook-github-bot
Copy link
Contributor

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Facebook open source project. Thanks!

@SimenB SimenB merged commit 42b020f into jestjs:main Nov 11, 2021
@SimenB
Copy link
Member

SimenB commented Nov 11, 2021

Thanks!

@github-actions
Copy link

This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
Please note this issue tracker is not a help forum. We recommend using StackOverflow or our discord channel for questions.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Dec 12, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants