1 | (function(a,b){if("function"==typeof define&&define.amd)define([],b);else if("undefined"!=typeof exports)b();else{b(),a.index={exports:{}}.exports}})(this,function(){"use strict";function a(b){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},a(b)}function b(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function c(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,c.key,c)}function d(a,b,d){return b&&c(a.prototype,b),d&&c(a,d),a}function e(b,c){return c&&("object"===a(c)||"function"==typeof c)?c:g(b)}function f(a){return f=Object.setPrototypeOf?Object.getPrototypeOf:function(a){return a.__proto__||Object.getPrototypeOf(a)},f(a)}function g(a){if(void 0===a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return a}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function");a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,writable:!0,configurable:!0}}),b&&i(a,b)}function i(a,b){return i=Object.setPrototypeOf||function(a,b){return a.__proto__=b,a},i(a,b)}Object.defineProperty(exports,"__esModule",{value:!0});var j=require("child_process"),k=require("events"),l=require("fs-extra"),m=require("js-yaml"),n=require("lodash"),o=require("lorem-ipsum"),p=require("path"),q=require("power-assert"),r=require("rimraf"),s=require("string-template"),t=require("util.chdir"),u=require("util.constants"),v=require("util.filelist"),w=require("util.join"),x=require("util.toolbox"),y=require("util.wait"),z=require("uuid"),A=require("klaw-sync"),B=require(w.join(process.cwd(),"package.json")),C=new Set,D=function(a){ |
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 | function c(a){var d,h=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};if(b(this,c),d=e(this,f(c).call(this)),d._basedir="",d._dir="",d._data=[],d._files=[],d._json="",d._jsonObj={},d._loremIpsum="",d._name="",d._obj={},d._pattern="",d._src="",d._yaml="",d._yamlObj={},Object.prototype.hasOwnProperty.call(B,"fixture")||(B.fixture={}),d._opts=Object.assign({dataFile:"data.list",fixtureDirectory:"./__tests__/fixtures",jsonFile:"obj.json",script:"fixture.js",templateDataData:{DIR:""},loremIpsum:{},pattern:{chevrons:[],columns:80,repeat:1},yamlFile:"obj.yaml"},B.fixture,h),"undefined"==typeof d._opts.templateData&&(d._opts.templateData={}),d._name=a||"tmpdir",d._basedir=h.basedir||d.setBaseDirectory(),d._loremIpsum=o(d._opts.loremIpsum),d.patternGenerator(),l.existsSync(d.basedir)||l.mkdirs(d.basedir),d._dir=w.join(d.basedir,z.v4()),l.existsSync(d.dir)||l.mkdirsSync(d.dir),C.add(d.dir),"tmpdir"===d.name||"loremIpsum"===d.name||"pattern"===d.name)return e(d,g(d));if(d._src=p.resolve(w.join(d._opts.fixtureDirectory||"./__tests__/fixtures",d.name)),!l.existsSync(d.src))throw new Error("Invalid fixture name given: ".concat(a));l.copySync(d.src,d.dir),d._opts.templateData.DIR=w.join(d.dir),d._files=A(d.dir,{nodir:!0}),d.files.forEach(function(a){var b=l.readFileSync(a.path);b=s(b.toString(),d._opts.templateData),l.writeFileSync(a.path,b),a.path===w.join(d.dir,d._opts.jsonFile||"obj.json")&&(d._json=b,d._obj=d._jsonObj=JSON.parse(b)),a.path===w.join(d.dir,d._opts.yamlFile||"obj.yaml")&&(d._yaml=b,d._yamlObj=m.load(b)),a.path===w.join(d.dir,d._opts.dataFile||"data.list")&&(d._data=v.getFileList(a.path))},g(d)),t.pushd(d.dir);var i=w.join(d.dir,h.script||"fixture.js");return l.existsSync(i)&&(j.execSync("node ".concat(i)),l.removeSync(i)),t.popd(),d.emit("loaded"),d} |
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 | return h(c,a),d(c,[{key:"patternGenerator", |
20 |
|
21 |
|
22 |
|
23 | value:function j(){var a=String.fromCharCode,b=this._opts.pattern;
|
24 | if(0>=b.chevrons.length)for(var k=97;122>=k;k++)b.chevrons.push(a(k));for(var i=0;i<b.repeat;i++){var c=!0,d=!1,e=void 0;try{for(var f,g,h=b.chevrons[Symbol.iterator]();!(c=(f=h.next()).done);c=!0)g=f.value,this._pattern+=n.repeat(g,b.columns),this._pattern+=u.nl}catch(a){d=!0,e=a}finally{try{c||null==h.return||h.return()}finally{if(d)throw e}}}} |
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 | },{key:"read",value:function b(a){if(a=w.join(this.dir,a),l.existsSync(a))return l.readFileSync(a,x.encoding);throw new Error("Invalid file in fixture read: ".concat(a))} |
31 |
|
32 |
|
33 |
|
34 | },{key:"setBaseDirectory",value:function b(){var a="";return a=process.env.TMP?process.env.TMP:process.env.TEMP?process.env.TEMP:w.join("~/",".tmp"),w.join(a,"unit-test-data",p.sep)} |
35 |
|
36 |
|
37 |
|
38 | },{key:"toString",value:function b(){var a={opts:this._opts,basedir:this.basedir,dir:this.dir,files:this.files,obj:this.obj,data:this.data,src:this.src};return JSON.stringify(a,null,2)}},{key:"basedir",get:function a(){return w.normalize(this._basedir)},set:function b(a){this._basedir=a}},{key:"data",get:function a(){return this._data}},{key:"dir",get:function a(){return w.normalize(this._dir)}},{key:"files",get:function a(){return this._files}},{key:"json",get:function a(){return this._json}},{key:"jsonObj",get:function a(){return this._jsonObj}},{key:"loremIpsum",get:function a(){return this._loremIpsum}},{key:"name",get:function a(){return this._name}},{key:"obj",get:function a(){return this._obj}},{key:"pattern",get:function a(){return this._pattern}},{key:"src",get:function a(){return w.normalize(this._src)}},{key:"yaml",get:function a(){return this._yaml}},{key:"yamlObj",get:function a(){return this._yamlObj}}],[{key:"cleanup",value:function c(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:x.nil,b=new y.Semaphore(30);C.forEach(function(c){l.existsSync(c)&&(b.increment(),r(c,function(c){c&&a(c,null),b.decrement()}))}),b.wait().then(function(){a(null,Array.from(C))}).catch(function(b){a(new Error(b),[""])})}}]),c}(k.EventEmitter);exports.Fixture=D,exports.cleanup= |
39 |
|
40 |
|
41 |
|
42 |
|
43 |
|
44 |
|
45 |
|
46 |
|
47 | function(){var a=0<arguments.length&&arguments[0]!==void 0?arguments[0]:null;a=Object.assign({done:null,message:""},a||{}),a.message&&console.log("final cleanup: ".concat(a.message)),D.cleanup(function(b,c){if(b)throw new Error("Failure cleaning up after test: ".concat(b.message));c.forEach(function(a){q.default(!l.existsSync(a))}),a.done?a.done():x.nil()})},exports.default=D});
|