1'use strict';
2require('../common');
3const assert = require('assert');
4const fs = require('fs');
5const callbackThrowValues = [null, true, false, 0, 1, 'foo', /foo/, [], {}];
6
7const { sep } = require('path');
8
9const tmpdir = require('../common/tmpdir');
10tmpdir.refresh();
11
12function testMakeCallback(cb) {
13  return function() {
14    // fs.mkdtemp() calls makeCallback() on its third argument
15    fs.mkdtemp(`${tmpdir.path}${sep}`, {}, cb);
16  };
17}
18
19function invalidCallbackThrowsTests() {
20  callbackThrowValues.forEach((value) => {
21    assert.throws(testMakeCallback(value), {
22      code: 'ERR_INVALID_ARG_TYPE',
23      name: 'TypeError'
24    });
25  });
26}
27
28invalidCallbackThrowsTests();
29