@@ -32,7 +32,7 @@ class REPLStream extends ArrayStream {
3232 return true ;
3333 }
3434
35- wait ( lookFor = PROMPT ) {
35+ wait ( ) {
3636 if ( this . waitingForResponse ) {
3737 throw new Error ( 'Currently waiting for response to another command' ) ;
3838 }
@@ -43,7 +43,7 @@ class REPLStream extends ArrayStream {
4343 reject ( err ) ;
4444 } ;
4545 const onLine = ( ) => {
46- if ( this . lines [ this . lines . length - 1 ] . includes ( lookFor ) ) {
46+ if ( this . lines [ this . lines . length - 1 ] . includes ( PROMPT ) ) {
4747 this . removeListener ( 'error' , onError ) ;
4848 this . removeListener ( 'line' , onLine ) ;
4949 resolve ( this . lines ) ;
@@ -64,8 +64,8 @@ const testMe = repl.start({
6464 breakEvalOnSigint : true
6565} ) ;
6666
67- function runAndWait ( cmds , lookFor ) {
68- const promise = putIn . wait ( lookFor ) ;
67+ function runAndWait ( cmds ) {
68+ const promise = putIn . wait ( ) ;
6969 for ( const cmd of cmds ) {
7070 if ( typeof cmd === 'string' ) {
7171 putIn . run ( [ cmd ] ) ;
@@ -84,108 +84,67 @@ async function ordinaryTests() {
8484 'function koo() { return Promise.resolve(4); }'
8585 ] ) ;
8686 const testCases = [
87- [ 'await Promise.resolve(0)' ,
88- // Auto completion preview with colors stripped.
89- [ 'awaitaititt Proroomiseisesee.resolveolvelvevee(0)\r' , '0' ]
90- ] ,
91- [ '{ a: await Promise.resolve(1) }' ,
92- // Auto completion preview with colors stripped.
93- [ '{ a: awaitaititt Proroomiseisesee.resolveolvelvevee(1) }\r' ,
94- '{ a: 1 }' ]
95- ] ,
96- [ '_' , '{ a: 1 }\r' , { line : 0 } ] ,
97- [ 'let { aa, bb } = await Promise.resolve({ aa: 1, bb: 2 }), f = 5;' ,
98- [
99- 'letett { aa, bb } = awaitaititt Proroomiseisesee.resolveolvelvevee' +
100- '({ aa: 1, bb: 2 }), f = 5;\r'
101- ]
102- ] ,
103- [ 'aa' , [ '1\r' , '1' ] ] ,
104- [ 'bb' , [ '2\r' , '2' ] ] ,
105- [ 'f' , [ '5\r' , '5' ] ] ,
106- [ 'let cc = await Promise.resolve(2)' ,
107- [ 'letett cc = awaitaititt Proroomiseisesee.resolveolvelvevee(2)\r' ]
108- ] ,
109- [ 'cc' , [ '2\r' , '2' ] ] ,
110- [ 'let dd;' , [ 'letett dd;\r' ] ] ,
111- [ 'dd' , [ 'undefined\r' ] ] ,
112- [ 'let [ii, { abc: { kk } }] = [0, { abc: { kk: 1 } }];' ,
113- [ 'letett [ii, { abc: { kook } }] = [0, { abc: { kook: 1 } }];\r' ] ] ,
114- [ 'ii' , [ '0\r' , '0' ] ] ,
115- [ 'kk' , [ '1\r' , '1' ] ] ,
116- [ 'var ll = await Promise.resolve(2);' ,
117- [ 'var letl = awaitaititt Proroomiseisesee.resolveolvelvevee(2);\r' ]
118- ] ,
119- [ 'll' , [ '2\r' , '2' ] ] ,
120- [ 'foo(await koo())' ,
121- [ 'f' , '5oo' , '[Function: foo](awaitaititt kooo())\r' , '4' ] ] ,
122- [ '_' , [ '4\r' , '4' ] ] ,
123- [ 'const m = foo(await koo());' ,
124- [ 'connst module = foo(awaitaititt kooo());\r' ] ] ,
125- [ 'm' , [ '4\r' , '4' ] ] ,
126- [ 'const n = foo(await\nkoo());' ,
127- [ 'connst n = foo(awaitaititt\r' , '... kooo());\r' , 'undefined' ] ] ,
128- [ 'n' , [ '4\r' , '4' ] ] ,
87+ [ 'await Promise.resolve(0)' , '0' ] ,
88+ [ '{ a: await Promise.resolve(1) }' , '{ a: 1 }' ] ,
89+ [ '_' , '{ a: 1 }' ] ,
90+ [ 'let { aa, bb } = await Promise.resolve({ aa: 1, bb: 2 }), f = 5;' ] ,
91+ [ 'aa' , '1' ] ,
92+ [ 'bb' , '2' ] ,
93+ [ 'f' , '5' ] ,
94+ [ 'let cc = await Promise.resolve(2)' ] ,
95+ [ 'cc' , '2' ] ,
96+ [ 'let dd;' ] ,
97+ [ 'dd' ] ,
98+ [ 'let [ii, { abc: { kk } }] = [0, { abc: { kk: 1 } }];' ] ,
99+ [ 'ii' , '0' ] ,
100+ [ 'kk' , '1' ] ,
101+ [ 'var ll = await Promise.resolve(2);' ] ,
102+ [ 'll' , '2' ] ,
103+ [ 'foo(await koo())' , '4' ] ,
104+ [ '_' , '4' ] ,
105+ [ 'const m = foo(await koo());' ] ,
106+ [ 'm' , '4' ] ,
107+ [ 'const n = foo(await\nkoo());' ,
108+ [ 'const n = foo(await\r' , '... koo());\r' , 'undefined' ] ] ,
109+ [ 'n' , '4' ] ,
129110 // eslint-disable-next-line no-template-curly-in-string
130- [ '`status: ${(await Promise.resolve({ status: 200 })).status}`' ,
131- [
132- '`stratus: ${(awaitaititt Proroomiseisesee.resolveolvelvevee' +
133- '({ stratus: 200 })).stratus}`\r' ,
134- "'status: 200'"
135- ]
136- ] ,
137- [ 'for (let i = 0; i < 2; ++i) await i' ,
138- [ 'f' , '5or (lett i = 0; i < 2; ++i) awaitaititt i\r' , 'undefined' ] ] ,
139- [ 'for (let i = 0; i < 2; ++i) { await i }' ,
140- [ 'f' , '5or (lett i = 0; i < 2; ++i) { awaitaititt i }\r' , 'undefined' ]
141- ] ,
142- [ 'await 0' , [ 'awaitaititt 0\r' , '0' ] ] ,
143- [ 'await 0; function foo() {}' ,
144- [ 'awaitaititt 0; functionnctionctiontioniononn foo() {}\r' ]
145- ] ,
146- [ 'foo' ,
147- [ 'f' , '5oo' , '[Function: foo]\r' , '[Function: foo]' ] ] ,
148- [ 'class Foo {}; await 1;' , [ 'class Foo {}; awaitaititt 1;\r' , '1' ] ] ,
149- [ 'Foo' , [ 'Fooo' , '[Function: Foo]\r' , '[Function: Foo]' ] ] ,
150- [ 'if (await true) { function bar() {}; }' ,
151- [ 'if (awaitaititt truee) { functionnctionctiontioniononn bar() {}; }\r' ]
152- ] ,
153- [ 'bar' , [ 'barr' , '[Function: bar]\r' , '[Function: bar]' ] ] ,
154- [ 'if (await true) { class Bar {}; }' ,
155- [ 'if (awaitaititt truee) { class Bar {}; }\r' ]
156- ] ,
157- [ 'Bar' , 'Uncaught ReferenceError: Bar is not defined' ] ,
158- [ 'await 0; function* gen(){}' ,
159- [ 'awaitaititt 0; functionnctionctiontioniononn* globalen(){}\r' ]
160- ] ,
161- [ 'for (var i = 0; i < 10; ++i) { await i; }' ,
162- [ 'f' , '5or (var i = 0; i < 10; ++i) { awaitaititt i; }\r' , 'undefined' ] ] ,
163- [ 'i' , [ '10\r' , '10' ] ] ,
164- [ 'for (let j = 0; j < 5; ++j) { await j; }' ,
165- [ 'f' , '5or (lett j = 0; j < 5; ++j) { awaitaititt j; }\r' , 'undefined' ] ] ,
166- [ 'j' , 'Uncaught ReferenceError: j is not defined' , { line : 0 } ] ,
167- [ 'gen' ,
168- [ 'genn' , '[GeneratorFunction: gen]\r' , '[GeneratorFunction: gen]' ]
169- ] ,
170- [ 'return 42; await 5;' , 'Uncaught SyntaxError: Illegal return statement' ,
171- { line : 3 } ] ,
172- [ 'let o = await 1, p' , [ 'lett os = awaitaititt 1, p\r' ] ] ,
173- [ 'p' , [ 'undefined\r' ] ] ,
174- [ 'let q = 1, s = await 2' , [ 'lett que = 1, s = awaitaititt 2\r' ] ] ,
175- [ 's' , [ '2\r' , '2' ] ] ,
176- [ 'for await (let i of [1,2,3]) console.log(i)' ,
177- [
178- 'f' ,
179- '5or awaitaititt (lett i of [1,2,3]) connsolelee.logogg(i)\r' ,
180- '1' ,
181- '2' ,
182- '3' ,
183- 'undefined'
184- ]
111+ [ '`status: ${(await Promise.resolve({ status: 200 })).status}`' ,
112+ "'status: 200'" ] ,
113+ [ 'for (let i = 0; i < 2; ++i) await i' ] ,
114+ [ 'for (let i = 0; i < 2; ++i) { await i }' ] ,
115+ [ 'await 0' , '0' ] ,
116+ [ 'await 0; function foo() {}' ] ,
117+ [ 'foo' , '[Function: foo]' ] ,
118+ [ 'class Foo {}; await 1;' , '1' ] ,
119+ [ 'Foo' , '[Function: Foo]' ] ,
120+ [ 'if (await true) { function bar() {}; }' ] ,
121+ [ 'bar' , '[Function: bar]' ] ,
122+ [ 'if (await true) { class Bar {}; }' ] ,
123+ [ 'Bar' , 'Uncaught ReferenceError: Bar is not defined' ] ,
124+ [ 'await 0; function* gen(){}' ] ,
125+ [ 'for (var i = 0; i < 10; ++i) { await i; }' ] ,
126+ [ 'i' , '10' ] ,
127+ [ 'for (let j = 0; j < 5; ++j) { await j; }' ] ,
128+ [ 'j' , 'Uncaught ReferenceError: j is not defined' , { line : 0 } ] ,
129+ [ 'gen' , '[GeneratorFunction: gen]' ] ,
130+ [ 'return 42; await 5;' , 'Uncaught SyntaxError: Illegal return statement' ,
131+ { line : 3 } ] ,
132+ [ 'let o = await 1, p' ] ,
133+ [ 'p' ] ,
134+ [ 'let q = 1, s = await 2' ] ,
135+ [ 's' , '2' ] ,
136+ [ 'for await (let i of [1,2,3]) console.log(i)' ,
137+ [
138+ 'for await (let i of [1,2,3]) console.log(i)\r' ,
139+ '1' ,
140+ '2' ,
141+ '3' ,
142+ 'undefined'
143+ ]
185144 ]
186145 ] ;
187146
188- for ( const [ input , expected , options = { } ] of testCases ) {
147+ for ( const [ input , expected = [ ` ${ input } \r` ] , options = { } ] of testCases ) {
189148 console . log ( `Testing ${ input } ` ) ;
190149 const toBeRun = input . split ( '\n' ) ;
191150 const lines = await runAndWait ( toBeRun ) ;
@@ -216,7 +175,7 @@ async function ctrlCTest() {
216175 'await timeout(100000)' ,
217176 { ctrl : true , name : 'c' }
218177 ] ) , [
219- 'awaitaititt timeoutmeouteoutoututt (100000)\r' ,
178+ 'await timeout (100000)\r' ,
220179 'Uncaught:' ,
221180 '[Error [ERR_SCRIPT_EXECUTION_INTERRUPTED]: ' +
222181 'Script execution was interrupted by `SIGINT`] {' ,
0 commit comments