From ccd1163b46afc785b34ad19c400d33058004644f Mon Sep 17 00:00:00 2001
From: Rich Trott <rtrott@gmail.com>
Date: Tue, 7 Feb 2017 20:44:53 -0800
Subject: [PATCH] test: refactor test-fs-buffer

* Remove unneeded temp dir cleanup
* Add check for error in `.close()` callback
* Improve error reporting

On that last bullet point, the previous version of the test reported
errors like this:

```
AssertionError: [ '.empty-repl-history-file',
  '.node_repl_history',
  'GH-1899-output.js',
  'GH-892-request.js',
  'a.js',
  'a1.js',
  'agen deepStrictEqual [ '.empty-repl-history-file',
  '.node_repl_history',
  'GH-1899-output.js',
  'GH-892-request.js',
  'a.js',
  'a1.js',
  'agen
```

Now, they look like this:

```
AssertionError: expected *, got ! by hex decoding 2a
```

PR-URL: https://github.com/nodejs/node/pull/11232
Reviewed-By: James M Snell <jasnell@gmail.com>
---
 test/parallel/test-fs-buffer.js | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/test/parallel/test-fs-buffer.js b/test/parallel/test-fs-buffer.js
index 1452143a91c238..e7f575a437555e 100644
--- a/test/parallel/test-fs-buffer.js
+++ b/test/parallel/test-fs-buffer.js
@@ -18,8 +18,8 @@ assert.doesNotThrow(() => {
   fs.open(buf, 'w+', common.mustCall((err, fd) => {
     assert.ifError(err);
     assert(fd);
-    fs.close(fd, common.mustCall(() => {
-      fs.unlinkSync(buf);
+    fs.close(fd, common.mustCall((err) => {
+      assert.ifError(err);
     }));
   }));
 });
@@ -29,13 +29,17 @@ assert.throws(() => {
 }, /path must be a string or Buffer/);
 
 const dir = Buffer.from(common.fixturesDir);
-fs.readdir(dir, 'hex', common.mustCall((err, list) => {
+fs.readdir(dir, 'hex', common.mustCall((err, hexList) => {
   assert.ifError(err);
-  list = list.map((i) => {
-    return Buffer.from(i, 'hex').toString();
-  });
-  fs.readdir(dir, common.mustCall((err, list2) => {
+  fs.readdir(dir, common.mustCall((err, stringList) => {
     assert.ifError(err);
-    assert.deepStrictEqual(list, list2);
+    stringList.forEach((val, idx) => {
+      const fromHexList = Buffer.from(hexList[idx], 'hex').toString();
+      assert.strictEqual(
+        fromHexList,
+        val,
+        `expected ${val}, got ${fromHexList} by hex decoding ${hexList[idx]}`
+      );
+    });
   }));
 }));