diff --git a/src/js/models/card-node.js b/src/js/models/card-node.js index 20c4feabf..8f61055e6 100644 --- a/src/js/models/card-node.js +++ b/src/js/models/card-node.js @@ -22,8 +22,11 @@ export default class CardNode { this.mode = mode; let method = mode === 'display' ? 'render' : 'edit'; + method = this.card[method]; - let rendered = this.card[method]({ + assert(`Card is missing "${method}" (tried to render mode: "${mode}")`, + !!method); + let rendered = method({ env: this.env, options: this.options, payload: this.section.payload diff --git a/tests/unit/editor/editor-events-test.js b/tests/unit/editor/editor-events-test.js index dbb79c785..650fd984a 100644 --- a/tests/unit/editor/editor-events-test.js +++ b/tests/unit/editor/editor-events-test.js @@ -161,6 +161,43 @@ test('postDidChange callback fired when post is modified via user input', (asser assert.equal(postChanged, 1, 'postDidChange fired once'); }); +test('postDidChange callback fired when card payload changes', (assert) => { + let env; + let cards = [{ + name: 'simple-card', + type: 'dom', + render({env: _env}) { + env = _env; + return $('