1'use strict'; 2const common = require('../common'); 3const assert = require('assert'); 4const cp = require('child_process'); 5const fixtures = require('../common/fixtures'); 6 7const args = ['--interactive', '--experimental-repl-await']; 8const opts = { cwd: fixtures.path('es-modules') }; 9const child = cp.spawn(process.execPath, args, opts); 10 11let output = ''; 12child.stdout.setEncoding('utf8'); 13child.stdout.on('data', (data) => { 14 output += data; 15}); 16 17child.on('exit', common.mustCall(() => { 18 const results = output.replace(/^> /mg, '').split('\n').slice(2); 19 assert.deepStrictEqual( 20 results, 21 ['[Module: null prototype] { message: \'A message\' }', ''] 22 ); 23})); 24 25child.stdin.write('await import(\'./message.mjs\');\n'); 26child.stdin.write('.exit'); 27child.stdin.end(); 28