UNPKG

1.85 kBJavaScriptView Raw
1
2var lib = require('../');
3
4var fs = require('fs');
5var assert = require('assert');
6
7var data = new Buffer('testing 1 2 3');
8
9function checkOpenFile (res, flag) {
10
11 fs.writeSync(res.fd, data, 0, data.length, null);
12
13 if (flag === 'w+') {
14 var buf = new Buffer(data.length);
15 var bytesRead = fs.readSync(res.fd, buf, 0, data.length, 0);
16 assert.equal(bytesRead, data.length);
17 assert.equal(buf.toString(), data.toString());
18 }
19
20 fs.closeSync(res.fd);
21
22 var content = fs.readFileSync(res.path);
23 assert.equal(content.toString(), data.toString());
24
25}
26
27describe('open', function () {
28
29 var cleanup = [];
30
31 after(function () {
32
33 cleanup.forEach(function (obj) {
34 try { fs.closeSync(obj.fd); } catch (err) {}
35 try { fs.unlinkSync(obj.path); } catch (err) {}
36 });
37
38 cleanup = [];
39
40 });
41
42 it('creates temporary file for writing async', function (done) {
43
44 lib.open('w', function (err, res) {
45 assert.ifError(err);
46
47 cleanup.push(res);
48 checkOpenFile(res, 'w');
49
50 done();
51 });
52
53 });
54
55 it('creates temporary file for writing sync', function () {
56
57 var res = lib.openSync('w');
58
59 cleanup.push(res);
60 checkOpenFile(res, 'w');
61
62 });
63
64 it('creates temporary file for reading and writing async', function (done) {
65
66 lib.open('w+', function (err, res) {
67 assert.ifError(err);
68
69 cleanup.push(res);
70 checkOpenFile(res, 'w+');
71
72 done();
73 });
74
75 });
76
77 it('creates temporary file for reading and writing sync', function () {
78
79 var res = lib.openSync('w+');
80
81 cleanup.push(res);
82 checkOpenFile(res, 'w+');
83
84 });
85
86 it('should throw on unknown flag', function () {
87
88 assert.throws(function () {
89 lib.openSync('asd');
90 });
91
92 assert.throws(function () {
93 lib.open('asd', function () {
94 assert(false);
95 });
96 });
97
98 });
99
100});