pwd-fs 2.4.2 → 3.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/.travis.yml +2 -3
  2. package/__tests__/__fmock.ts +45 -0
  3. package/__tests__/append.spec.ts +72 -0
  4. package/__tests__/bitmask.spec.ts +23 -0
  5. package/__tests__/chmod.spec.ts +78 -0
  6. package/__tests__/chown.spec.ts +88 -0
  7. package/{test → __tests__}/constructor.spec.ts +3 -6
  8. package/__tests__/copy.spec.ts +102 -0
  9. package/__tests__/mkdir.spec.ts +120 -0
  10. package/__tests__/read.spec.ts +92 -0
  11. package/__tests__/readdir.spec.ts +87 -0
  12. package/__tests__/remove.spec.ts +78 -0
  13. package/__tests__/rename.spec.ts +84 -0
  14. package/__tests__/stat.spec.ts +100 -0
  15. package/__tests__/symlink.spec.ts +95 -0
  16. package/__tests__/test.spec.ts +82 -0
  17. package/__tests__/write.spec.ts +104 -0
  18. package/appveyor.yml +2 -4
  19. package/jest.config.ts +14 -0
  20. package/lib/__tests__/__fmock.d.ts +5 -0
  21. package/lib/index.js +24 -0
  22. package/lib/powered-file-system.js +260 -0
  23. package/lib/recurse-io-sync.js +90 -0
  24. package/lib/recurse-io.js +194 -0
  25. package/lib/src/index.d.ts +6 -186
  26. package/lib/src/powered-file-system.d.ts +155 -0
  27. package/lib/src/recurse-io-sync.d.ts +10 -5
  28. package/lib/src/recurse-io.d.ts +14 -6
  29. package/package.json +18 -14
  30. package/readme.md +0 -13
  31. package/rollup.config.js +16 -0
  32. package/src/index.ts +29 -626
  33. package/src/powered-file-system.ts +525 -0
  34. package/src/recurse-io-sync.ts +77 -71
  35. package/src/recurse-io.ts +181 -176
  36. package/tsconfig.json +12 -5
  37. package/lib/src/index.js +0 -297
  38. package/lib/src/index.js.map +0 -1
  39. package/lib/src/recurse-io-sync.js +0 -83
  40. package/lib/src/recurse-io-sync.js.map +0 -1
  41. package/lib/src/recurse-io.js +0 -188
  42. package/lib/src/recurse-io.js.map +0 -1
  43. package/lib/test/append.spec.js +0 -99
  44. package/lib/test/append.spec.js.map +0 -1
  45. package/lib/test/bitmask.spec.js +0 -29
  46. package/lib/test/bitmask.spec.js.map +0 -1
  47. package/lib/test/chmod.spec.js +0 -104
  48. package/lib/test/chmod.spec.js.map +0 -1
  49. package/lib/test/chown.spec.js +0 -94
  50. package/lib/test/chown.spec.js.map +0 -1
  51. package/lib/test/constructor.spec.js +0 -20
  52. package/lib/test/constructor.spec.js.map +0 -1
  53. package/lib/test/copy.spec.js +0 -135
  54. package/lib/test/copy.spec.js.map +0 -1
  55. package/lib/test/mkdir.spec.js +0 -147
  56. package/lib/test/mkdir.spec.js.map +0 -1
  57. package/lib/test/read.spec.js +0 -104
  58. package/lib/test/read.spec.js.map +0 -1
  59. package/lib/test/readdir.spec.js +0 -112
  60. package/lib/test/readdir.spec.js.map +0 -1
  61. package/lib/test/remove.spec.js +0 -84
  62. package/lib/test/remove.spec.js.map +0 -1
  63. package/lib/test/rename.spec.js +0 -98
  64. package/lib/test/rename.spec.js.map +0 -1
  65. package/lib/test/stat.spec.js +0 -104
  66. package/lib/test/stat.spec.js.map +0 -1
  67. package/lib/test/symlink.spec.js +0 -118
  68. package/lib/test/symlink.spec.js.map +0 -1
  69. package/lib/test/test.spec.js +0 -89
  70. package/lib/test/test.spec.js.map +0 -1
  71. package/lib/test/write.spec.js +0 -133
  72. package/lib/test/write.spec.js.map +0 -1
  73. package/test/append.spec.ts +0 -125
  74. package/test/bitmask.spec.ts +0 -26
  75. package/test/chmod.spec.ts +0 -127
  76. package/test/chown.spec.ts +0 -118
  77. package/test/copy.spec.ts +0 -171
  78. package/test/mkdir.spec.ts +0 -187
  79. package/test/read.spec.ts +0 -130
  80. package/test/readdir.spec.ts +0 -134
  81. package/test/remove.spec.ts +0 -102
  82. package/test/rename.spec.ts +0 -122
  83. package/test/stat.spec.ts +0 -131
  84. package/test/symlink.spec.ts +0 -146
  85. package/test/test.spec.ts +0 -113
  86. package/test/write.spec.ts +0 -167
  87. /package/lib/{test → __tests__}/append.spec.d.ts +0 -0
  88. /package/lib/{test → __tests__}/bitmask.spec.d.ts +0 -0
  89. /package/lib/{test → __tests__}/chmod.spec.d.ts +0 -0
  90. /package/lib/{test → __tests__}/chown.spec.d.ts +0 -0
  91. /package/lib/{test → __tests__}/constructor.spec.d.ts +0 -0
  92. /package/lib/{test → __tests__}/copy.spec.d.ts +0 -0
  93. /package/lib/{test → __tests__}/mkdir.spec.d.ts +0 -0
  94. /package/lib/{test → __tests__}/read.spec.d.ts +0 -0
  95. /package/lib/{test → __tests__}/readdir.spec.d.ts +0 -0
  96. /package/lib/{test → __tests__}/remove.spec.d.ts +0 -0
  97. /package/lib/{test → __tests__}/rename.spec.d.ts +0 -0
  98. /package/lib/{test → __tests__}/stat.spec.d.ts +0 -0
  99. /package/lib/{test → __tests__}/symlink.spec.d.ts +0 -0
  100. /package/lib/{test → __tests__}/test.spec.d.ts +0 -0
  101. /package/lib/{test → __tests__}/write.spec.d.ts +0 -0
