1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 | var createFsMock = function(mockFiles, mockDirs) {
|
8 | if (typeof mockFiles !== "object") {
|
9 | throw new TypeError("createFsMock expects a map of filename -> contents as first argument");
|
10 | }
|
11 | if (mockDirs !== undefined && typeof mockDirs !== "object") {
|
12 | throw new TypeError("createFsMock expects a map of pathname -> filenames as second argument");
|
13 | }
|
14 | return {
|
15 | _setFiles: function(newMockFiles) {
|
16 | mockFiles = newMockFiles;
|
17 | },
|
18 | _setDirs: function(newMockDirs) {
|
19 | mockDirs = newMockDirs;
|
20 | },
|
21 | read: jasmine.createSpy('fsReadSpy').and.callFake(function(filename) {
|
22 | if (!(filename in mockFiles)) {
|
23 | return Q.reject(new Error("unknown file: " + filename));
|
24 | }
|
25 | return Q.when(angular.copy(mockFiles[filename]));
|
26 | }),
|
27 | list: jasmine.createSpy('fsListSpy').and.callFake(function(dirname) {
|
28 |
|
29 | if (dirname[dirname.length - 1] === "/") {
|
30 | dirname = dirname.slice(0, -1);
|
31 | }
|
32 | if (!(dirname in mockDirs)) {
|
33 | return Q.reject(new Error("unknown dir: " + dirname));
|
34 | }
|
35 | return Q.when(angular.copy(mockDirs[dirname]));
|
36 | }),
|
37 | write: jasmine.createSpy('fsWriteSpy').and.callFake(function() {
|
38 | return Q.when(true);
|
39 | }),
|
40 | remove: jasmine.createSpy('fsRemoveSpy').and.callFake(function() {
|
41 | return Q.when(true);
|
42 | })
|
43 | };
|
44 | };
|