From d98eea7a828e9ac6f7a677444fd2aced7b7d7305 Mon Sep 17 00:00:00 2001 From: Simon Paris Date: Thu, 12 Oct 2017 14:47:17 +0800 Subject: [PATCH] Added a test case for ContextModuleFactory.resolveDependencies --- test/ContextModuleFactory.test.js | 46 +++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 test/ContextModuleFactory.test.js diff --git a/test/ContextModuleFactory.test.js b/test/ContextModuleFactory.test.js new file mode 100644 index 00000000000..afa1c78995d --- /dev/null +++ b/test/ContextModuleFactory.test.js @@ -0,0 +1,46 @@ +/* globals describe, it, beforeEach */ +"use strict"; +require("should"); +const MemoryFs = require("memory-fs"); +const ContextModuleFactory = require("../lib/ContextModuleFactory"); + +describe("ContextModuleFactory", function() { + describe("resolveDependencies", function() { + let factory, memfs; + beforeEach(function() { + factory = new ContextModuleFactory([]); + memfs = new MemoryFs(); + }); + it("should not report an error when ENOENT errors happen", function(done) { + memfs.readdir = (dir, callback) => { + setTimeout(() => callback(null, ["/file"])); + }; + memfs.stat = (file, callback) => { + let err = new Error("fake ENOENT error"); + err.code = "ENOENT"; + setTimeout(() => callback(err, null)); + }; + factory.resolveDependencies(memfs, "/", true, /.*/, (err, res) => { + (!!err).should.be.false(); + res.should.be.an.Array(); + res.length.should.be.exactly(0); + done(); + }); + }); + it("should report an error when non-ENOENT errors happen", function(done) { + memfs.readdir = (dir, callback) => { + setTimeout(() => callback(null, ["/file"])); + }; + memfs.stat = (file, callback) => { + let err = new Error("fake EACCES error"); + err.code = "EACCES"; + setTimeout(() => callback(err, null)); + }; + factory.resolveDependencies(memfs, "/", true, /.*/, (err, res) => { + err.should.be.an.Error(); + (!!res).should.be.false(); + done(); + }); + }); + }); +});