• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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