Implement DataPrefix module

This commit is contained in:
Juan Cruz Viotti 2014-11-07 12:42:02 -04:00
parent afe438ff82
commit 64e66e229f
2 changed files with 70 additions and 0 deletions

View File

@ -0,0 +1,15 @@
fsUtils = require('../fs-utils/fs-utils')
prefix = null
exports.get = ->
return prefix
exports.set = (newPrefix) ->
if not fsUtils.isValidPath(newPrefix)
throw new Error('Invalid path')
prefix = newPrefix
exports.clear = ->
prefix = null

View File

@ -0,0 +1,55 @@
expect = require('chai').expect
_ = require('lodash')
dataPrefix = require('./data-prefix')
PREFIXES =
main: '~/.resin'
new: '~/.resin-new'
invalid: { path: '~/.resin' }
describe 'DataPrefix', ->
describe 'given no prefix', ->
beforeEach ->
dataPrefix.clear()
describe '#get()', ->
it 'should return nothing', ->
expect(dataPrefix.get()).to.not.exist
describe '#set()', ->
it 'should be able to set a prefix', ->
expect(dataPrefix.get()).to.not.exist
dataPrefix.set(PREFIXES.main)
expect(dataPrefix.get()).to.equal(PREFIXES.main)
it 'should throw an error if passing an invalid path', ->
setInvalidPrefix = _.partial(dataPrefix.set, PREFIXES.invalid)
expect(setInvalidPrefix).to.throw(Error)
describe 'given a prefix', ->
beforeEach ->
dataPrefix.set(PREFIXES.main)
describe '#get()', ->
it 'should return the saved prefix', ->
expect(dataPrefix.get()).to.equal(PREFIXES.main)
describe '#set()', ->
it 'should be able to override the prefix', ->
expect(dataPrefix.get()).to.equal(PREFIXES.main)
dataPrefix.set(PREFIXES.new)
expect(dataPrefix.get()).to.equal(PREFIXES.new)
describe '#clear()', ->
it 'should clear the prefix', ->
expect(dataPrefix.get()).to.equal(PREFIXES.main)
dataPrefix.clear()
expect(dataPrefix.get()).to.not.exist