UNPKG

grapesjs_codeapps

Version:

Free and Open Source Web Builder Framework/SC Modification

108 lines (88 loc) 2.54 kB
const StorageManager = require('storage_manager'); const Models = require('./model/Models'); describe('Storage Manager', () => { describe('Main', () => { var obj; beforeEach(() => { obj = new StorageManager().init(); }); afterEach(() => { obj = null; }); test('Object exists', () => { expect(StorageManager).toBeTruthy(); }); test('Autosave is active by default', () => { expect(obj.isAutosave()).toEqual(true); }); test('Change autosave', () => { obj.setAutosave(0); expect(obj.isAutosave()).toEqual(false); }); test('Steps before save are set as default', () => { expect(obj.getStepsBeforeSave()).toEqual(1); }); test('Change steps before save', () => { obj.setStepsBeforeSave(5); expect(obj.getStepsBeforeSave()).toEqual(5); }); test('Add and get new storage', () => { obj.add('test', 'gen'); expect(obj.get('test')).toEqual('gen'); }); test('LocalStorage is set as default', () => { expect(obj.getCurrent()).toEqual('local'); }); test('Change storage type', () => { obj.setCurrent('remote'); expect(obj.getCurrent()).toEqual('remote'); }); test('Store do not execute if empty', () => { expect(obj.store({ item: 'test' })).toBeUndefined(); }); test('Load default storages ', () => { obj.loadDefaultProviders(); expect(obj.get('local')).toBeTruthy(); expect(obj.get('remote')).toBeTruthy(); expect(obj.get('test')).toBeFalsy(); }); describe('With custom storage', () => { var storeValue; var storageId = 'testStorage'; var storage = { store(data) { storeValue = data; }, load(keys) { return storeValue; } }; beforeEach(() => { storeValue = []; obj = new StorageManager().init({ type: storageId }); obj.add(storageId, storage); }); afterEach(() => { obj = null; }); test('Store and load data', () => { var data = { item: 'testData', item2: 'testData2' }; var data2 = {}; var id = obj.getConfig().id; data2[id + 'item'] = 'testData'; data2[id + 'item2'] = 'testData2'; obj.store(data); obj.load(['item', 'item2'], res => { expect(storeValue).toEqual(data2); expect(res).toEqual(data); }); }); }); }); Models.run(); });