From a53a076422ecc020b305192ee04e5ae4d0509dd0 Mon Sep 17 00:00:00 2001 From: Rick Waldron Date: Fri, 19 Aug 2016 12:35:26 -0400 Subject: [PATCH] Tests for ensuring preferences.json before write. Closes gh-821 Signed-off-by: Rick Waldron --- lib/preferences.js | 6 +++--- test/unit/preferences.js | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/lib/preferences.js b/lib/preferences.js index 3b80e926..79f34b9e 100644 --- a/lib/preferences.js +++ b/lib/preferences.js @@ -31,12 +31,12 @@ Preferences.write = function(key, value) { .then(contents => { contents = contents || {}; contents[key] = value; - fs.ensureFile(preferencesJson, function(err){ + fs.ensureFile(preferencesJson, error => { if (error) { log.error('Error writing preference', key, value); reject(error); } else { - fs.writeFile(preferencesJson, JSON.stringify(contents), function(error) { + fs.writeFile(preferencesJson, JSON.stringify(contents), error => { if (error) { log.error('Error writing preference', key, value); reject(error); @@ -45,7 +45,7 @@ Preferences.write = function(key, value) { } }); } - }) + }); }) .catch(error => { reject(error); diff --git a/test/unit/preferences.js b/test/unit/preferences.js index 07bb607c..c9e5bb07 100644 --- a/test/unit/preferences.js +++ b/test/unit/preferences.js @@ -134,6 +134,9 @@ exports['Preferences.write'] = { this.exists = this.sandbox.stub(fs, 'exists', (file, handler) => { handler(true); }); + this.ensureFile = this.sandbox.stub(fs, 'ensureFile', (file, handler) => { + handler(null); + }); this.readFile = this.sandbox.stub(fs, 'readFile', (file, handler) => { handler(null, JSON.stringify(this.state)); }); @@ -160,5 +163,21 @@ exports['Preferences.write'] = { test.equal(value, this.state[key]); test.done(); }); + }, + + writeEnsureFileFalse: function(test) { + test.expect(1); + + var key = 'key'; + var value = 'value'; + var error = 'error'; + + this.ensureFile.restore(); + this.ensureFile = this.sandbox.stub(fs, 'ensureFile', (file, handler) => handler(error)); + + Preferences.write(key, value).catch(rejection => { + test.equal(rejection, error); + test.done(); + }); } };