diff --git a/test/editor/model-test.js b/test/editor/model-test.js index 2a3584d508..2ba82d3c01 100644 --- a/test/editor/model-test.js +++ b/test/editor/model-test.js @@ -281,5 +281,38 @@ describe('editor/model', function() { expect(model.parts[0].type).toBe("plain"); expect(model.parts[0].text).toBe("try #define"); }); + + it('insert room pill without splitting at the semi-colon', () => { + const renderer = createRenderer(); + const pc = createPartCreator([{resourceId: "#room:server"}]); + const model = new EditorModel([], pc, renderer); + + model.update("#roo", "insertText", {offset: 4, atNodeEnd: true}); + + expect(renderer.count).toBe(1); + expect(model.parts.length).toBe(1); + expect(model.parts[0].type).toBe("pill-candidate"); + expect(model.parts[0].text).toBe("#roo"); + + model.update("#room:s", "insertText", {offset: 7, atNodeEnd: true}); + + expect(renderer.count).toBe(2); + expect(model.parts.length).toBe(1); + expect(model.parts[0].type).toBe("pill-candidate"); + expect(model.parts[0].text).toBe("#room:s"); + }); + + it('allow typing e-mail addresses without splitting at the @', () => { + const renderer = createRenderer(); + const pc = createPartCreator([{resourceId: "@alice", label: "Alice"}]); + const model = new EditorModel([], pc, renderer); + + model.update("foo@a", "insertText", {offset: 5, atNodeEnd: true}); + + expect(renderer.count).toBe(1); + expect(model.parts.length).toBe(1); + expect(model.parts[0].type).toBe("plain"); + expect(model.parts[0].text).toBe("foo@a"); + }); }); });