summaryrefslogtreecommitdiff
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/implementation.js11
-rw-r--r--node_modules/globalthis/test/index.js11
-rw-r--r--node_modules/globalthis/test/native.js26
-rw-r--r--node_modules/globalthis/test/shimmed.js29
-rw-r--r--node_modules/globalthis/test/tests.js36
5 files changed, 113 insertions, 0 deletions
diff --git a/node_modules/globalthis/test/implementation.js b/node_modules/globalthis/test/implementation.js
new file mode 100644
index 0000000..36f1275
--- /dev/null
+++ b/node_modules/globalthis/test/implementation.js
@@ -0,0 +1,11 @@
+'use strict';
+
+var implementation = require('../implementation');
+var test = require('tape');
+var runTests = require('./tests');
+
+test('implementation', function (t) {
+ runTests(implementation, t);
+
+ t.end();
+});
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..7a085ab
--- /dev/null
+++ b/node_modules/globalthis/test/native.js
@@ -0,0 +1,26 @@
+'use strict';
+
+var test = require('tape');
+var defineProperties = require('define-properties');
+var isEnumerable = Object.prototype.propertyIsEnumerable;
+
+var missing = {};
+var theGlobal = typeof globalThis === 'object' ? globalThis : missing;
+
+var runTests = require('./tests');
+
+test('native', { todo: theGlobal === missing }, function (t) {
+ if (theGlobal !== missing) {
+ t.equal(typeof theGlobal, 'object', 'globalThis is an object');
+ t.equal('globalThis' in theGlobal, true, 'globalThis is in globalThis');
+
+ t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) {
+ et.equal(false, isEnumerable.call(theGlobal, 'globalThis'), 'globalThis is not enumerable');
+ et.end();
+ });
+
+ runTests(theGlobal, 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..24b3f34
--- /dev/null
+++ b/node_modules/globalthis/test/shimmed.js
@@ -0,0 +1,29 @@
+'use strict';
+
+require('../auto');
+
+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, true, 'globalThis.globalThis is 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();
+ });
+};