• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Flags: --expose-internals
2'use strict';
3
4require('../common');
5const { internalBinding } = require('internal/test/binding');
6const binding = internalBinding('constants');
7const constants = require('constants');
8const assert = require('assert');
9
10assert.ok(binding);
11assert.ok(binding.os);
12assert.ok(binding.os.signals);
13assert.ok(binding.os.errno);
14assert.ok(binding.fs);
15assert.ok(binding.crypto);
16
17['os', 'fs', 'crypto'].forEach((l) => {
18  Object.keys(binding[l]).forEach((k) => {
19    if (typeof binding[l][k] === 'object') { // errno and signals
20      Object.keys(binding[l][k]).forEach((j) => {
21        assert.strictEqual(binding[l][k][j], constants[j]);
22      });
23    }
24    if (l !== 'os') { // Top level os constant isn't currently copied
25      assert.strictEqual(binding[l][k], constants[k]);
26    }
27  });
28});
29
30assert.ok(Object.isFrozen(constants));
31