1'use strict'; 2 3// This tests the behavior of loading a UMD module with --build-snapshot 4 5require('../common'); 6const assert = require('assert'); 7const { spawnSync } = require('child_process'); 8const tmpdir = require('../common/tmpdir'); 9const fixtures = require('../common/fixtures'); 10const path = require('path'); 11const fs = require('fs'); 12 13tmpdir.refresh(); 14const blobPath = path.join(tmpdir.path, 'snapshot.blob'); 15const file = fixtures.path('snapshot', 'marked.js'); 16 17{ 18 // By default, the snapshot blob path is snapshot.blob at cwd 19 const child = spawnSync(process.execPath, [ 20 '--snapshot-blob', 21 blobPath, 22 '--build-snapshot', 23 file, 24 ], { 25 cwd: tmpdir.path 26 }); 27 const stderr = child.stderr.toString(); 28 const stdout = child.stdout.toString(); 29 console.log(stderr); 30 console.log(stdout); 31 assert.strictEqual(child.status, 0); 32 33 const stats = fs.statSync(path.join(tmpdir.path, 'snapshot.blob')); 34 assert(stats.isFile()); 35} 36 37{ 38 let child = spawnSync(process.execPath, [ 39 '--snapshot-blob', 40 path.join(tmpdir.path, 'snapshot.blob'), 41 fixtures.path('snapshot', 'check-marked.js'), 42 ], { 43 cwd: tmpdir.path, 44 env: { 45 ...process.env, 46 NODE_TEST_USE_SNAPSHOT: 'true' 47 } 48 }); 49 let stderr = child.stderr.toString(); 50 const snapshotOutput = child.stdout.toString(); 51 console.log(stderr); 52 console.log(snapshotOutput); 53 54 assert.strictEqual(child.status, 0); 55 assert(stderr.includes('NODE_TEST_USE_SNAPSHOT true')); 56 57 child = spawnSync(process.execPath, [ 58 '--snapshot-blob', 59 blobPath, 60 fixtures.path('snapshot', 'check-marked.js'), 61 ], { 62 cwd: tmpdir.path, 63 env: { 64 ...process.env, 65 NODE_TEST_USE_SNAPSHOT: 'false' 66 } 67 }); 68 stderr = child.stderr.toString(); 69 const verifyOutput = child.stdout.toString(); 70 console.log(stderr); 71 console.log(verifyOutput); 72 73 assert.strictEqual(child.status, 0); 74 assert(stderr.includes('NODE_TEST_USE_SNAPSHOT false')); 75 76 assert(snapshotOutput.includes(verifyOutput)); 77} 78