Sha256: 7a59e155787380a135f27e0d436520dc67837f2f49d794a0eb8f6771561aa564

Contents?: true

Size: 1.05 KB

Versions: 45

Compression:

Stored size: 1.05 KB

Contents

'use strict';

var test = require('tape');
var inspect = require('object-inspect');
var is = require('object-is');
var forEach = require('for-each');
var hasSymbols = require('has-symbols')();
var hasBigInts = require('has-bigints')();

var unboxPrimitive = require('..');

var debug = function (v, m) { return inspect(v) + ' ' + m; };

test('primitives', function (t) {
	var primitives = [
		true,
		false,
		'',
		'foo',
		42,
		NaN,
		Infinity,
		0
	];
	if (hasSymbols) {
		primitives.push(Symbol(), Symbol.iterator, Symbol('f'));
	}
	if (hasBigInts) {
		primitives.push(BigInt(42), BigInt(0));
	}
	forEach(primitives, function (primitive) {
		var obj = Object(primitive);
		t.ok(
			is(unboxPrimitive(obj), primitive),
			debug(obj, 'unboxes to ' + inspect(primitive))
		);
	});

	t.end();
});

test('objects', function (t) {
	var objects = [
		{},
		[],
		function () {},
		/a/g,
		new Date()
	];
	forEach(objects, function (object) {
		t['throws'](
			function () { unboxPrimitive(object); },
			TypeError,
			debug(object, 'is not a primitive')
		);
	});

	t.end();
});

Version data entries

45 entries across 44 versions & 4 rubygems

Version Path
immosquare-cleaner-0.1.51 node_modules/unbox-primitive/test/index.js
immosquare-cleaner-0.1.50 node_modules/unbox-primitive/test/index.js
immosquare-cleaner-0.1.49 node_modules/unbox-primitive/test/index.js
immosquare-cleaner-0.1.48 node_modules/unbox-primitive/test/index.js
immosquare-cleaner-0.1.47 node_modules/unbox-primitive/test/index.js
immosquare-cleaner-0.1.46 node_modules/unbox-primitive/test/index.js
immosquare-cleaner-0.1.45 node_modules/unbox-primitive/test/index.js
immosquare-cleaner-0.1.44 node_modules/unbox-primitive/test/index.js
immosquare-cleaner-0.1.43 node_modules/unbox-primitive/test/index.js
immosquare-cleaner-0.1.42 node_modules/unbox-primitive/test/index.js
immosquare-cleaner-0.1.41 node_modules/unbox-primitive/test/index.js
immosquare-cleaner-0.1.40 node_modules/unbox-primitive/test/index.js
immosquare-cleaner-0.1.39 node_modules/unbox-primitive/test/index.js
immosquare-cleaner-0.1.38 node_modules/unbox-primitive/test/index.js
immosquare-cleaner-0.1.32 node_modules/unbox-primitive/test/index.js
immosquare-cleaner-0.1.31 node_modules/unbox-primitive/test/index.js
immosquare-cleaner-0.1.30 node_modules/unbox-primitive/test/index.js
immosquare-cleaner-0.1.29 node_modules/unbox-primitive/test/index.js
immosquare-cleaner-0.1.28 node_modules/unbox-primitive/test/index.js
immosquare-cleaner-0.1.27 node_modules/unbox-primitive/test/index.js