UNPKG

24.5 kBSource Map (JSON)View Raw
1{"version":3,"file":"zora.es.js","sources":["../node_modules/zora-tap-reporter/dist/index.mjs","../node_modules/deep-equal/lib/keys.js","../node_modules/deep-equal/lib/is_arguments.js","../node_modules/deep-equal/index.js","../lib/assertions.js","../lib/test.js","../lib/plan.js"],"sourcesContent":["const stringify = JSON.stringify;\nconst printTestHeader = test => console.log(`# ${test.description} - ${test.executionTime}ms`);\nconst printTestCase = (assertion, id) => {\n\tconst pass = assertion.pass;\n\tconst status = pass === true ? 'ok' : 'not ok';\n\tconsole.log(`${status} ${id} ${assertion.message}`);\n\tif (pass !== true) {\n\t\tconsole.log(` ---\n operator: ${assertion.operator}\n expected: ${stringify(assertion.expected)}\n actual: ${stringify(assertion.actual)}\n at: ${(assertion.at || '')}\n ...\n`);\n\t}\n};\nconst printSummary = ({count, pass, skipped, fail}) => {\n\t//Some parsers seem to fail to detect end of stream if we use a single console.log call with a template string...\n\tconsole.log(`1..${count}`);\n\tconsole.log(`# tests ${count} (${skipped} skipped)`);\n\tconsole.log(`# pass ${pass}`);\n\tif (fail > 0) {\n\t\tconsole.log(`# fail ${fail}`);\n\t} else {\n\t\tconsole.log('# ok');\n\t}\n};\n\nvar tap = ({displaySkipped = false} = {}) => function * () {\n\tlet pass = 0;\n\tlet fail = 0;\n\tlet id = 0;\n\tlet skipped = 0;\n\tconsole.log('TAP version 13');\n\ttry {\n\t\t/* eslint-disable no-constant-condition */\n\t\twhile (true) {\n\t\t\tconst test = yield;\n\n\t\t\tif (test.items.length === 0) {\n\t\t\t\tskipped++;\n\t\t\t}\n\n\t\t\tif (test.items.length > 0 || displaySkipped === true) {\n\t\t\t\tprintTestHeader(test);\n\t\t\t}\n\n\t\t\tfor (const assertion of test.items) {\n\t\t\t\tid++;\n\t\t\t\tif (assertion.pass === true) {\n\t\t\t\t\tpass++;\n\t\t\t\t} else {\n\t\t\t\t\tfail++;\n\t\t\t\t}\n\t\t\t\tprintTestCase(assertion, id);\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-constant-condition */\n\t} catch (err) {\n\t\tconsole.log('Bail out! unhandled exception');\n\t\tthrow err;\n\t} finally {\n\t\tprintSummary({count: id, pass, skipped, fail});\n\t}\n};\n\nexport default tap;\n","exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n","var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n","var pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n","import deepEqual from 'deep-equal';\n\nconst getAssertionLocation = () => {\n\tconst err = new Error();\n\tconst stack = (err.stack || '').split('\\n');\n\treturn (stack[3] || '').trim().replace(/^at/i, '');\n};\nconst assertMethodHook = fn => function (...args) {\n\tconst assertResult = fn(...args);\n\n\tif (assertResult.pass === false) {\n\t\tassertResult.at = getAssertionLocation();\n\t}\n\n\tthis.collect(assertResult);\n\treturn assertResult;\n};\n\nconst Assertion = {\n\tok: assertMethodHook((val, message = 'should be truthy') => ({\n\t\tpass: Boolean(val),\n\t\tactual: val,\n\t\texpected: true,\n\t\tmessage,\n\t\toperator: 'ok'\n\t})),\n\tdeepEqual: assertMethodHook((actual, expected, message = 'should be equivalent') => ({\n\t\tpass: deepEqual(actual, expected),\n\t\tactual,\n\t\texpected,\n\t\tmessage,\n\t\toperator: 'deepEqual'\n\t})),\n\tequal: assertMethodHook((actual, expected, message = 'should be equal') => ({\n\t\tpass: actual === expected,\n\t\tactual,\n\t\texpected,\n\t\tmessage,\n\t\toperator: 'equal'\n\t})),\n\tnotOk: assertMethodHook((val, message = 'should not be truthy') => ({\n\t\tpass: !val,\n\t\texpected: false,\n\t\tactual: val,\n\t\tmessage,\n\t\toperator: 'notOk'\n\t})),\n\tnotDeepEqual: assertMethodHook((actual, expected, message = 'should not be equivalent') => ({\n\t\tpass: !deepEqual(actual, expected),\n\t\tactual,\n\t\texpected,\n\t\tmessage,\n\t\toperator: 'notDeepEqual'\n\t})),\n\tnotEqual: assertMethodHook((actual, expected, message = 'should not be equal') => ({\n\t\tpass: actual !== expected,\n\t\tactual,\n\t\texpected,\n\t\tmessage,\n\t\toperator: 'notEqual'\n\t})),\n\tthrows: assertMethodHook((func, expected, message) => {\n\t\tlet caught;\n\t\tlet pass;\n\t\tlet actual;\n\t\tif (typeof expected === 'string') {\n\t\t\t[expected, message] = [message, expected];\n\t\t}\n\t\ttry {\n\t\t\tfunc();\n\t\t} catch (err) {\n\t\t\tcaught = {error: err};\n\t\t}\n\t\tpass = caught !== undefined;\n\t\tactual = caught && caught.error;\n\t\tif (expected instanceof RegExp) {\n\t\t\tpass = expected.test(actual) || expected.test(actual && actual.message);\n\t\t\texpected = String(expected);\n\t\t} else if (typeof expected === 'function' && caught) {\n\t\t\tpass = actual instanceof expected;\n\t\t\tactual = actual.constructor;\n\t\t}\n\t\treturn {\n\t\t\tpass,\n\t\t\texpected,\n\t\t\tactual,\n\t\t\toperator: 'throws',\n\t\t\tmessage: message || 'should throw'\n\t\t};\n\t}),\n\tdoesNotThrow: assertMethodHook((func, expected, message) => {\n\t\tlet caught;\n\t\tif (typeof expected === 'string') {\n\t\t\t[expected, message] = [message, expected];\n\t\t}\n\t\ttry {\n\t\t\tfunc();\n\t\t} catch (err) {\n\t\t\tcaught = {error: err};\n\t\t}\n\t\treturn {\n\t\t\tpass: caught === undefined,\n\t\t\texpected: 'no thrown error',\n\t\t\tactual: caught && caught.error,\n\t\t\toperator: 'doesNotThrow',\n\t\t\tmessage: message || 'should not throw'\n\t\t};\n\t}),\n\tfail: assertMethodHook((message = 'fail called') => ({\n\t\tpass: false,\n\t\tactual: 'fail called',\n\t\texpected: 'fail not called',\n\t\tmessage,\n\t\toperator: 'fail'\n\t}))\n};\n\nexport default collect => Object.create(Assertion, {collect: {value: collect}});\n","import assert from './assertions';\n\nconst noop = () => {};\n\nexport const skip = description => test('SKIPPED - ' + description, noop);\n\nconst Test = {\n\tasync run() {\n\t\tconst collect = assertion => this.items.push(assertion);\n\t\tconst start = Date.now();\n\t\tawait Promise.resolve(this.spec(assert(collect)));\n\t\tconst executionTime = Date.now() - start;\n\t\treturn Object.assign(this, {\n\t\t\texecutionTime\n\t\t});\n\t},\n\tskip() {\n\t\treturn skip(this.description);\n\t}\n};\n\nexport function test(description, spec, {only = false} = {}) {\n\treturn Object.create(Test, {\n\t\titems: {value: []},\n\t\tonly: {value: only},\n\t\tspec: {value: spec},\n\t\tdescription: {value: description}\n\t});\n}\n","import tap from 'zora-tap-reporter';\nimport {test, skip} from './test';\n\n// Force to resolve on next tick so consumer can do something with previous iteration result\nconst onNextTick = val => new Promise(resolve => setTimeout(() => resolve(val), 0));\n\nconst PlanProto = {\n\t[Symbol.iterator]() {\n\t\treturn this.items[Symbol.iterator]();\n\t},\n\ttest(description, spec, opts) {\n\t\tif (!spec && description.test) {\n\t\t\t// If it is a plan\n\t\t\tthis.items.push(...description);\n\t\t} else {\n\t\t\tthis.items.push(test(description, spec, opts));\n\t\t}\n\t\treturn this;\n\t},\n\tonly(description, spec) {\n\t\treturn this.test(description, spec, {only: true});\n\t},\n\tskip(description, spec) {\n\t\tif (!spec && description.test) {\n\t\t\t// If it is a plan we skip the whole plan\n\t\t\tfor (const t of description) {\n\t\t\t\tthis.items.push(t.skip());\n\t\t\t}\n\t\t} else {\n\t\t\tthis.items.push(skip(description));\n\t\t}\n\t\treturn this;\n\t}\n};\n\nconst runnify = fn => async function (sink = tap()) {\n\tconst sinkIterator = typeof sink[Symbol.iterator] === 'function' ?\n\t\tsink[Symbol.iterator]() :\n\t\tsink(); // Backward compatibility\n\tsinkIterator.next();\n\ttry {\n\t\tconst hasOnly = this.items.some(t => t.only);\n\t\tconst tests = hasOnly ? this.items.map(t => t.only ? t : t.skip()) : this.items;\n\t\tawait fn(tests, sinkIterator);\n\t} catch (err) {\n\t\tsinkIterator.throw(err);\n\t} finally {\n\t\tsinkIterator.return();\n\t}\n};\n\nexport default function factory({sequence = false} = {sequence: false}) {\n\t/* eslint-disable no-await-in-loop */\n\tconst exec = sequence === true ? async (tests, sinkIterator) => {\n\t\tfor (const t of tests) {\n\t\t\tconst result = await onNextTick(t.run());\n\t\t\tsinkIterator.next(result);\n\t\t}\n\t} : async (tests, sinkIterator) => {\n\t\tconst runningTests = tests.map(t => t.run());\n\t\tfor (const r of runningTests) {\n\t\t\tconst executedTest = await onNextTick(r);\n\t\t\tsinkIterator.next(executedTest);\n\t\t}\n\t};\n\t/* eslint-enable no-await-in-loop */\n\n\treturn Object.assign(Object.create(PlanProto, {\n\t\titems: {value: []}, length: {\n\t\t\tget() {\n\t\t\t\treturn this.items.length;\n\t\t\t}\n\t\t}\n\t}), {\n\t\trun: runnify(exec)\n\t});\n}\n"],"names":["isArguments","objectKeys","deepEqual"],"mappings":"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"}
\No newline at end of file