vimo-dt
Version:
A Vue2.x UI Project For Mobile & HyBrid
108 lines (105 loc) • 3.77 kB
JavaScript
;
var _config = require('../config');
var _platform = require('../../platform/platform');
var MOCK_CONFIG = {
urlString: 'http://www.xx.com/api/dashboard',
urlFunction: function urlFunction(platform) {
var type = platform.platforms()[0];
return 'http://www.xx.com/api/' + type + '/dashboard';
},
booleanValueTrue: true,
stringValueTrue: 'true',
booleanValueFalse: false,
'nullValue': null,
numberValue: 10
};
describe('config.js', function () {
var configInstance;
var platformInstance;
beforeAll(function () {
platformInstance = (0, _platform.setupPlatform)();
platformInstance.setQueryParams(new _platform.QueryParams('https://xxx.github.io/xxx?vmPageTransition=fade-right-transition&vmRecordPosition=false&vmTabsHighlight=true#/action-sheet'));
configInstance = (0, _config.setupConfig)(MOCK_CONFIG, platformInstance);
});
afterAll(function () {
platformInstance = null;
configInstance = null;
});
it('get():string', function () {
expect(configInstance.get('urlString')).toEqual('http://www.xx.com/api/dashboard');
});
it('get():function', function () {
expect(configInstance.get('urlFunction')).toEqual('http://www.xx.com/api/core/dashboard');
});
it('get():default', function () {
expect(configInstance.get('whatever', 'here')).toEqual('here');
});
it('get():undefined', function () {
expect(function () {
configInstance.get(undefined);
}).toThrow('config key is not defined');
});
it('get():withQueryParam:string', function () {
expect(configInstance.get('pageTransition')).toEqual('fade-right-transition');
});
it('get():withQueryParamL:true', function () {
expect(configInstance.get('tabsHighlight')).toBeTruthy();
});
it('get():withQueryParamL:false', function () {
expect(configInstance.get('recordPosition')).toBeFalsy();
});
it('get():platform-mode', function () {
expect(configInstance.get('mode')).toEqual('ios');
});
it('getBoolean():true<boolean>', function () {
expect(configInstance.getBoolean('booleanValueTrue')).toBeTruthy();
});
it('getBoolean():true<string>', function () {
expect(configInstance.getBoolean('stringValueTrue')).toBeTruthy();
});
it('getBoolean():false<boolean>', function () {
expect(configInstance.getBoolean('booleanValueFalse')).toBeFalsy();
});
it('getBoolean():nullValue', function () {
expect(configInstance.getBoolean('nullValue', '123')).toEqual('123');
});
it('getBoolean():object', function () {
expect(configInstance.getBoolean({ a: 123 })).toBeFalsy();
});
it('getNumber()', function () {
expect(configInstance.getNumber('numberValue')).toEqual(10);
});
it('getNumber():fallback', function () {
expect(configInstance.getNumber('numberValueNull', 100)).toEqual(100);
});
it('set(mode, key, value)', function () {
configInstance.set('core', 'name', 'Hsiang');
expect(configInstance.get('name')).toEqual('Hsiang');
});
it('set(key, value)', function () {
configInstance.set('name', 'Hsiang');
expect(configInstance.get('name')).toEqual('Hsiang');
});
it('settings()', function () {
expect(configInstance.settings()).toEqual(MOCK_CONFIG);
});
it('settings(mode:{key:value})', function () {
configInstance.settings('core', {
age: '10'
});
expect(configInstance.get('age')).toEqual('10');
});
it('settings({key:value})', function () {
configInstance.settings({
age: '10'
});
expect(configInstance.get('age')).toEqual('10');
});
it('cache()', function () {
configInstance.settings({
age: '10'
});
expect(configInstance.get('age')).toEqual('10');
expect(JSON.stringify(configInstance.cache())).toEqual('{"age":"10"}');
});
});