/// /// /// /// describe('DomContentBlockConverter', function () { const converter = new DomContentBlockConverter(); it('converts a dom element to a dom content block', function () { const element:HTMLElement = jQuery('
')[0]; const domContentBlock:DomContentBlock = converter.convert(element); const cb = domContentBlock.contentBlock; expect(domContentBlock.element).toBe(element); expect(cb.content).toBe(''); expect(cb.contentPath).toBe('my-path'); expect(cb.apiKey).toBe('my-key'); }); it('converts a dom element to a dom content block', function () { const str = '
'; const element:HTMLElement = jQuery(str)[0]; const domContentBlock:DomContentBlock = converter.convert(element); const cb = domContentBlock.contentBlock; expect(domContentBlock.privateApiKey).toBe('PK'); expect(domContentBlock.element).toBe(element); expect(cb.content).toBe(''); expect(cb.contentPath).toBe('my-path'); expect(cb.apiKey).toBe('my-key'); expect(cb.apiHost).toBe('host'); }); it('sets the private api key to null if private api key is empty', function () { const str = '
'; const domContentBlock:DomContentBlock = converter.convert(jQuery(str)[0]); expect(domContentBlock.privateApiKey).toBe(null); }); it('creates a new dom content block for a new content block', function () { const str = '
'; const domContentBlock:DomContentBlock = converter.convert(jQuery(str)[0]); const newBlock:ContentBlock = domContentBlock.contentBlock; const existingBlock:ContentBlock = new ContentBlock('new content!', newBlock.contentPath, newBlock.apiKey, newBlock.apiHost, newBlock.createdAt, newBlock.updatedAt); const domExistingContentBlock:DomContentBlock = converter.createNewBlock(domContentBlock, existingBlock); expect(domExistingContentBlock.contentBlock).toBe(existingBlock); expect(domExistingContentBlock.element).toBe(domContentBlock.element); expect(domExistingContentBlock.privateApiKey).toBe(domContentBlock.privateApiKey); }); it('creates a new editable dom content block for a new content block', function () { const str = '
'; const domContentBlock:DomContentBlock = converter.convert(jQuery(str)[0]); const newBlock:ContentBlock = domContentBlock.contentBlock; const existingBlock:ContentBlock = new ContentBlock('new content!', newBlock.contentPath, newBlock.apiKey, newBlock.apiHost, newBlock.createdAt, newBlock.updatedAt); const renuoUploadCredentials = new RenuoUploadCredentials('some', 'thing'); const editableCb = new EditableContentBlock(existingBlock, renuoUploadCredentials); const domExistingContentBlock:DomContentBlock = converter.createNewEditableBlock(domContentBlock, editableCb); expect(domExistingContentBlock.contentBlock).toBe(existingBlock); expect(domExistingContentBlock.element).toBe(domContentBlock.element); expect(domExistingContentBlock.privateApiKey).toBe(domContentBlock.privateApiKey); expect(domExistingContentBlock.renuoUploadCredentials).toBe(renuoUploadCredentials); }); it('sets the default content', function () { const str1 = '
'; expect(converter.convert(jQuery(str1)[0]).contentBlock.defaultContent).toBe(''); const str2 = '
test
'; expect(converter.convert(jQuery(str2)[0]).contentBlock.defaultContent).toBe('test'); }); it('sets the version to null if no version attribute is available', function () { const str1 = '
'; expect(converter.convert(jQuery(str1)[0]).contentBlock.version).toBe(null); }); it('sets the version to null if the version attribute is empty', function () { const str1 = '
'; expect(converter.convert(jQuery(str1)[0]).contentBlock.version).toBe(null); }); it('sets the version to the value specified in the correstponding data attribute', function () { const str1 = '
'; expect(converter.convert(jQuery(str1)[0]).contentBlock.version).toBe(15); }); });