diff --git a/src/js/editor/editor.js b/src/js/editor/editor.js index 3e954bf52..bcd41cf86 100644 --- a/src/js/editor/editor.js +++ b/src/js/editor/editor.js @@ -429,7 +429,6 @@ class Editor { * programmatic API is still permitted. * * @method disableEditing - * @return undefined * @public */ disableEditing() { diff --git a/src/js/views/embed-intent.js b/src/js/views/embed-intent.js index 4c22841e0..c97f3aad5 100644 --- a/src/js/views/embed-intent.js +++ b/src/js/views/embed-intent.js @@ -59,6 +59,7 @@ class EmbedIntent extends View { const embedIntentHandler = () => { const { editor } = this; if (this._isDestroyed || editor._isDestroyed) { return; } + if (!editor.isEditable) { return; } let showElement; diff --git a/tests/acceptance/embed-intent-test.js b/tests/acceptance/embed-intent-test.js index efbe51a1e..6ad7e5f7b 100644 --- a/tests/acceptance/embed-intent-test.js +++ b/tests/acceptance/embed-intent-test.js @@ -154,3 +154,22 @@ test('clicking in empty mobiledoc shows embed intent', (assert) => { }); }); }); + +test('when editing is disabled, embedIntent does not show', (assert) => { + const done = assert.async(); + const mobiledoc = Helpers.mobiledoc.build(({post}) => post()); + editor = new Editor({mobiledoc}); + editor.disableEditing(); + editor.render(editorElement); + + assert.hasElement('#editor', 'precond - editor'); + assert.hasNoElement('#editor p', 'precond - editor has no p'); + + Helpers.dom.moveCursorTo($('#editor')[0]); + Helpers.dom.triggerEvent(document, 'click'); + + setTimeout(() => { + assertHasNoEmbedIntent(assert, 'embed intent not shown'); + done(); + }); +});