diff --git a/lib/migrations.js b/lib/migrations.js index 104c4ef24..ea4c437b4 100644 --- a/lib/migrations.js +++ b/lib/migrations.js @@ -1,3 +1,15 @@ 'use strict'; -module.exports = []; +function ensureSettingsFolder() { + const cwd = process.cwd(); + const fs = require('fs-extra'); + const path = require('path'); + + fs.ensureDirSync(path.resolve(cwd, 'content', 'settings')); +} + +module.exports = [{ + before: '1.7.0', + title: 'Create content/settings directory', + task: ensureSettingsFolder +}]; diff --git a/test/unit/migrations-spec.js b/test/unit/migrations-spec.js new file mode 100644 index 000000000..9c9ad83a2 --- /dev/null +++ b/test/unit/migrations-spec.js @@ -0,0 +1,27 @@ +'use strict'; + +const expect = require('chai').expect; +const sinon = require('sinon'); + +const migrations = require('../../lib/migrations'); + +describe('Unit: Migrations', function () { + describe('ensureSettingsFolder', function () { + const setupEnv = require('../utils/env'); + const path = require('path'); + const fs = require('fs'); + + it('creates settings folder if not existant', function () { + const env = setupEnv(); + const cwdStub = sinon.stub(process, 'cwd').returns(env.dir); + const ensureSettingsFolder = migrations[0].task; + + ensureSettingsFolder(); + expect(cwdStub.calledOnce).to.be.true; + expect(fs.existsSync(path.join(env.dir, 'content/settings'))).to.be.true; + + cwdStub.restore(); + env.cleanup(); + }); + }); +});