dependents / node-dependency-tree

Get the dependency tree of a module
MIT License
706 stars 84 forks source link

Fix tests on Node.js 20 #169

Open XhmikosR opened 1 year ago

XhmikosR commented 1 year ago

Something changed in Node.js 20 and tests fail on main since a few months now.

If someone figures out why, please make a PR and CC me.

GiladShoham commented 1 year ago

I have the same problem. @XhmikosR which version of node it started?

Seems like it works with 20.4.0 but fail on 20.5.0

GiladShoham commented 1 year ago

Maybe it's related to this change in 20.5.0 [986b46a567] - fs: add a fast-path for readFileSync utf-8 (Yagiz Nizipli) https://github.com/nodejs/node/pull/48658

GiladShoham commented 1 year ago

another relevant reference is here - https://github.com/kubernetes-client/javascript/pull/1202 and also this one - https://github.com/tschaub/mock-fs/issues/377

XhmikosR commented 7 months ago

@GiladShoham yeah you are probably right. Unsure how to make tests pass again on Node.js 20. If you have any suggestions feel free to make a PR and CC me.

EDIT: I just looked at your linked PRs. It seems it's just a matter of calling toString('utf-8'). Anyway, feel free to make a PR.

XhmikosR commented 7 months ago

I pushed a branch with debug enabled on CI and the issue seems to be with fs.existsSync:

Unsure how to proceed...

We are also hitting this in other repos like node-stylus-lookup:

EDIT: looks like it's a mock-fs issue? https://github.com/tschaub/mock-fs/issues/377