UNPKG

grapesjs_codeapps

Version:

Free and Open Source Web Builder Framework/SC Modification

102 lines (89 loc) 2.62 kB
import 'whatwg-fetch'; const LocalStorage = require('storage_manager/model/LocalStorage'); const RemoteStorage = require('storage_manager/model/RemoteStorage'); module.exports = { run() { describe('LocalStorage', () => { var obj; var itemName = 'testItem'; var data = { item1: 'value1', item2: 'value2' }; beforeEach(() => { obj = new LocalStorage(); }); afterEach(() => { obj = null; }); test('Store and load items', () => { obj.store(data); var result = obj.load(['item1', 'item2']); expect(result).toEqual(data); }); test('Store, update and load items', () => { obj.store(data); obj.store({ item3: 'value3' }); obj.store({ item2: 'value22' }); var result = obj.load(['item1', 'item2', 'item3']); expect(result).toEqual({ item1: 'value1', item2: 'value22', item3: 'value3' }); }); test('Remove items', () => { var items = ['item1', 'item2', 'item3']; obj.store(data); obj.remove(items); expect(obj.load(items)).toEqual({}); }); }); describe('RemoteStorage', () => { var obj; var itemName = 'testItem'; var endpointStore = 'testStoreEndpoint'; var endpointLoad = 'testLoadEndpoint'; var params = { test: 'testValue' }; var storageOptions; var data; var mockResponse = (body = {}) => { return new window.Response(JSON.stringify(body), { status: 200, headers: { 'Content-type': 'application/json' } }); }; beforeEach(() => { data = { item1: 'value1', item2: 'value2' }; storageOptions = { urlStore: endpointStore, urlLoad: endpointLoad, params }; obj = new RemoteStorage(storageOptions); sinon .stub(obj, 'fetch') .returns(Promise.resolve(mockResponse({ data: 1 }))); }); afterEach(() => { obj.fetch.restore(); obj = null; }); test('Store data', () => { obj.store(data); const callResult = obj.fetch; expect(callResult.called).toEqual(true); expect(callResult.firstCall.args[0]).toEqual(endpointStore); }); test('Load data', () => { obj.load(['item1', 'item2']); const callResult = obj.fetch; expect(callResult.called).toEqual(true); expect(callResult.firstCall.args[0]).toEqual(endpointLoad); }); }); } };