UNPKG

grapesjs_codeapps

Version:

Free and Open Source Web Builder Framework/SC Modification

128 lines (109 loc) 3.4 kB
var StorageManager = require('storage_manager'); var AssetManager = require('asset_manager'); var FileUploader = require('./view/FileUploader'); describe('Asset Manager', () => { describe('Main', () => { var obj; var imgObj; var storage; var storageId = 'testStorage'; var storageMock = { store(data) { storage = data; }, load(keys) { return storage; } }; beforeEach(() => { document.body.innerHTML = '<div id="asset-c"></div>'; imgObj = { type: 'image', src: 'path/to/image', width: 101, height: 102 }; obj = new AssetManager(); obj.init(); document.body.querySelector('#asset-c').appendChild(obj.render()); }); afterEach(() => { obj = null; }); test('Object exists', () => { expect(obj).toBeTruthy(); }); test('No assets inside', () => { expect(obj.getAll().length).toEqual(0); }); test('Add new asset', () => { obj.add(imgObj); expect(obj.getAll().length).toEqual(1); }); test('Added asset has correct data', () => { obj.add(imgObj); var asset = obj.get(imgObj.src); expect(asset.get('width')).toEqual(imgObj.width); expect(asset.get('height')).toEqual(imgObj.height); expect(asset.get('type')).toEqual(imgObj.type); }); test('Add asset with src', () => { obj.add(imgObj.src); var asset = obj.get(imgObj.src); expect(asset.get('type')).toEqual('image'); expect(asset.get('src')).toEqual(imgObj.src); }); test('Add asset with more src', () => { obj.add([imgObj.src, imgObj.src + '2']); expect(obj.getAll().length).toEqual(2); var asset1 = obj.getAll().at(0); var asset2 = obj.getAll().at(1); expect(asset1.get('src')).toEqual(imgObj.src); expect(asset2.get('src')).toEqual(imgObj.src + '2'); }); test('Remove asset', () => { obj.add(imgObj); obj.remove(imgObj.src); expect(obj.getAll().length).toEqual(0); }); test('Render assets', () => { obj.add(imgObj); expect(obj.render()).toBeTruthy(); }); describe('With storage', () => { var storageManager; beforeEach(() => { document.body.innerHTML = '<div id="asset-c"></div>'; storageManager = new StorageManager().init({ autoload: 0, type: storageId }); obj = new AssetManager().init({ stm: storageManager }); storageManager.add(storageId, storageMock); document.body.querySelector('#asset-c').appendChild(obj.render()); }); afterEach(() => { storageManager = null; }); test('Store and load data', () => { obj.add(imgObj); obj.store(); obj.remove(imgObj.src); obj.load({ assets: storage['gjs-assets'] }); var asset = obj.get(imgObj.src); expect(asset.get('width')).toEqual(imgObj.width); expect(asset.get('height')).toEqual(imgObj.height); expect(asset.get('type')).toEqual('image'); }); }); }); require('./model/Asset').run(); require('./model/AssetImage').run(); require('./model/Assets').run(); require('./view/AssetView').run(); require('./view/AssetImageView').run(); require('./view/AssetsView').run(); require('./view/FileUploader').run(); });