summaryrefslogtreecommitdiff
path: root/server/.yarn/unplugged/node-gyp-npm-9.3.1-43540bab9c/node_modules/node-gyp/test/test-options.js
blob: 8a634f0e0955d1636f52e39d535168ecc545646a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
'use strict'

const test = require('tap').test
const gyp = require('../lib/node-gyp')

test('options in environment', (t) => {
  t.plan(1)

  // `npm test` dumps a ton of npm_config_* variables in the environment.
  Object.keys(process.env)
    .filter((key) => /^npm_config_/.test(key))
    .forEach((key) => { delete process.env[key] })

  // in some platforms, certain keys are stubborn and cannot be removed
  const keys = Object.keys(process.env)
    .filter((key) => /^npm_config_/.test(key))
    .map((key) => key.substring('npm_config_'.length))
    .concat('argv', 'x')

  // Zero-length keys should get filtered out.
  process.env.npm_config_ = '42'
  // Other keys should get added.
  process.env.npm_config_x = '42'
  // Except loglevel.
  process.env.npm_config_loglevel = 'debug'

  const g = gyp()
  g.parseArgv(['rebuild']) // Also sets opts.argv.

  t.deepEqual(Object.keys(g.opts).sort(), keys.sort())
})

test('options with spaces in environment', (t) => {
  t.plan(1)

  process.env.npm_config_force_process_config = 'true'

  const g = gyp()
  g.parseArgv(['rebuild']) // Also sets opts.argv.

  t.equal(g.opts['force-process-config'], 'true')
})