Skip to content

Conversation

thecodrr
Copy link
Owner

We were using mock-fs for testing symlinks and some other things. Unfortunately, mock-fs does not support opendir API which will be used by the iterator API we plan on adding in the future. This PR migrates the symlink and other mock-fs dependent tests to use the actual filesystem instead. This has a number of advantages:

  • mock-fs is no longer maintained and will probably be phased out as soon as Node.js removes support for bindings
  • mock-fs does not always accurately represent how an actual filesystem works.

Since this PR changes how tests work, it should be tested on some real world cases as well.

cc @SuperchupuDev (would love if you can test this out with tinyglobby)

joinDirectoryPath is now responsible for building directory path
instead of building the path in pushDirectory.
this is in preparation for the iterator api which will use
opendir. opendir is not supported by mock-fs so we have to
move away from it in order to test it properly.
@SuperchupuDev
Copy link
Contributor

thanks for pinging me, this pr makes 9 tinyglobby tests fail:

test at test/index.test.ts:76:1
✖ negative patterns setting root as / (2.92105ms)
  AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
  + actual - expected
  
  + []
  - [
  -   'a/a.txt',
  -   'b/a.txt'
  - ]
  
      at TestContext.<anonymous> (file:///home/meow/code/tinyglobby/test/index.test.ts:78:10)
      at async Test.run (node:internal/test_runner/test:1088:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:763:7) {
    generatedMessage: true,
    code: 'ERR_ASSERTION',
    actual: [],
    expected: [ 'a/a.txt', 'b/a.txt' ],
    operator: 'deepStrictEqual'
  }

test at test/index.test.ts:157:1
✖ debug option (10.681461ms)
  AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
  
  16 !== 11
  
      at TestContext.<anonymous> (file:///home/meow/code/tinyglobby/test/index.test.ts:162:10)
      at async Test.run (node:internal/test_runner/test:1088:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:763:7) {
    generatedMessage: true,
    code: 'ERR_ASSERTION',
    actual: 16,
    expected: 11,
    operator: 'strictEqual'
  }

test at test/index.test.ts:167:1
✖ debug option from process.env (1.422483ms)
  AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
  
  16 !== 11
  
      at TestContext.<anonymous> (file:///home/meow/code/tinyglobby/test/index.test.ts:173:10)
      at async Test.run (node:internal/test_runner/test:1088:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:763:7) {
    generatedMessage: true,
    code: 'ERR_ASSERTION',
    actual: 16,
    expected: 11,
    operator: 'strictEqual'
  }

test at test/index.test.ts:210:1
✖ fully handle absolute patterns (0.533418ms)
  AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
  + actual - expected
  
  + []
  - [
  -   '../b/a.txt',
  -   'a.txt'
  - ]
  
      at TestContext.<anonymous> (file:///home/meow/code/tinyglobby/test/index.test.ts:212:10)
      at async Test.run (node:internal/test_runner/test:1088:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:763:7) {
    generatedMessage: true,
    code: 'ERR_ASSERTION',
    actual: [],
    expected: [ '../b/a.txt', 'a.txt' ],
    operator: 'deepStrictEqual'
  }

test at test/index.test.ts:220:1
✖ leading ../ (0.519443ms)
  AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
  + actual - expected
  
  + []
  - [
  -   '../b/a.txt',
  -   '../b/b.txt'
  - ]
  
      at TestContext.<anonymous> (file:///home/meow/code/tinyglobby/test/index.test.ts:222:10)
      at async Test.run (node:internal/test_runner/test:1088:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:763:7) {
    generatedMessage: true,
    code: 'ERR_ASSERTION',
    actual: [],
    expected: [ '../b/a.txt', '../b/b.txt' ],
    operator: 'deepStrictEqual'
  }

test at test/index.test.ts:225:1
✖ leading ../ with only dirs (0.670456ms)
  AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
  + actual - expected
  
  + []
  - [
  -   '../.a/a/'
  - ]
  
      at TestContext.<anonymous> (file:///home/meow/code/tinyglobby/test/index.test.ts:227:10)
      at async Test.run (node:internal/test_runner/test:1088:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:763:7) {
    generatedMessage: true,
    code: 'ERR_ASSERTION',
    actual: [],
    expected: [ '../.a/a/' ],
    operator: 'deepStrictEqual'
  }

test at test/index.test.ts:230:1
✖ leading ../ plus normal pattern (0.458028ms)
  AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
  + actual - expected
  
  + []
  - [
  -   '../b/a.txt',
  -   '../b/b.txt',
  -   'a.txt'
  - ]
  
      at TestContext.<anonymous> (file:///home/meow/code/tinyglobby/test/index.test.ts:232:10)
      at async Test.run (node:internal/test_runner/test:1088:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:763:7) {
    generatedMessage: true,
    code: 'ERR_ASSERTION',
    actual: [],
    expected: [ '../b/a.txt', '../b/b.txt', 'a.txt' ],
    operator: 'deepStrictEqual'
  }

test at test/index.test.ts:279:1
✖ deep with ../ (0.466744ms)
  AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
  + actual - expected
  
  + []
  - [
  -   '../.deep/a/a/a.txt',
  -   'a.txt'
  - ]
  
      at TestContext.<anonymous> (file:///home/meow/code/tinyglobby/test/index.test.ts:281:10)
      at async Test.run (node:internal/test_runner/test:1088:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:763:7) {
    generatedMessage: true,
    code: 'ERR_ASSERTION',
    actual: [],
    expected: [ '../.deep/a/a/a.txt', 'a.txt' ],
    operator: 'deepStrictEqual'
  }

test at test/index.test.ts:501:1
✖ relative self that points to . (0.296445ms)
  AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
  + actual - expected
  
  + []
  - [
  -   '.'
  - ]
  
      at TestContext.<anonymous> (file:///home/meow/code/tinyglobby/test/index.test.ts:503:10)
      at Test.runInAsyncScope (node:async_hooks:214:14)
      at Test.run (node:internal/test_runner/test:1081:25)
      at Test.processPendingSubtests (node:internal/test_runner/test:763:18)
      at Test.postRun (node:internal/test_runner/test:1210:19)
      at Test.run (node:internal/test_runner/test:1138:12)
      at async Test.processPendingSubtests (node:internal/test_runner/test:763:7) {
    generatedMessage: true,
    code: 'ERR_ASSERTION',
    actual: [],
    expected: [ '.' ],
    operator: 'deepStrictEqual'
  }

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

Successfully merging this pull request may close these issues.

2 participants