@schukai/monster
Version:
Monster is a simple library for creating fast, robust and lightweight websites.
81 lines (59 loc) • 2.71 kB
JavaScript
;
import {expect} from "chai"
import {Datasource} from "../../../source/data/datasource.mjs";
import {DataUrl} from "../../../source/types/dataurl.mjs";
describe('Datasource', function () {
it('should instance of Datasource ', function () {
expect(new Datasource()).to.be.instanceof(Datasource)
});
describe('Options', function () {
it('setOption should change value', function () {
const datasource = new Datasource();
expect(datasource.getOption('default')).to.be.undefined
datasource.setOption('default', true)
expect(datasource.getOption('default')).to.be.true
});
it('setOptions should set all values', function () {
const datasource = new Datasource();
expect(datasource.getOption('default')).to.be.undefined
datasource.setOptions({default: true})
expect(datasource.getOption('default')).to.be.true
});
it('setOptions should parse json string', function () {
const datasource = new Datasource();
datasource.setOptions('{"default":true,"nested":{"flag":1}}');
expect(datasource.getOption('default')).to.be.true
expect(datasource.getOption('nested.flag')).to.be.equal(1)
});
it('setOptions should parse data url json', function () {
const datasource = new Datasource();
const dataUrl = new DataUrl('{"default":true}', 'application/json', false).toString();
datasource.setOptions(dataUrl);
expect(datasource.getOption('default')).to.be.true
});
it('setOptions should throw on invalid json string', function () {
const datasource = new Datasource();
expect(() => datasource.setOptions('{')).to.throw(Error);
});
})
describe('rw', function () {
const datasource = new Datasource();
it('read should throw exeption', function () {
expect(() => datasource.read()).to.throw(Error);
});
it('write should throw exeption', function () {
expect(() => datasource.read()).to.throw(Error);
});
})
describe('get/set', function () {
const datasource = new Datasource();
it('get should return undefined', function () {
expect( datasource.get()).to.be.eql({});
});
it('write should throw exeption', function () {
expect( datasource.get()).to.be.eql({});
expect( datasource.set({a:'myvalue'})).to.be.instanceof(Datasource);
expect( datasource.get()).to.be.eql({a:'myvalue'});
});
})
})