quibble icon indicating copy to clipboard operation
quibble copied to clipboard

Add test for transitively requiring a module that is already cached

Open jalfd opened this issue 1 year ago • 0 comments

Given a module A, which is required by B, which again is required by C, one would expect the following to work:

  1. require module B
  2. quibble module A
  3. load module C

We would expect module C to reference B, which references the quibbled version of A. Instead, it references the original non-quibbled version.

This seems to happen because the loader, when processing C's require('./B'), sees that B itself is not quibbled, and therefore loads it normally.

And because B is already cached, and that version references the non-quibbled version of A, we pull in the non-quibbled A as well.

This commit just adds a (failing) test for the issue. I don't have a sufficient understanding of quibble's internals to try to write a fix as well.

jalfd avatar Jan 31 '24 21:01 jalfd