@@ -1,99 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const assert_1 = __importDefault(require("assert"));
7
- const path_1 = require("path");
8
- const mock_fs_1 = __importDefault(require("mock-fs"));
9
- const chance_1 = __importDefault(require("chance"));
10
- const src_1 = __importDefault(require("../src"));
11
- describe('append(src, data [, options])', () => {
12
- beforeEach(() => {
13
- const chance = new chance_1.default();
14
- (0, mock_fs_1.default)({
15
- 'tmpdir': {
16
- 'binapp': chance.string(),
17
- 'libxbase': mock_fs_1.default.directory()
18
- },
19
- 'flexapp': mock_fs_1.default.symlink({
20
- path: 'tmpdir/binapp'
21
- })
22
- });
23
- });
24
- afterEach(mock_fs_1.default.restore);
25
- it('Positive: Must append content to file', async () => {
26
- const pfs = new src_1.default();
27
- const chance = new chance_1.default();
28
- const before = await pfs.stat('./tmpdir/binapp');
29
- const payload = chance.string();
30
- await pfs.append('./tmpdir/binapp', payload);
31
- const after = await pfs.stat('./tmpdir/binapp');
32
- (0, assert_1.default)(after.size > before.size);
33
- });
34
- it('Positive: Must append content to file when path is absolute', async () => {
35
- const pfs = new src_1.default();
36
- const chance = new chance_1.default();
37
- const before = await pfs.stat('./tmpdir/binapp');
38
- const cwd = process.cwd();
39
- const payload = chance.string();
40
- await pfs.append(`${cwd}${path_1.sep}tmpdir${path_1.sep}binapp`, payload, {
41
- resolve: false
42
- });
43
- const after = await pfs.stat('./tmpdir/binapp');
44
- (0, assert_1.default)(after.size > before.size);
45
- });
46
- it(`Negative: Unexpected option 'flag' returns Error`, async () => {
47
- const pfs = new src_1.default();
48
- const chance = new chance_1.default();
49
- try {
50
- const payload = chance.string();
51
- await pfs.append('./tmpdir/binapp', payload, {
52
- flag: 'r'
53
- });
54
- }
55
- catch (err) {
56
- (0, assert_1.default)(err.errno === -9);
57
- }
58
- });
59
- describe('sync mode', () => {
60
- it(`Positive: Must append content to file`, async () => {
61
- const pfs = new src_1.default();
62
- const chance = new chance_1.default();
63
- const before = await pfs.stat('./tmpdir/binapp');
64
- const payload = chance.string();
65
- pfs.append('./tmpdir/binapp', payload, {
66
- sync: true
67
- });
68
- const after = await pfs.stat('./tmpdir/binapp');
69
- (0, assert_1.default)(after.size > before.size);
70
- });
71
- it('Positive: Must append content to file when path is absolute', async () => {
72
- const pfs = new src_1.default();
73
- const chance = new chance_1.default();
74
- const before = await pfs.stat('./tmpdir/binapp');
75
- const cwd = process.cwd();
76
- const payload = chance.string();
77
- pfs.append(`${cwd}${path_1.sep}tmpdir${path_1.sep}binapp`, payload, {
78
- sync: true,
79
- resolve: false
80
- });
81
- const after = await pfs.stat('./tmpdir/binapp');
82
- (0, assert_1.default)(after.size > before.size);
83
- });
84
- it(`Negative: Unexpected option 'flag' returns Error`, async () => {
85
- const pfs = new src_1.default();
86
- const chance = new chance_1.default();
87
- try {
88
- const payload = chance.string();
89
- pfs.append('./tmpdir/binapp', payload, {
90
- sync: true,
91
- flag: 'r'
92
- });
93
- }
94
- catch (err) {
95
- (0, assert_1.default)(err.errno === -9);
96
- }
97
- });
98
- });
99
- });
@@ -1 +0,0 @@
1
- {"version":3,"file":"append.spec.js","sourceRoot":"","sources":["../../test/append.spec.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,+BAA2B;AAC3B,sDAA6B;AAC7B,oDAA6B;AAC7B,iDAAuC;AAEvC,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE,CAAC;QAE5B,iBAAM,CAAC;YACL,QAAQ,EAAE;gBACR,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;gBACzB,UAAU,EAAE,iBAAM,CAAC,SAAS,EAAE;aAC/B;YACD,SAAS,EAAE,iBAAM,CAAC,OAAO,CAAC;gBACxB,IAAI,EAAE,eAAe;aACtB,CAAC;SACH,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,iBAAM,CAAC,OAAO,CAAC,CAAC;IAE1B,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,GAAG,GAAG,IAAI,aAAiB,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE,CAAC;QAE5B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEjD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAE7C,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEhD,gBAAM,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,GAAG,GAAG,IAAI,aAAiB,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE,CAAC;QAE5B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEjD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAEhC,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,UAAG,SAAS,UAAG,QAAQ,EAAE,OAAO,EAAE;YAC1D,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEhD,gBAAM,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,GAAG,GAAG,IAAI,aAAiB,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE,CAAC;QAE5B,IAAI;YACF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAEhC,MAAM,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,OAAO,EAAE;gBAC3C,IAAI,EAAE,GAAG;aACV,CAAC,CAAC;SACJ;QACD,OAAO,GAAG,EAAE;YACV,gBAAM,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;SAC1B;IACH,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,GAAG,GAAG,IAAI,aAAiB,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE,CAAC;YAE5B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAEhC,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,OAAO,EAAE;gBACrC,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAEhD,gBAAM,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC3E,MAAM,GAAG,GAAG,IAAI,aAAiB,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE,CAAC;YAE5B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAEjD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAEhC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,UAAG,SAAS,UAAG,QAAQ,EAAE,OAAO,EAAE;gBACpD,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAEhD,gBAAM,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,GAAG,GAAG,IAAI,aAAiB,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE,CAAC;YAE5B,IAAI;gBACF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBAEhC,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,OAAO,EAAE;oBACrC,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,GAAG;iBACV,CAAC,CAAC;aACJ;YACD,OAAO,GAAG,EAAE;gBACV,gBAAM,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const assert_1 = __importDefault(require("assert"));
7
- const src_1 = __importDefault(require("../src"));
8
- describe('static bitmask(mode: number)', () => {
9
- it('Positive: Calculate bitmask', () => {
10
- (0, assert_1.default)(src_1.default.bitmask(33024) === 0o400); // (r--------)
11
- (0, assert_1.default)(src_1.default.bitmask(33152) === 0o600); // (rw-------)
12
- (0, assert_1.default)(src_1.default.bitmask(33216) === 0o700); // (rwx------)
13
- (0, assert_1.default)(src_1.default.bitmask(32800) === 0o040); // (---r-----)
14
- (0, assert_1.default)(src_1.default.bitmask(32816) === 0o060); // (---rw----)
15
- (0, assert_1.default)(src_1.default.bitmask(32824) === 0o070); // (---rwx---)
16
- (0, assert_1.default)(src_1.default.bitmask(32772) === 0o004); // (------r--)
17
- (0, assert_1.default)(src_1.default.bitmask(32774) === 0o006); // (------rw-)
18
- (0, assert_1.default)(src_1.default.bitmask(32775) === 0o007); // (------rwx)
19
- });
20
- it(`Negative: Throw an exception if the argument is 'null' type`, () => {
21
- try {
22
- // @ts-ignore
23
- src_1.default.bitmask(null);
24
- }
25
- catch (err) {
26
- (0, assert_1.default)(err);
27
- }
28
- });
29
- });
@@ -1 +0,0 @@
1
- {"version":3,"file":"bitmask.spec.js","sourceRoot":"","sources":["../../test/bitmask.spec.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,iDAAuC;AAEvC,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,gBAAM,CAAC,aAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,cAAc;QAClE,gBAAM,CAAC,aAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,cAAc;QAClE,gBAAM,CAAC,aAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,cAAc;QAClE,gBAAM,CAAC,aAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,cAAc;QAClE,gBAAM,CAAC,aAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,cAAc;QAClE,gBAAM,CAAC,aAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,cAAc;QAClE,gBAAM,CAAC,aAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,cAAc;QAClE,gBAAM,CAAC,aAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,cAAc;QAClE,gBAAM,CAAC,aAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,cAAc;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,IAAI;YACF,aAAa;YACb,aAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACjC;QACD,OAAO,GAAG,EAAE;YACV,gBAAM,CAAC,GAAG,CAAC,CAAC;SACb;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,104 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const assert_1 = __importDefault(require("assert"));
7
- const path_1 = require("path");
8
- const mock_fs_1 = __importDefault(require("mock-fs"));
9
- const chance_1 = __importDefault(require("chance"));
10
- const src_1 = __importDefault(require("../src"));
11
- describe('chmod(src, mode [, options])', () => {
12
- beforeEach(() => {
13
- const chance = new chance_1.default();
14
- (0, mock_fs_1.default)({
15
- 'tmpdir': {
16
- 'binapp': chance.string(),
17
- 'libxbase': mock_fs_1.default.directory()
18
- },
19
- 'flexapp': mock_fs_1.default.symlink({
20
- path: 'tmpdir/binapp'
21
- })
22
- });
23
- });
24
- afterEach(mock_fs_1.default.restore);
25
- it('Positive: Changes directory and file permissions', async () => {
26
- const pfs = new src_1.default();
27
- await pfs.chmod('./tmpdir', 0o744);
28
- const { mode } = await pfs.stat('./tmpdir/binapp');
29
- const umask = src_1.default.bitmask(mode);
30
- (0, assert_1.default)(umask === 0o744);
31
- });
32
- it('Positive: Must be changes directory when path is absolute', async () => {
33
- const pfs = new src_1.default();
34
- const cwd = process.cwd();
35
- await pfs.chmod(`${cwd}${path_1.sep}tmpdir${path_1.sep}libxbase`, 0o744, {
36
- resolve: false
37
- });
38
- const { mode } = await pfs.stat('./tmpdir/libxbase');
39
- const umask = src_1.default.bitmask(mode);
40
- (0, assert_1.default)(umask === 0o744);
41
- });
42
- it('Negative: Search permission is denied on a component of the path prefix', async () => {
43
- const pfs = new src_1.default();
44
- try {
45
- await pfs.chmod('./tmpdir', 0);
46
- }
47
- catch (err) {
48
- (0, assert_1.default)(err.errno === -9);
49
- }
50
- });
51
- it('Negative: Throw if not exists resource', async () => {
52
- const pfs = new src_1.default();
53
- try {
54
- await pfs.chmod('./non-existent-source', 0o744);
55
- }
56
- catch (err) {
57
- (0, assert_1.default)(err.errno === -2);
58
- }
59
- });
60
- describe('sync mode', () => {
61
- it(`Positive: Changes directory and file permissions`, async () => {
62
- const pfs = new src_1.default();
63
- pfs.chmod('./tmpdir', 0o744, {
64
- sync: true
65
- });
66
- const { mode } = await pfs.stat('./tmpdir/binapp');
67
- const umask = src_1.default.bitmask(mode);
68
- (0, assert_1.default)(umask === 0o744);
69
- });
70
- it('Positive: Must be changes directory when path is absolute', async () => {
71
- const pfs = new src_1.default();
72
- const cwd = process.cwd();
73
- pfs.chmod(`${cwd}${path_1.sep}tmpdir${path_1.sep}libxbase`, 0o744, {
74
- sync: true,
75
- resolve: false
76
- });
77
- const { mode } = await pfs.stat('./tmpdir/libxbase');
78
- const umask = src_1.default.bitmask(mode);
79
- (0, assert_1.default)(umask === 0o744);
80
- });
81
- it('Negative: Search permission is denied on a component of the path prefix', async () => {
82
- const pfs = new src_1.default();
83
- try {
84
- pfs.chmod('./tmpdir', 0, {
85
- sync: true
86
- });
87
- }
88
- catch (err) {
89
- (0, assert_1.default)(err.errno === -9);
90
- }
91
- });
92
- it('Negative: Throw if not exists resource', async () => {
93
- const pfs = new src_1.default();
94
- try {
95
- pfs.chmod('./non-existent-source', 0o744, {
96
- sync: true
97
- });
98
- }
99
- catch (err) {
100
- (0, assert_1.default)(err.errno === -2);
101
- }
102
- });
103
- });
104
- });
@@ -1 +0,0 @@
1
- {"version":3,"file":"chmod.spec.js","sourceRoot":"","sources":["../../test/chmod.spec.ts"],"names":[],"mappings":"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"}
@@ -1,94 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const assert_1 = __importDefault(require("assert"));
7
- const path_1 = require("path");
8
- const mock_fs_1 = __importDefault(require("mock-fs"));
9
- const chance_1 = __importDefault(require("chance"));
10
- const src_1 = __importDefault(require("../src"));
11
- describe('chown(src, uid, gid [, options])', () => {
12
- beforeEach(() => {
13
- const chance = new chance_1.default();
14
- (0, mock_fs_1.default)({
15
- 'tmpdir': {
16
- 'binapp': chance.string(),
17
- 'libxbase': mock_fs_1.default.directory()
18
- },
19
- 'flexapp': mock_fs_1.default.symlink({
20
- path: 'tmpdir/binapp'
21
- })
22
- });
23
- });
24
- afterEach(mock_fs_1.default.restore);
25
- it('Positive: Changes the permissions of a file', async () => {
26
- const pfs = new src_1.default();
27
- await pfs.chown('./tmpdir', 0, 0);
28
- const { uid, gid } = await pfs.stat('./tmpdir');
29
- (0, assert_1.default)(uid === 0 && gid === 0);
30
- });
31
- it('Positive: Changes the permissions of a directory', async () => {
32
- const pfs = new src_1.default();
33
- await pfs.chown('./tmpdir/libxbase', 0, 0);
34
- const { uid, gid } = await pfs.stat('./tmpdir/libxbase');
35
- (0, assert_1.default)(uid === 0 && gid === 0);
36
- });
37
- it('Positive: Changes the permissions of a file, when path is absolute', async () => {
38
- const pfs = new src_1.default();
39
- const cwd = process.cwd();
40
- await pfs.chown(`${cwd}${path_1.sep}tmpdir${path_1.sep}binapp`, 1, 1, {
41
- resolve: false
42
- });
43
- const { uid, gid } = await pfs.stat('./tmpdir/binapp');
44
- (0, assert_1.default)(uid === 1 && gid === 1);
45
- });
46
- it('Negative: To a non-existent resource to return an Error', async () => {
47
- const pfs = new src_1.default();
48
- try {
49
- await pfs.chown('./non-existent-source', 1, 1);
50
- }
51
- catch (err) {
52
- (0, assert_1.default)(err.errno === -2);
53
- }
54
- });
55
- describe('sync mode', () => {
56
- it('Positive: Changes the permissions of a file', async () => {
57
- const pfs = new src_1.default();
58
- pfs.chown('./tmpdir/binapp', 1, 1, {
59
- sync: true
60
- });
61
- const { uid, gid } = await pfs.stat('./tmpdir/binapp');
62
- (0, assert_1.default)(uid === 1 && gid === 1);
63
- });
64
- it('Positive: Changes the permissions of a directory', async () => {
65
- const pfs = new src_1.default();
66
- pfs.chown('./tmpdir', 1, 1, {
67
- sync: true
68
- });
69
- const { uid, gid } = await pfs.stat('./tmpdir');
70
- (0, assert_1.default)(uid === 1 && gid === 1);
71
- });
72
- it('Positive: Changes the permissions of a file, when path is absolute', async () => {
73
- const pfs = new src_1.default();
74
- const cwd = process.cwd();
75
- pfs.chown(`${cwd}${path_1.sep}tmpdir${path_1.sep}binapp`, 1, 1, {
76
- sync: true,
77
- resolve: false
78
- });
79
- const { uid, gid } = await pfs.stat('./tmpdir/binapp');
80
- (0, assert_1.default)(uid === 1 && gid === 1);
81
- });
82
- it(`Negative: To a non-existent resource to return an Error`, async () => {
83
- const pfs = new src_1.default();
84
- try {
85
- pfs.chown('./non-existent-source', 1, 1, {
86
- sync: true
87
- });
88
- }
89
- catch (err) {
90
- (0, assert_1.default)(err.errno === -2);
91
- }
92
- });
93
- });
94
- });
@@ -1 +0,0 @@
1
- {"version":3,"file":"chown.spec.js","sourceRoot":"","sources":["../../test/chown.spec.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const assert_1 = __importDefault(require("assert"));
7
- const src_1 = __importDefault(require("../src"));
8
- describe('#constructor: new PoweredFileSystem(path)', () => {
9
- it('Positive: Must be backwards compatible with #require', () => {
10
- (0, assert_1.default)(require('../src') === src_1.default);
11
- });
12
- it('Positive: An empty path must match the context of the cwd', () => {
13
- const { pwd } = new src_1.default();
14
- (0, assert_1.default)(pwd === process.cwd());
15
- });
16
- it('Positive: Absolute path must match the context of the pwd', () => {
17
- const { pwd } = new src_1.default(__dirname);
18
- (0, assert_1.default)(pwd === __dirname);
19
- });
20
- });
@@ -1 +0,0 @@
1
- {"version":3,"file":"constructor.spec.js","sourceRoot":"","sources":["../../test/constructor.spec.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,iDAAuC;AAEvC,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACzD,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,gBAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,aAAiB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,aAAiB,EAAE,CAAC;QACxC,gBAAM,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,aAAiB,CAAC,SAAS,CAAC,CAAC;QACjD,gBAAM,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,135 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const assert_1 = __importDefault(require("assert"));
7
- const os_1 = __importDefault(require("os"));
8
- const path_1 = require("path");
9
- const mock_fs_1 = __importDefault(require("mock-fs"));
10
- const chance_1 = __importDefault(require("chance"));
11
- const src_1 = __importDefault(require("../src"));
12
- describe('copy(src, dir [, options])', () => {
13
- beforeEach(() => {
14
- const chance = new chance_1.default();
15
- (0, mock_fs_1.default)({
16
- 'tmpdir': {
17
- 'binapp': chance.string(),
18
- 'libxbase': mock_fs_1.default.directory()
19
- },
20
- 'flexapp': mock_fs_1.default.symlink({
21
- path: 'tmpdir/binapp'
22
- })
23
- });
24
- });
25
- afterEach(mock_fs_1.default.restore);
26
- it('Positive: Copying a item file', async () => {
27
- const pfs = new src_1.default();
28
- const dist = os_1.default.tmpdir();
29
- await pfs.copy('./tmpdir/binapp', dist);
30
- const { mode } = await pfs.stat(`${dist}/binapp`);
31
- const umask = src_1.default.bitmask(mode);
32
- (0, assert_1.default)(umask === 0o666);
33
- });
34
- it('Positive: Recursive copying a directory', async () => {
35
- const pfs = new src_1.default();
36
- const dist = os_1.default.tmpdir();
37
- await pfs.copy('./tmpdir', dist);
38
- const { mode } = await pfs.stat(`${dist}/tmpdir/libxbase`);
39
- const umask = src_1.default.bitmask(mode);
40
- (0, assert_1.default)(umask === 0o777);
41
- });
42
- it('Positive: Recursive copying a directory. Permission check of file', async () => {
43
- const pfs = new src_1.default();
44
- const dist = os_1.default.tmpdir();
45
- await pfs.copy('./tmpdir', dist);
46
- const { mode } = await pfs.stat(`${dist}/tmpdir/binapp`);
47
- const umask = src_1.default.bitmask(mode);
48
- (0, assert_1.default)(umask === 0o666);
49
- });
50
- it('Positive: Copying a item file when path is absolute', async () => {
51
- const pfs = new src_1.default();
52
- const cwd = process.cwd();
53
- const dist = os_1.default.tmpdir();
54
- await pfs.copy(`${cwd}${path_1.sep}tmpdir`, dist, {
55
- resolve: false
56
- });
57
- const { mode } = await pfs.stat(`${dist}/tmpdir/binapp`);
58
- const umask = src_1.default.bitmask(mode);
59
- (0, assert_1.default)(umask === 0o666);
60
- });
61
- it('Negative: Throw if not exists resource', async () => {
62
- const pfs = new src_1.default();
63
- try {
64
- await pfs.copy('./non-existent', '.');
65
- }
66
- catch (err) {
67
- (0, assert_1.default)(err.errno === -2);
68
- }
69
- });
70
- it('Negative: An attempt to copy to an existing resource should return an Error', async () => {
71
- const pfs = new src_1.default();
72
- try {
73
- await pfs.copy('./tmpdir', '.');
74
- }
75
- catch (err) {
76
- (0, assert_1.default)(err.errno === -17);
77
- }
78
- });
79
- describe('sync mode', () => {
80
- it('Positive: Copying a file', async () => {
81
- const pfs = new src_1.default();
82
- const dist = os_1.default.tmpdir();
83
- pfs.copy('./tmpdir/binapp', dist, {
84
- sync: true
85
- });
86
- const { mode } = await pfs.stat(`${dist}/binapp`);
87
- const umask = src_1.default.bitmask(mode);
88
- (0, assert_1.default)(umask === 0o666);
89
- });
90
- it('Positive: Recursive copying a directory', async () => {
91
- const pfs = new src_1.default();
92
- const dist = os_1.default.tmpdir();
93
- pfs.copy('./tmpdir', dist, {
94
- sync: true
95
- });
96
- const { mode } = await pfs.stat(`${dist}/tmpdir/libxbase`);
97
- const umask = src_1.default.bitmask(mode);
98
- (0, assert_1.default)(umask === 0o777);
99
- });
100
- it('Positive: Copying a item file when path is absolute', async () => {
101
- const pfs = new src_1.default();
102
- const cwd = process.cwd();
103
- const dist = os_1.default.tmpdir();
104
- pfs.copy(`${cwd}${path_1.sep}tmpdir`, dist, {
105
- sync: true,
106
- resolve: false
107
- });
108
- const { mode } = await pfs.stat(`${dist}/tmpdir/binapp`);
109
- const umask = src_1.default.bitmask(mode);
110
- (0, assert_1.default)(umask === 0o666);
111
- });
112
- it('Negative: Throw if not exists resource', async () => {
113
- const pfs = new src_1.default();
114
- try {
115
- pfs.copy('./non-existent', '.', {
116
- sync: true
117
- });
118
- }
119
- catch (err) {
120
- (0, assert_1.default)(err.errno === -2);
121
- }
122
- });
123
- it('Negative: An attempt to copy to an existing resource should return an Error', async () => {
124
- const pfs = new src_1.default();
125
- try {
126
- pfs.copy('./tmpdir', '.', {
127
- sync: true
128
- });
129
- }
130
- catch (err) {
131
- (0, assert_1.default)(err.errno === -17);
132
- }
133
- });
134
- });
135
- });
@@ -1 +0,0 @@
1
- {"version":3,"file":"copy.spec.js","sourceRoot":"","sources":["../../test/copy.spec.ts"],"names":[],"mappings":"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"}