UNPKG

luhn-generator

Version:

A generator of numbers that passes the validation of Luhn algorithm or Luhn formula, also known as the 'modulus 10' or 'mod 10' algorithm

61 lines (48 loc) 1.67 kB
'use strict'; var forEach = require('foreach'); var debug = require('object-inspect'); var assertRecord = require('../../helpers/assertRecord'); var v = require('./values'); module.exports = function assertRecordTests(ES, test) { test('Property Descriptor', function (t) { var record = 'Property Descriptor'; forEach(v.nonUndefinedPrimitives, function (primitive) { t['throws']( function () { assertRecord(ES.Type, record, 'arg', primitive); }, TypeError, debug(primitive) + ' is not a Property Descriptor' ); }); t['throws']( function () { assertRecord(ES.Type, record, 'arg', { invalid: true }); }, TypeError, 'invalid keys not allowed on a Property Descriptor' ); t.doesNotThrow( function () { assertRecord(ES.Type, record, 'arg', {}); }, 'empty object is an incomplete Property Descriptor' ); t.doesNotThrow( function () { assertRecord(ES.Type, record, 'arg', v.accessorDescriptor()); }, 'accessor descriptor is a Property Descriptor' ); t.doesNotThrow( function () { assertRecord(ES.Type, record, 'arg', v.mutatorDescriptor()); }, 'mutator descriptor is a Property Descriptor' ); t.doesNotThrow( function () { assertRecord(ES.Type, record, 'arg', v.dataDescriptor()); }, 'data descriptor is a Property Descriptor' ); t.doesNotThrow( function () { assertRecord(ES.Type, record, 'arg', v.genericDescriptor()); }, 'generic descriptor is a Property Descriptor' ); t['throws']( function () { assertRecord(ES.Type, record, 'arg', v.bothDescriptor()); }, TypeError, 'a Property Descriptor can not be both a Data and an Accessor Descriptor' ); t.end(); }); };