Skip to content

Commit

Permalink
Assert that cards are rendered in the editor, and are noneditable
Browse files Browse the repository at this point in the history
  • Loading branch information
bantic committed Jul 16, 2015
1 parent 8e47fee commit 27cd46e
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 4 deletions.
2 changes: 1 addition & 1 deletion src/js/editor/editor.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ import { getData, setData } from '../utils/element-utils';
import mixin from '../utils/mixin';
import EventListenerMixin from '../utils/event-listener';

var defaults = {
const defaults = {
placeholder: 'Write here...',
spellcheck: true,
autofocus: true,
Expand Down
4 changes: 3 additions & 1 deletion src/js/renderers/editor-dom.js
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,9 @@ class Visitor {
const card = detect(this.cards, card => card.name === section.name);

const env = { name: section.name };
renderNode.element = document.createElement('div');
const element = document.createElement('div');
element.contentEditable = 'false';
renderNode.element = element;
renderNode.parentNode.element.appendChild(renderNode.element);

if (card) {
Expand Down
53 changes: 51 additions & 2 deletions tests/unit/renderers/editor-dom-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import RenderTree from 'content-kit-editor/models/render-tree';
const DATA_URL = "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=";
let builder;

function render(renderTree) {
let renderer = new Renderer([]);
function render(renderTree, cards=[]) {
let renderer = new Renderer(cards);
return renderer.render(renderTree);
}

Expand Down Expand Up @@ -139,6 +139,55 @@ test('renders a post with image', (assert) => {
assert.equal(node.element.innerHTML, `<img src="${url}">`);
});

test('renders a card section', (assert) => {
let post = builder.generatePost();
let cardSection = builder.generateCardSection('my-card');
let card = {
name: 'my-card',
display: {
setup(element) {
element.innerHTML = 'I am a card';
}
}
};
post.appendSection(cardSection);

let node = new RenderNode(post);
let renderTree = new RenderTree(node);
node.renderTree = renderTree;
render(renderTree, [card]);

assert.equal(node.element.firstChild.innerHTML, 'I am a card',
'card is rendered');
});

test('renders a card section into a non-contenteditable element', (assert) => {
assert.expect(2);

let post = builder.generatePost();
let cardSection = builder.generateCardSection('my-card');
let card = {
name: 'my-card',
display: {
setup(element) {
element.setAttribute('id', 'my-card-div');
}
}
};
post.appendSection(cardSection);

let node = new RenderNode(post);
let renderTree = new RenderTree(node);
node.renderTree = renderTree;
render(renderTree, [card]);

let element = node.element.firstChild;
assert.equal(element.getAttribute('id'), 'my-card-div',
'precond - correct element selected');
assert.equal(element.contentEditable, 'false', 'is not contenteditable');
});


/*
test("It renders a renderTree with rendered dirty section", (assert) => {
/*
Expand Down

0 comments on commit 27cd46e

Please sign in to comment.