You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a larger refactoring than I tend to prefer to do in a single
commit, but here goes.
- The path normalization of \ to / is made more comprehensive.
- Checking to ensure we aren't overwriting the cwd is done earlier in
the unpack process, and more thoroughly, so there is less need for
repetitive checks later.
- The cwd is checked at the start in our recursive mkdir, saving an
extra fs.mkdir call which would almost always result in an EEXIST.
- Many edge cases resulting in dangling file descriptors were found and
addressed. (Much as I complain about Windows stubbornly refusing to
delete files currently open, it did come in handy here.)
- The Unpack[MAKEFS] methods are refactored for readability, and no
longer rely on fall-through behavior which made the sync and async
versions slightly different in some edge cases.
- Many of the tests were refactored to use async rimraf (the better to
avoid Windows problems) and more modern tap affordances.
Note: coverage on Windows is not 100%, due to skipping many tests that
use symbolic links. Given the value of having those code paths covered,
I believe that adding istanbul hints to skip coverage of those portions
of the code would be a bad idea. And given the complexity and hazards
involved in mocking that much of the filesystem implementation, it's
probably best to just let Windows not have 100% coverage.
0 commit comments