memiens/test/main.js

135 lines
3.0 KiB
JavaScript
Raw Normal View History

2019-03-09 17:21:36 +00:00
const assert = require('assert')
const {
2019-09-09 10:10:46 +00:00
unlinkSync,
2019-03-09 17:21:36 +00:00
} = require('fs')
2019-09-09 10:10:46 +00:00
const Memiens = require('../').default
2019-03-09 17:21:36 +00:00
2019-09-09 10:10:46 +00:00
const filename = './test.yaml'
2019-03-09 17:21:36 +00:00
const deleteFile = () => {
2019-09-09 10:10:46 +00:00
try {
// Remove the test file
unlinkSync(filename)
} catch (e) {
}
2019-03-09 17:21:36 +00:00
}
2019-09-09 10:10:46 +00:00
describe('Memiens', () => {
2019-03-09 17:21:36 +00:00
2019-09-09 10:10:46 +00:00
after(deleteFile)
describe('Basics', () => {
deleteFile()
it('Instantiating without existing file', () => {
const Settings = new Memiens(filename)
})
2019-03-09 17:21:36 +00:00
2019-09-09 10:10:46 +00:00
it('Saving simple string', () => {
const Settings = new Memiens(filename)
2019-03-09 17:21:36 +00:00
2019-09-09 10:10:46 +00:00
const key = 'test'
const value = 'ok'
Settings.set(key, value)
assert.strictEqual(Settings.get(key), value)
})
})
describe('Preserve types', () => {
const Settings = new Memiens(filename)
const key = 'key'
const test = (value) => {
Settings.set(key, value)
const saved = Settings.get(key)
assert.strictEqual(saved, value)
}
it('string', () => {
test('my string')
})
it('string array', () => {
test(['my string', 'ohlala'])
})
it('number', () => {
test(42)
})
it('number array', () => {
test([42, 8])
})
it('boolean', () => {
test(true)
})
it('boolean array', () => {
test([true, false])
})
it('mixed', () => {
test(['a', 42, true])
})
})
describe('Persist', () => {
deleteFile()
const key = 'test'
const value = 42
it('Write', () => {
const Settings = new Memiens(filename)
Settings.set(key, value)
})
it('Read', () => {
const Settings = new Memiens(filename)
assert.strictEqual(Settings.get(key), value)
})
})
describe('Nested properties', () => {
deleteFile()
const data = {
a: {
b: {
c: [8, false],
},
},
}
it('Write', () => {
const Settings = new Memiens(filename)
Settings.set('a.b.c', data.a.b.c)
})
it('Read', () => {
const Settings = new Memiens(filename)
assert.deepStrictEqual(Settings.get('a'), data.a)
assert.deepStrictEqual(Settings.get('a.b'), data.a.b)
assert.deepStrictEqual(Settings.get('a.b.c'), data.a.b.c)
})
})
describe('Get with initializer', () => {
deleteFile()
const key = 'initialized.nested'
const value = 42
it('Getting', () => {
const Settings = new Memiens(filename)
assert.strictEqual(Settings.get(key, value), value)
})
it('Verify it was written', () => {
const Settings = new Memiens(filename)
assert.strictEqual(Settings.get(key), value)
})
})
2019-03-09 17:21:36 +00:00
})