File tree Expand file tree Collapse file tree 2 files changed +27
-0
lines changed
Expand file tree Collapse file tree 2 files changed +27
-0
lines changed Original file line number Diff line number Diff line change 11import "regenerator-runtime/runtime" ; // needed for ``await`` support
22import Base from "@patternslib/patternslib/src/core/base" ;
33import Parser from "@patternslib/patternslib/src/core/parser" ;
4+ import events from "@patternslib/patternslib/src/core/events" ;
45import utils from "@patternslib/patternslib/src/core/utils" ;
56
67export const parser = new Parser ( "code-editor" ) ;
@@ -87,6 +88,7 @@ export default Base.extend({
8788 // initializing elements.
8889 this . codeeditor . onUpdate ( ( code ) => {
8990 this . el . value = code ;
91+ this . el . dispatchEvent ( events . input_event ( ) ) ;
9092 } ) ;
9193 }
9294 } ,
Original file line number Diff line number Diff line change @@ -41,4 +41,29 @@ describe("pat-code-editor", () => {
4141 expect ( editor_el . querySelectorAll ( ".token" ) . length ) . toBeGreaterThan ( 0 ) ;
4242 expect ( editor_el . innerHTML . includes ( "<" ) ) . toBe ( true ) ;
4343 } ) ;
44+
45+ it ( "Emits input events on update." , async ( ) => {
46+ document . body . innerHTML = `
47+ <textarea class="pat-code-editor"></textarea>
48+ ` ;
49+
50+ const el = document . querySelector ( ".pat-code-editor" ) ;
51+
52+ new Pattern ( el ) ;
53+ await utils . timeout ( 1 ) ;
54+
55+ const editor_el = document . querySelector ( "pre code" ) ;
56+
57+ let changed = false ;
58+ el . addEventListener ( "input" , ( ) => {
59+ changed = true ;
60+ } ) ;
61+
62+ editor_el . innerHTML = "okay-ish" ;
63+ editor_el . dispatchEvent ( new Event ( "keyup" ) ) ; // codejar listens on keyup.
64+ await utils . timeout ( 1 ) ;
65+
66+ expect ( el . value ) . toBe ( "okay-ish" ) ;
67+ expect ( changed ) . toBe ( true ) ;
68+ } ) ;
4469} ) ;
You can’t perform that action at this time.
0 commit comments