|
1 |
| -var assert = require('assert') |
2 |
| -var fs = require('fs') |
3 |
| -var os = require('os') |
4 |
| -var path = require('path') |
5 |
| -var rimraf = require('rimraf') |
6 |
| -var jf = require('../') |
| 1 | +const assert = require('assert') |
| 2 | +const fs = require('fs') |
| 3 | +const os = require('os') |
| 4 | +const path = require('path') |
| 5 | +const rimraf = require('rimraf') |
| 6 | +const jf = require('../') |
7 | 7 |
|
8 | 8 | /* global describe it beforeEach afterEach */
|
9 | 9 |
|
10 |
| -describe('+ readFileSync()', function () { |
11 |
| - var TEST_DIR |
| 10 | +describe('+ readFileSync()', () => { |
| 11 | + let TEST_DIR |
12 | 12 |
|
13 |
| - beforeEach(function (done) { |
| 13 | + beforeEach((done) => { |
14 | 14 | TEST_DIR = path.join(os.tmpdir(), 'jsonfile-tests-readfile-sync')
|
15 | 15 | rimraf.sync(TEST_DIR)
|
16 | 16 | fs.mkdir(TEST_DIR, done)
|
17 | 17 | })
|
18 | 18 |
|
19 |
| - afterEach(function (done) { |
| 19 | + afterEach((done) => { |
20 | 20 | rimraf.sync(TEST_DIR)
|
21 | 21 | done()
|
22 | 22 | })
|
23 | 23 |
|
24 |
| - it('should read and parse JSON', function () { |
25 |
| - var file = path.join(TEST_DIR, 'somefile3.json') |
26 |
| - var obj = { name: 'JP' } |
| 24 | + it('should read and parse JSON', () => { |
| 25 | + const file = path.join(TEST_DIR, 'somefile3.json') |
| 26 | + const obj = { name: 'JP' } |
27 | 27 | fs.writeFileSync(file, JSON.stringify(obj))
|
28 | 28 |
|
29 | 29 | try {
|
30 |
| - var obj2 = jf.readFileSync(file) |
| 30 | + const obj2 = jf.readFileSync(file) |
31 | 31 | assert.strictEqual(obj2.name, obj.name)
|
32 | 32 | } catch (err) {
|
33 | 33 | assert(err)
|
34 | 34 | }
|
35 | 35 | })
|
36 | 36 |
|
37 |
| - describe('> when invalid JSON', function () { |
38 |
| - it('should include the filename in the error', function () { |
39 |
| - var fn = 'somefile.json' |
40 |
| - var file = path.join(TEST_DIR, fn) |
| 37 | + describe('> when invalid JSON', () => { |
| 38 | + it('should include the filename in the error', () => { |
| 39 | + const fn = 'somefile.json' |
| 40 | + const file = path.join(TEST_DIR, fn) |
41 | 41 | fs.writeFileSync(file, '{')
|
42 | 42 |
|
43 |
| - assert.throws(function () { |
| 43 | + assert.throws(() => { |
44 | 44 | jf.readFileSync(file)
|
45 |
| - }, function (err) { |
| 45 | + }, (err) => { |
46 | 46 | assert(err instanceof Error)
|
47 | 47 | assert(err.message.match(fn))
|
48 | 48 | return true
|
49 | 49 | })
|
50 | 50 | })
|
51 | 51 | })
|
52 | 52 |
|
53 |
| - describe('> when invalid JSON and throws set to false', function () { |
54 |
| - it('should return null', function () { |
55 |
| - var file = path.join(TEST_DIR, 'somefile4-invalid.json') |
56 |
| - var data = '{not valid JSON' |
| 53 | + describe('> when invalid JSON and throws set to false', () => { |
| 54 | + it('should return null', () => { |
| 55 | + const file = path.join(TEST_DIR, 'somefile4-invalid.json') |
| 56 | + const data = '{not valid JSON' |
57 | 57 | fs.writeFileSync(file, data)
|
58 | 58 |
|
59 |
| - assert.throws(function () { |
| 59 | + assert.throws(() => { |
60 | 60 | jf.readFileSync(file)
|
61 | 61 | })
|
62 | 62 |
|
63 |
| - var obj = jf.readFileSync(file, { throws: false }) |
| 63 | + const obj = jf.readFileSync(file, { throws: false }) |
64 | 64 | assert.strictEqual(obj, null)
|
65 | 65 | })
|
66 | 66 | })
|
67 | 67 |
|
68 |
| - describe('> when invalid JSON and throws set to true', function () { |
69 |
| - it('should throw an exception', function () { |
70 |
| - var file = path.join(TEST_DIR, 'somefile4-invalid.json') |
71 |
| - var data = '{not valid JSON' |
| 68 | + describe('> when invalid JSON and throws set to true', () => { |
| 69 | + it('should throw an exception', () => { |
| 70 | + const file = path.join(TEST_DIR, 'somefile4-invalid.json') |
| 71 | + const data = '{not valid JSON' |
72 | 72 | fs.writeFileSync(file, data)
|
73 | 73 |
|
74 |
| - assert.throws(function () { |
| 74 | + assert.throws(() => { |
75 | 75 | jf.readFileSync(file, { throws: true })
|
76 | 76 | })
|
77 | 77 | })
|
78 | 78 | })
|
79 | 79 |
|
80 |
| - describe('> when json file is missing and throws set to false', function () { |
81 |
| - it('should return null', function () { |
82 |
| - var file = path.join(TEST_DIR, 'somefile4-invalid.json') |
| 80 | + describe('> when json file is missing and throws set to false', () => { |
| 81 | + it('should return null', () => { |
| 82 | + const file = path.join(TEST_DIR, 'somefile4-invalid.json') |
83 | 83 |
|
84 |
| - var obj = jf.readFileSync(file, { throws: false }) |
| 84 | + const obj = jf.readFileSync(file, { throws: false }) |
85 | 85 | assert.strictEqual(obj, null)
|
86 | 86 | })
|
87 | 87 | })
|
88 | 88 |
|
89 |
| - describe('> when json file is missing and throws set to true', function () { |
90 |
| - it('should throw an exception', function () { |
91 |
| - var file = path.join(TEST_DIR, 'somefile4-invalid.json') |
| 89 | + describe('> when json file is missing and throws set to true', () => { |
| 90 | + it('should throw an exception', () => { |
| 91 | + const file = path.join(TEST_DIR, 'somefile4-invalid.json') |
92 | 92 |
|
93 |
| - assert.throws(function () { |
| 93 | + assert.throws(() => { |
94 | 94 | jf.readFileSync(file, { throws: true })
|
95 | 95 | })
|
96 | 96 | })
|
97 | 97 | })
|
98 | 98 |
|
99 |
| - describe('> when JSON reviver is set', function () { |
100 |
| - it('should transform the JSON', function () { |
101 |
| - var file = path.join(TEST_DIR, 'somefile.json') |
102 |
| - var sillyReviver = function (k, v) { |
| 99 | + describe('> when JSON reviver is set', () => { |
| 100 | + it('should transform the JSON', () => { |
| 101 | + const file = path.join(TEST_DIR, 'somefile.json') |
| 102 | + const sillyReviver = function (k, v) { |
103 | 103 | if (typeof v !== 'string') return v
|
104 | 104 | if (v.indexOf('date:') < 0) return v
|
105 | 105 | return new Date(v.split('date:')[1])
|
106 | 106 | }
|
107 | 107 |
|
108 |
| - var obj = { |
| 108 | + const obj = { |
109 | 109 | name: 'jp',
|
110 | 110 | day: 'date:2015-06-19T11:41:26.815Z'
|
111 | 111 | }
|
112 | 112 |
|
113 | 113 | fs.writeFileSync(file, JSON.stringify(obj))
|
114 |
| - var data = jf.readFileSync(file, { reviver: sillyReviver }) |
| 114 | + const data = jf.readFileSync(file, { reviver: sillyReviver }) |
115 | 115 | assert.strictEqual(data.name, 'jp')
|
116 | 116 | assert(data.day instanceof Date)
|
117 | 117 | assert.strictEqual(data.day.toISOString(), '2015-06-19T11:41:26.815Z')
|
118 | 118 | })
|
119 | 119 | })
|
120 | 120 |
|
121 |
| - describe('> when passing encoding string as option', function () { |
122 |
| - it('should not throw an error', function () { |
123 |
| - var file = path.join(TEST_DIR, 'somefile.json') |
| 121 | + describe('> when passing encoding string as option', () => { |
| 122 | + it('should not throw an error', () => { |
| 123 | + const file = path.join(TEST_DIR, 'somefile.json') |
124 | 124 |
|
125 |
| - var obj = { |
| 125 | + const obj = { |
126 | 126 | name: 'jp'
|
127 | 127 | }
|
128 | 128 | fs.writeFileSync(file, JSON.stringify(obj))
|
129 | 129 |
|
| 130 | + let data |
130 | 131 | try {
|
131 |
| - var data = jf.readFileSync(file, 'utf8') |
| 132 | + data = jf.readFileSync(file, 'utf8') |
132 | 133 | } catch (err) {
|
133 | 134 | assert.ifError(err)
|
134 | 135 | }
|
135 | 136 | assert.strictEqual(data.name, 'jp')
|
136 | 137 | })
|
137 | 138 | })
|
138 | 139 |
|
139 |
| - describe('> w/ BOM', function () { |
140 |
| - it('should properly parse', function () { |
141 |
| - var file = path.join(TEST_DIR, 'file-bom.json') |
142 |
| - var obj = { name: 'JP' } |
143 |
| - fs.writeFileSync(file, '\uFEFF' + JSON.stringify(obj)) |
144 |
| - var data = jf.readFileSync(file) |
| 140 | + describe('> w/ BOM', () => { |
| 141 | + it('should properly parse', () => { |
| 142 | + const file = path.join(TEST_DIR, 'file-bom.json') |
| 143 | + const obj = { name: 'JP' } |
| 144 | + fs.writeFileSync(file, `\uFEFF${JSON.stringify(obj)}`) |
| 145 | + const data = jf.readFileSync(file) |
145 | 146 | assert.deepStrictEqual(obj, data)
|
146 | 147 | })
|
147 | 148 | })
|
|
0 commit comments