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

feat: enable test file crawling for jest example #1506

Merged
merged 1 commit into from Jan 30, 2020

Conversation

mrmeku
Copy link
Collaborator

@mrmeku mrmeku commented Dec 26, 2019

PR Checklist

Before, the jest example macro used the runTestsByPath command line flag to specify test locations. Now, using a small patch to jest to enable symlinks, the more iodmatic method of using a test match glob pattern is used.

testMatch: ['**/*.test.js']

@@ -1,4 +1,3 @@
{
Copy link
Collaborator

Choose a reason for hiding this comment

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

do you mean to check in this change?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Maybe it shouldn't be part of this change, but in general I have to do this to rules_nodejs everytime I try to edit the repo in vscode. It breaks the bazel vscode extensions ability to format build files


function findNative(roots, extensions, ignore, callback) {
const args = Array.from(roots);
+ args.push('(');
Copy link
Collaborator

Choose a reason for hiding this comment

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

is there an issue or PR open on the upstream repo so there's a chance of unwinding this patch later?
if so add a comment somewhere pointing to it, so we'll know when it's time to unpatch

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

For my own reference, he's the PR I've started with Jest: jestjs/jest#9351

@@ -10,8 +10,6 @@ def jest_test(name, srcs, deps, jest_config, **kwargs):
"--ci",
]
args.extend(["--config", "$(location %s)" % jest_config])
Copy link
Collaborator

Choose a reason for hiding this comment

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

I was expecting to see a glob pattern being added here or in the place jest_test is called

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

The glob pattern was already present within jest.config.js (that's the idiomatic way of specifying tests to jest). Do you have a different API you would prefer?

+ args.push('(');
args.push('-type', 'f');
+ args.push('-o');
+ args.push('-type', 'l');
Copy link
Collaborator

Choose a reason for hiding this comment

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

I don't quite understand where the symlinks are appearing. The node-patches should make it so the source files appear to be in the runfiles tree, not symlinks out of the runfiles. Are you sure the fix belongs in jest and not in the node-patches? Can you show where the symlink appears and where it points?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

The symlinks appear within the runfiles tree of the testable target. nodejs_binary creates a runfiles directory which is filled with symlinks to the original files.

@alexeagle
Copy link
Collaborator

In a followup could you add something to the examples/jest README so users understand they also have to copy and apply the patch if they want their globs to work?

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

Successfully merging this pull request may close these issues.

None yet

3 participants