aboutsummaryrefslogtreecommitdiff
path: root/node_modules/globalthis/test
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/globalthis/test')
-rw-r--r--node_modules/globalthis/test/index.js11
-rw-r--r--node_modules/globalthis/test/native.js21
-rw-r--r--node_modules/globalthis/test/shimmed.js30
-rw-r--r--node_modules/globalthis/test/tests.js36
4 files changed, 98 insertions, 0 deletions
diff --git a/node_modules/globalthis/test/index.js b/node_modules/globalthis/test/index.js
new file mode 100644
index 0000000..dac0a10
--- /dev/null
+++ b/node_modules/globalthis/test/index.js
@@ -0,0 +1,11 @@
+'use strict';
+
+var systemGlobal = require('../');
+var test = require('tape');
+var runTests = require('./tests');
+
+test('as a function', function (t) {
+ runTests(systemGlobal(), t);
+
+ t.end();
+});
diff --git a/node_modules/globalthis/test/native.js b/node_modules/globalthis/test/native.js
new file mode 100644
index 0000000..d426f54
--- /dev/null
+++ b/node_modules/globalthis/test/native.js
@@ -0,0 +1,21 @@
+'use strict';
+
+var test = require('tape');
+var defineProperties = require('define-properties');
+var isEnumerable = Object.prototype.propertyIsEnumerable;
+
+var runTests = require('./tests');
+
+test('native', function (t) {
+ t.equal(typeof global, 'object', 'global is an object');
+ t.equal(global in global, true, 'global is in global');
+
+ t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) {
+ et.equal(false, isEnumerable.call(global, 'global'), 'global is not enumerable');
+ et.end();
+ });
+
+ runTests(global, t);
+
+ t.end();
+});
diff --git a/node_modules/globalthis/test/shimmed.js b/node_modules/globalthis/test/shimmed.js
new file mode 100644
index 0000000..a7ac7d3
--- /dev/null
+++ b/node_modules/globalthis/test/shimmed.js
@@ -0,0 +1,30 @@
+'use strict';
+
+var systemGlobal = require('../');
+systemGlobal.shim();
+
+var test = require('tape');
+var defineProperties = require('define-properties');
+var isEnumerable = Object.prototype.propertyIsEnumerable;
+
+var runTests = require('./tests');
+
+test('shimmed', function (t) {
+ t.equal(typeof globalThis, 'object', 'globalThis is an object');
+ t.equal('globalThis' in globalThis, true, 'globalThis is in globalThis');
+
+ t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) {
+ et.equal(false, isEnumerable.call(globalThis, 'globalThis'), 'globalThis.globalThis is not enumerable');
+ et.end();
+ });
+
+ t.test('writability', { skip: !defineProperties.supportsDescriptors }, function (wt) {
+ var desc = Object.getOwnPropertyDescriptor(globalThis, 'globalThis');
+ wt.equal(desc.writable, false, 'globalThis.globalThis is not writable');
+ wt.end();
+ });
+
+ runTests(globalThis.globalThis, t);
+
+ t.end();
+});
diff --git a/node_modules/globalthis/test/tests.js b/node_modules/globalthis/test/tests.js
new file mode 100644
index 0000000..2189640
--- /dev/null
+++ b/node_modules/globalthis/test/tests.js
@@ -0,0 +1,36 @@
+/* jscs:disable requireUseStrict */
+/* eslint strict: 0, max-statements: 0 */
+
+module.exports = function (theGlobal, t) {
+ t.equal(typeof theGlobal, 'object', 'is an object');
+
+ t.test('built-in globals', function (st) {
+ st.equal(theGlobal.Math, Math, 'Math is on the global');
+ st.equal(theGlobal.JSON, JSON, 'JSON is on the global');
+ st.equal(theGlobal.String, String, 'String is on the global');
+ st.equal(theGlobal.Array, Array, 'Array is on the global');
+ st.equal(theGlobal.Number, Number, 'Number is on the global');
+ st.equal(theGlobal.Boolean, Boolean, 'Boolean is on the global');
+ st.equal(theGlobal.Object, Object, 'Object is on the global');
+ st.equal(theGlobal.Function, Function, 'Function is on the global');
+ st.equal(theGlobal.Date, Date, 'Date is on the global');
+ st.equal(theGlobal.RegExp, RegExp, 'RegExp is on the global');
+
+ if (typeof Symbol === 'undefined') {
+ st.comment('# SKIP Symbol is not supported');
+ } else {
+ st.equal(theGlobal.Symbol, Symbol, 'Symbol is on the global');
+ }
+ st.end();
+ });
+
+ t.test('custom property', function (st) {
+ var key = 'random_custom_key_' + new Date().getTime();
+ var semaphore = {};
+ /* eslint no-eval: 1 */
+ eval(key + ' = semaphore;');
+ st.equal(theGlobal[key], semaphore, 'global variable ends up on the global object');
+ delete theGlobal[key]; // eslint-disable-line no-param-reassign
+ st.end();
+ });
+};