| 'use strict'; |
| |
| // This tests the behavior of loading a UMD module with --build-snapshot |
| |
| require('../common'); |
| const assert = require('assert'); |
| const { spawnSync } = require('child_process'); |
| const tmpdir = require('../common/tmpdir'); |
| const fixtures = require('../common/fixtures'); |
| const fs = require('fs'); |
| |
| tmpdir.refresh(); |
| const blobPath = tmpdir.resolve('snapshot.blob'); |
| const file = fixtures.path('snapshot', 'marked.js'); |
| |
| { |
| // By default, the snapshot blob path is snapshot.blob at cwd |
| const child = spawnSync(process.execPath, [ |
| '--snapshot-blob', |
| blobPath, |
| '--build-snapshot', |
| file, |
| ], { |
| cwd: tmpdir.path |
| }); |
| const stderr = child.stderr.toString(); |
| const stdout = child.stdout.toString(); |
| console.log(stderr); |
| console.log(stdout); |
| assert.strictEqual(child.status, 0); |
| |
| const stats = fs.statSync(tmpdir.resolve('snapshot.blob')); |
| assert(stats.isFile()); |
| } |
| |
| { |
| let child = spawnSync(process.execPath, [ |
| '--snapshot-blob', |
| tmpdir.resolve('snapshot.blob'), |
| fixtures.path('snapshot', 'check-marked.js'), |
| ], { |
| cwd: tmpdir.path, |
| env: { |
| ...process.env, |
| NODE_TEST_USE_SNAPSHOT: 'true' |
| } |
| }); |
| let stderr = child.stderr.toString(); |
| const snapshotOutput = child.stdout.toString(); |
| console.log(stderr); |
| console.log(snapshotOutput); |
| |
| assert.strictEqual(child.status, 0); |
| assert(stderr.includes('NODE_TEST_USE_SNAPSHOT true')); |
| |
| child = spawnSync(process.execPath, [ |
| '--snapshot-blob', |
| blobPath, |
| fixtures.path('snapshot', 'check-marked.js'), |
| ], { |
| cwd: tmpdir.path, |
| env: { |
| ...process.env, |
| NODE_TEST_USE_SNAPSHOT: 'false' |
| } |
| }); |
| stderr = child.stderr.toString(); |
| const verifyOutput = child.stdout.toString(); |
| console.log(stderr); |
| console.log(verifyOutput); |
| |
| assert.strictEqual(child.status, 0); |
| assert(stderr.includes('NODE_TEST_USE_SNAPSHOT false')); |
| |
| assert(snapshotOutput.includes(verifyOutput)); |
| } |