| 1 | 'use strict';
|
|---|
| 2 |
|
|---|
| 3 | var path = require('path');
|
|---|
| 4 | var test = require('tape');
|
|---|
| 5 | var mockProperty = require('mock-property');
|
|---|
| 6 |
|
|---|
| 7 | var homedirPath = require.resolve('../lib/homedir');
|
|---|
| 8 | var asyncPath = require.resolve('../async');
|
|---|
| 9 | var libAsyncPath = require.resolve('../lib/async');
|
|---|
| 10 | var syncPath = require.resolve('../sync');
|
|---|
| 11 | var libSyncPath = require.resolve('../lib/sync');
|
|---|
| 12 |
|
|---|
| 13 | function mockNullHomedir(t) {
|
|---|
| 14 | t.teardown(mockProperty(require.cache, homedirPath, {
|
|---|
| 15 | value: { id: homedirPath, filename: homedirPath, loaded: true, exports: function () { return null; } }
|
|---|
| 16 | }));
|
|---|
| 17 | }
|
|---|
| 18 |
|
|---|
| 19 | test('async: null homedir does not throw', function (t) {
|
|---|
| 20 | t.plan(2);
|
|---|
| 21 |
|
|---|
| 22 | mockNullHomedir(t);
|
|---|
| 23 | t.teardown(mockProperty(require.cache, asyncPath, { 'delete': true }));
|
|---|
| 24 | t.teardown(mockProperty(require.cache, libAsyncPath, { 'delete': true }));
|
|---|
| 25 |
|
|---|
| 26 | var resolve = require('../lib/async');
|
|---|
| 27 |
|
|---|
| 28 | var dir = path.join(__dirname, 'resolver');
|
|---|
| 29 |
|
|---|
| 30 | resolve('./baz', { basedir: dir }, function (err, res) {
|
|---|
| 31 | t.error(err, 'no error');
|
|---|
| 32 | t.equal(res, path.join(dir, 'baz', 'quux.js'), 'resolves correctly with null homedir');
|
|---|
| 33 | });
|
|---|
| 34 | });
|
|---|
| 35 |
|
|---|
| 36 | test('sync: null homedir does not throw', function (t) {
|
|---|
| 37 | mockNullHomedir(t);
|
|---|
| 38 | t.teardown(mockProperty(require.cache, syncPath, { 'delete': true }));
|
|---|
| 39 | t.teardown(mockProperty(require.cache, libSyncPath, { 'delete': true }));
|
|---|
| 40 |
|
|---|
| 41 | var resolveSync = require('../lib/sync');
|
|---|
| 42 |
|
|---|
| 43 | var dir = path.join(__dirname, 'resolver');
|
|---|
| 44 |
|
|---|
| 45 | var res = resolveSync('./baz', { basedir: dir });
|
|---|
| 46 | t.equal(res, path.join(dir, 'baz', 'quux.js'), 'resolves correctly with null homedir');
|
|---|
| 47 |
|
|---|
| 48 | t.end();
|
|---|
| 49 | });
|
|---|