@taqueria/plugin-jest 0.4.0-rc1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import {Plugin as $d3MIr$Plugin, Task as $d3MIr$Task, PositionalArg as $d3MIr$PositionalArg, Option as $d3MIr$Option, sendAsyncErr as $d3MIr$sendAsyncErr, sendErr as $d3MIr$sendErr, sendAsyncRes as $d3MIr$sendAsyncRes} from "@taqueria/node-sdk";
1
+ import {Plugin as $d3MIr$Plugin, Task as $d3MIr$Task, PositionalArg as $d3MIr$PositionalArg, Option as $d3MIr$Option, sendAsyncErr as $d3MIr$sendAsyncErr, sendAsyncRes as $d3MIr$sendAsyncRes} from "@taqueria/node-sdk";
2
2
  import {SanitizedAbsPath as $d3MIr$SanitizedAbsPath} from "@taqueria/node-sdk/types";
3
3
  import {execa as $d3MIr$execa} from "execa";
4
4
  import {stat as $d3MIr$stat, writeFile as $d3MIr$writeFile, mkdir as $d3MIr$mkdir} from "fs/promises";
@@ -40,30 +40,33 @@ const $74485658d1dbcd36$var$createPartition = async (partitionDir, projectDir)=>
40
40
  })).then((_)=>$74485658d1dbcd36$var$getPartitionConfigAbspath(partitionDir)).then((partitionCfgAbsPath)=>(0, $d3MIr$stat)(partitionCfgAbsPath).catch((_)=>(0, $d3MIr$writeFile)(partitionCfgAbsPath, $74485658d1dbcd36$var$toPartitionCfg($74485658d1dbcd36$var$getPartitionAbspath(partitionDir), $74485658d1dbcd36$var$getRootConfigAbspath(projectDir))))).then((_)=>$74485658d1dbcd36$var$getPartitionConfigAbspath(partitionDir));
41
41
  const $74485658d1dbcd36$var$ensurePartitionExists = (args)=>args.partition ? $74485658d1dbcd36$var$createPartition((0, $d3MIr$SanitizedAbsPath).create((0, $d3MIr$join)(args.projectDir, args.partition)), args.projectDir) : $74485658d1dbcd36$var$createPartition((0, $d3MIr$SanitizedAbsPath).create((0, $d3MIr$join)(args.projectDir, $74485658d1dbcd36$var$getTestsRootDir(args.config))), args.projectDir);
42
42
  const $74485658d1dbcd36$var$execCmd = (cmd, args)=>{
43
- return (0, $d3MIr$execa)(cmd, args, {
44
- reject: false
43
+ // console.log([cmd, ...args].join(' '))
44
+ const child = (0, $d3MIr$execa)(cmd, args, {
45
+ reject: false,
46
+ buffer: false,
47
+ // encoding: null,
48
+ shell: true,
49
+ stdio: "inherit",
50
+ env: {
51
+ FORCE_COLOR: "true"
52
+ }
45
53
  });
54
+ return child.then((_)=>{});
46
55
  };
47
56
  var $74485658d1dbcd36$export$2e2bcd8739ae039 = async (args)=>{
48
57
  const opts = args;
49
58
  return $74485658d1dbcd36$var$ensurePartitionExists(opts).then((configAbsPath)=>{
50
- if (!opts.init) {
51
- const cmd = opts.testPattern ? $74485658d1dbcd36$var$execCmd("npx", [
52
- "jest",
53
- "-c",
54
- configAbsPath,
55
- "-t",
56
- opts.testPattern
57
- ]) : $74485658d1dbcd36$var$execCmd("npx", [
58
- "jest",
59
- "-c",
60
- configAbsPath
61
- ]);
62
- return cmd.then(({ stdout: stdout , stderr: stderr })=>{
63
- if (stderr) (0, $d3MIr$sendErr)(stderr);
64
- return (0, $d3MIr$sendAsyncRes)(stdout);
65
- });
66
- }
59
+ if (!opts.init) return opts.testPattern ? $74485658d1dbcd36$var$execCmd("npx", [
60
+ "jest",
61
+ "-c",
62
+ configAbsPath,
63
+ "--testPathPattern",
64
+ opts.testPattern
65
+ ]) : $74485658d1dbcd36$var$execCmd("npx", [
66
+ "jest",
67
+ "-c",
68
+ configAbsPath
69
+ ]);
67
70
  return (0, $d3MIr$sendAsyncRes)("Initialized successfully.");
68
71
  });
69
72
  };
@@ -99,8 +102,8 @@ var $74485658d1dbcd36$export$2e2bcd8739ae039 = async (args)=>{
99
102
  }),
100
103
  (0, $d3MIr$Option).create({
101
104
  flag: "testPattern",
102
- description: "Run test files that match the provided pattern",
103
- boolean: true
105
+ shortFlag: "t",
106
+ description: "Run test files that match the provided pattern"
104
107
  }),
105
108
  ]
106
109
  }),
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["taqueria-plugin-jest/index.ts","taqueria-plugin-jest/proxy.ts"],"sourcesContent":["import { Option, Plugin, PositionalArg, Task } from '@taqueria/node-sdk';\nimport proxy from './proxy';\n\nPlugin.create(() => ({\n\tschema: '0.1',\n\tversion: '0.4.0',\n\talias: 'jest',\n\ttasks: [\n\t\tTask.create({\n\t\t\ttask: 'test',\n\t\t\tcommand: 'test [partition]',\n\t\t\tdescription: 'Setup a directory as a partition to run Jest tests',\n\t\t\taliases: ['jest'],\n\t\t\thandler: 'proxy',\n\t\t\tpositionals: [\n\t\t\t\tPositionalArg.create({\n\t\t\t\t\tplaceholder: 'partition',\n\t\t\t\t\tdescription: 'Name of the partition for these tests',\n\t\t\t\t\tdefaultValue: 'tests',\n\t\t\t\t\ttype: 'string',\n\t\t\t\t}),\n\t\t\t],\n\t\t\toptions: [\n\t\t\t\tOption.create({\n\t\t\t\t\tflag: 'init',\n\t\t\t\t\tshortFlag: 'i',\n\t\t\t\t\tdescription: 'Initializes the partition for Jest',\n\t\t\t\t\tboolean: true,\n\t\t\t\t}),\n\t\t\t\tOption.create({\n\t\t\t\t\tflag: 'testPattern',\n\t\t\t\t\tdescription: 'Run test files that match the provided pattern',\n\t\t\t\t\tboolean: true,\n\t\t\t\t}),\n\t\t\t],\n\t\t}),\n\t],\n\tproxy,\n}), process.argv);\n","import { sendAsyncErr, sendAsyncRes, sendErr } from '@taqueria/node-sdk';\nimport { LoadedConfig, RequestArgs, SanitizedAbsPath } from '@taqueria/node-sdk/types';\nimport { execa } from 'execa';\nimport { mkdir, stat, writeFile } from 'fs/promises';\nimport { defaults } from 'jest-config';\nimport { join } from 'path';\n\ntype DefaultConfig = typeof defaults;\n\ninterface CustomConfig extends LoadedConfig.t {\n\treadonly jestTestsRootDir?: string;\n}\n\ninterface Opts extends RequestArgs.ProxyRequestArgs {\n\treadonly config: CustomConfig;\n\treadonly init: boolean;\n\treadonly partition: string;\n\treadonly testPattern: string;\n}\n\nconst getDefaultConfig = (defaultConfig: DefaultConfig) => `\nmodule.exports = ${JSON.stringify(defaults, null, 4)}\n`;\n\nconst ensureRootConfigExists = (projectDir: SanitizedAbsPath.t) => {\n\tconst jestRootConfig = getRootConfigAbspath(projectDir);\n\treturn stat(jestRootConfig)\n\t\t.catch(_ => writeFile(jestRootConfig, getDefaultConfig(defaults)))\n\t\t.then(_ => jestRootConfig);\n};\n\nconst getRootConfigAbspath = (projectDir: SanitizedAbsPath.t) =>\n\tSanitizedAbsPath.create(\n\t\tjoin(projectDir, '.taq', 'jest.config.js'),\n\t);\n\nconst getTestsRootDir = (config: CustomConfig) => {\n\treturn config.jestTestsRootDir || 'tests';\n};\n\nconst toPartitionCfg = (partitionAbspath: SanitizedAbsPath.t, rootConfigAbsPath: SanitizedAbsPath.t) => `\nconst parentConfig = require('${rootConfigAbsPath}')\n\nmodule.exports = {\n ...parentConfig,\n roots: [\n \"${partitionAbspath}\"\n ]\n}\n`;\n\nconst getPartitionAbspath = (partitionDir: string) => SanitizedAbsPath.create(partitionDir);\n\nconst getPartitionConfigAbspath = (partitionDir: string) =>\n\tSanitizedAbsPath.create(join(partitionDir, 'jest.config.js'));\n\nconst createPartition = async (partitionDir: SanitizedAbsPath.t, projectDir: SanitizedAbsPath.t) =>\n\tensureRootConfigExists(projectDir)\n\t\t.then(_ => stat(partitionDir))\n\t\t.then(stats =>\n\t\t\tstats.isFile()\n\t\t\t\t? sendAsyncErr(`${partitionDir} is an invalid partition directory`)\n\t\t\t\t: stats\n\t\t)\n\t\t.catch(_ => mkdir(partitionDir, { recursive: true }))\n\t\t.then(_ => getPartitionConfigAbspath(partitionDir))\n\t\t.then(partitionCfgAbsPath =>\n\t\t\tstat(partitionCfgAbsPath)\n\t\t\t\t.catch(_ =>\n\t\t\t\t\twriteFile(\n\t\t\t\t\t\tpartitionCfgAbsPath,\n\t\t\t\t\t\ttoPartitionCfg(\n\t\t\t\t\t\t\tgetPartitionAbspath(partitionDir),\n\t\t\t\t\t\t\tgetRootConfigAbspath(projectDir),\n\t\t\t\t\t\t),\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t)\n\t\t.then(_ => getPartitionConfigAbspath(partitionDir));\n\nconst ensurePartitionExists = (args: Opts) =>\n\targs.partition\n\t\t? createPartition(\n\t\t\tSanitizedAbsPath.create(join(args.projectDir, args.partition)),\n\t\t\targs.projectDir,\n\t\t)\n\t\t: createPartition(\n\t\t\tSanitizedAbsPath.create(\n\t\t\t\tjoin(args.projectDir, getTestsRootDir(args.config)),\n\t\t\t),\n\t\t\targs.projectDir,\n\t\t);\n\nconst execCmd = (cmd: string, args: string[]) => {\n\treturn execa(cmd, args, { reject: false });\n};\n\nexport default async (args: RequestArgs.ProxyRequestArgs) => {\n\tconst opts = args as Opts;\n\n\treturn ensurePartitionExists(opts)\n\t\t.then(configAbsPath => {\n\t\t\tif (!opts.init) {\n\t\t\t\tconst cmd = opts.testPattern\n\t\t\t\t\t? execCmd('npx', ['jest', '-c', configAbsPath, '-t', opts.testPattern])\n\t\t\t\t\t: execCmd('npx', ['jest', '-c', configAbsPath]);\n\n\t\t\t\treturn cmd.then(({ stdout, stderr }) => {\n\t\t\t\t\tif (stderr) sendErr(stderr);\n\t\t\t\t\treturn sendAsyncRes(stdout);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn sendAsyncRes('Initialized successfully.');\n\t\t});\n};\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../"}
1
+ {"mappings":";;;;;;;AAAA;ACAA;;;;;;AAoBA,MAAM,sCAAgB,GAAG,CAAC,aAA4B,GAAK,CAAC;iBAC3C,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA,GAAA,eAAQ,CAAA,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC,AAAC;AAEF,MAAM,4CAAsB,GAAG,CAAC,UAA8B,GAAK;IAClE,MAAM,cAAc,GAAG,0CAAoB,CAAC,UAAU,CAAC,AAAC;IACxD,OAAO,CAAA,GAAA,WAAI,CAAA,CAAC,cAAc,CAAC,CACzB,KAAK,CAAC,CAAA,CAAC,GAAI,CAAA,GAAA,gBAAS,CAAA,CAAC,cAAc,EAAE,sCAAgB,CAAC,CAAA,GAAA,eAAQ,CAAA,CAAC,CAAC,CAAC,CACjE,IAAI,CAAC,CAAA,CAAC,GAAI,cAAc,CAAC,CAAC;CAC5B,AAAC;AAEF,MAAM,0CAAoB,GAAG,CAAC,UAA8B,GAC3D,CAAA,GAAA,uBAAgB,CAAA,CAAC,MAAM,CACtB,CAAA,GAAA,WAAI,CAAA,CAAC,UAAU,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAC1C,AAAC;AAEH,MAAM,qCAAe,GAAG,CAAC,MAAoB,GAAK;IACjD,OAAO,MAAM,CAAC,gBAAgB,IAAI,OAAO,CAAC;CAC1C,AAAC;AAEF,MAAM,oCAAc,GAAG,CAAC,gBAAoC,EAAE,iBAAqC,GAAK,CAAC;8BAC3E,EAAE,iBAAiB,CAAC;;;;;SAKzC,EAAE,gBAAgB,CAAC;;;AAG5B,CAAC,AAAC;AAEF,MAAM,yCAAmB,GAAG,CAAC,YAAoB,GAAK,CAAA,GAAA,uBAAgB,CAAA,CAAC,MAAM,CAAC,YAAY,CAAC,AAAC;AAE5F,MAAM,+CAAyB,GAAG,CAAC,YAAoB,GACtD,CAAA,GAAA,uBAAgB,CAAA,CAAC,MAAM,CAAC,CAAA,GAAA,WAAI,CAAA,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC,AAAC;AAE/D,MAAM,qCAAe,GAAG,OAAO,YAAgC,EAAE,UAA8B,GAC9F,4CAAsB,CAAC,UAAU,CAAC,CAChC,IAAI,CAAC,CAAA,CAAC,GAAI,CAAA,GAAA,WAAI,CAAA,CAAC,YAAY,CAAC,CAAC,CAC7B,IAAI,CAAC,CAAA,KAAK,GACV,KAAK,CAAC,MAAM,EAAE,GACX,CAAA,GAAA,mBAAY,CAAA,CAAC,CAAC,EAAE,YAAY,CAAC,kCAAkC,CAAC,CAAC,GACjE,KAAK,CACR,CACA,KAAK,CAAC,CAAA,CAAC,GAAI,CAAA,GAAA,YAAK,CAAA,CAAC,YAAY,EAAE;YAAE,SAAS,EAAE,IAAI;SAAE,CAAC,CAAC,CACpD,IAAI,CAAC,CAAA,CAAC,GAAI,+CAAyB,CAAC,YAAY,CAAC,CAAC,CAClD,IAAI,CAAC,CAAA,mBAAmB,GACxB,CAAA,GAAA,WAAI,CAAA,CAAC,mBAAmB,CAAC,CACvB,KAAK,CAAC,CAAA,CAAC,GACP,CAAA,GAAA,gBAAS,CAAA,CACR,mBAAmB,EACnB,oCAAc,CACb,yCAAmB,CAAC,YAAY,CAAC,EACjC,0CAAoB,CAAC,UAAU,CAAC,CAChC,CACD,CACD,CACF,CACA,IAAI,CAAC,CAAA,CAAC,GAAI,+CAAyB,CAAC,YAAY,CAAC,CAAC,AAAC;AAEtD,MAAM,2CAAqB,GAAG,CAAC,IAAU,GACxC,IAAI,CAAC,SAAS,GACX,qCAAe,CAChB,CAAA,GAAA,uBAAgB,CAAA,CAAC,MAAM,CAAC,CAAA,GAAA,WAAI,CAAA,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAC9D,IAAI,CAAC,UAAU,CACf,GACC,qCAAe,CAChB,CAAA,GAAA,uBAAgB,CAAA,CAAC,MAAM,CACtB,CAAA,GAAA,WAAI,CAAA,CAAC,IAAI,CAAC,UAAU,EAAE,qCAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CACnD,EACD,IAAI,CAAC,UAAU,CACf,AAAC;AAEJ,MAAM,6BAAO,GAAG,CAAC,GAAW,EAAE,IAAc,GAAK;IAChD,wCAAwC;IAExC,MAAM,KAAK,GAAG,CAAA,GAAA,YAAK,CAAA,CAAC,GAAG,EAAE,IAAI,EAAE;QAC9B,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,KAAK;QACb,kBAAkB;QAClB,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE;YAAE,WAAW,EAAE,MAAM;SAAE;KAC5B,CAAC,AAAC;IAEH,OAAO,KAAK,CAAC,IAAI,CAAC,CAAA,CAAC,GAAI,EAAE,CAAC,CAAC;CAC3B,AAAC;IAEF,wCAaE,GAba,OAAO,IAAkC,GAAK;IAC5D,MAAM,IAAI,GAAG,IAAI,AAAQ,AAAC;IAE1B,OAAO,2CAAqB,CAAC,IAAI,CAAC,CAChC,IAAI,CAAC,CAAA,aAAa,GAAI;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EACb,OAAO,IAAI,CAAC,WAAW,GACpB,6BAAO,CAAC,KAAK,EAAE;YAAC,MAAM;YAAE,IAAI;YAAE,aAAa;YAAE,mBAAmB;YAAE,IAAI,CAAC,WAAW;SAAC,CAAC,GACpF,6BAAO,CAAC,KAAK,EAAE;YAAC,MAAM;YAAE,IAAI;YAAE,aAAa;SAAC,CAAC,CAAC;QAGlD,OAAO,CAAA,GAAA,mBAAY,CAAA,CAAC,2BAA2B,CAAC,CAAC;KACjD,CAAC,CAAC;CACJ;;;ADtHD,CAAA,GAAA,aAAM,CAAA,CAAC,MAAM,CAAC,IAAO,CAAA;QACpB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,MAAM;QACb,KAAK,EAAE;YACN,CAAA,GAAA,WAAI,CAAA,CAAC,MAAM,CAAC;gBACX,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,kBAAkB;gBAC3B,WAAW,EAAE,oDAAoD;gBACjE,OAAO,EAAE;oBAAC,MAAM;iBAAC;gBACjB,OAAO,EAAE,OAAO;gBAChB,WAAW,EAAE;oBACZ,CAAA,GAAA,oBAAa,CAAA,CAAC,MAAM,CAAC;wBACpB,WAAW,EAAE,WAAW;wBACxB,WAAW,EAAE,uCAAuC;wBACpD,YAAY,EAAE,OAAO;wBACrB,IAAI,EAAE,QAAQ;qBACd,CAAC;iBACF;gBACD,OAAO,EAAE;oBACR,CAAA,GAAA,aAAM,CAAA,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,MAAM;wBACZ,SAAS,EAAE,GAAG;wBACd,WAAW,EAAE,oCAAoC;wBACjD,OAAO,EAAE,IAAI;qBACb,CAAC;oBACF,CAAA,GAAA,aAAM,CAAA,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,aAAa;wBACnB,SAAS,EAAE,GAAG;wBACd,WAAW,EAAE,gDAAgD;qBAC7D,CAAC;iBACF;aACD,CAAC;SACF;eACD,wCAAK;KACL,CAAA,AAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC","sources":["taqueria-plugin-jest/index.ts","taqueria-plugin-jest/proxy.ts"],"sourcesContent":["import { Option, Plugin, PositionalArg, Task } from '@taqueria/node-sdk';\nimport proxy from './proxy';\n\nPlugin.create(() => ({\n\tschema: '0.1',\n\tversion: '0.4.0',\n\talias: 'jest',\n\ttasks: [\n\t\tTask.create({\n\t\t\ttask: 'test',\n\t\t\tcommand: 'test [partition]',\n\t\t\tdescription: 'Setup a directory as a partition to run Jest tests',\n\t\t\taliases: ['jest'],\n\t\t\thandler: 'proxy',\n\t\t\tpositionals: [\n\t\t\t\tPositionalArg.create({\n\t\t\t\t\tplaceholder: 'partition',\n\t\t\t\t\tdescription: 'Name of the partition for these tests',\n\t\t\t\t\tdefaultValue: 'tests',\n\t\t\t\t\ttype: 'string',\n\t\t\t\t}),\n\t\t\t],\n\t\t\toptions: [\n\t\t\t\tOption.create({\n\t\t\t\t\tflag: 'init',\n\t\t\t\t\tshortFlag: 'i',\n\t\t\t\t\tdescription: 'Initializes the partition for Jest',\n\t\t\t\t\tboolean: true,\n\t\t\t\t}),\n\t\t\t\tOption.create({\n\t\t\t\t\tflag: 'testPattern',\n\t\t\t\t\tshortFlag: 't',\n\t\t\t\t\tdescription: 'Run test files that match the provided pattern',\n\t\t\t\t}),\n\t\t\t],\n\t\t}),\n\t],\n\tproxy,\n}), process.argv);\n","import { sendAsyncErr, sendAsyncRes, sendErr } from '@taqueria/node-sdk';\nimport { LoadedConfig, RequestArgs, SanitizedAbsPath } from '@taqueria/node-sdk/types';\nimport { execa } from 'execa';\nimport { mkdir, stat, writeFile } from 'fs/promises';\nimport { defaults } from 'jest-config';\nimport { join } from 'path';\n\ntype DefaultConfig = typeof defaults;\n\ninterface CustomConfig extends LoadedConfig.t {\n\treadonly jestTestsRootDir?: string;\n}\n\ninterface Opts extends RequestArgs.ProxyRequestArgs {\n\treadonly config: CustomConfig;\n\treadonly init: boolean;\n\treadonly partition: string;\n\treadonly testPattern: string;\n}\n\nconst getDefaultConfig = (defaultConfig: DefaultConfig) => `\nmodule.exports = ${JSON.stringify(defaults, null, 4)}\n`;\n\nconst ensureRootConfigExists = (projectDir: SanitizedAbsPath.t) => {\n\tconst jestRootConfig = getRootConfigAbspath(projectDir);\n\treturn stat(jestRootConfig)\n\t\t.catch(_ => writeFile(jestRootConfig, getDefaultConfig(defaults)))\n\t\t.then(_ => jestRootConfig);\n};\n\nconst getRootConfigAbspath = (projectDir: SanitizedAbsPath.t) =>\n\tSanitizedAbsPath.create(\n\t\tjoin(projectDir, '.taq', 'jest.config.js'),\n\t);\n\nconst getTestsRootDir = (config: CustomConfig) => {\n\treturn config.jestTestsRootDir || 'tests';\n};\n\nconst toPartitionCfg = (partitionAbspath: SanitizedAbsPath.t, rootConfigAbsPath: SanitizedAbsPath.t) => `\nconst parentConfig = require('${rootConfigAbsPath}')\n\nmodule.exports = {\n ...parentConfig,\n roots: [\n \"${partitionAbspath}\"\n ]\n}\n`;\n\nconst getPartitionAbspath = (partitionDir: string) => SanitizedAbsPath.create(partitionDir);\n\nconst getPartitionConfigAbspath = (partitionDir: string) =>\n\tSanitizedAbsPath.create(join(partitionDir, 'jest.config.js'));\n\nconst createPartition = async (partitionDir: SanitizedAbsPath.t, projectDir: SanitizedAbsPath.t) =>\n\tensureRootConfigExists(projectDir)\n\t\t.then(_ => stat(partitionDir))\n\t\t.then(stats =>\n\t\t\tstats.isFile()\n\t\t\t\t? sendAsyncErr(`${partitionDir} is an invalid partition directory`)\n\t\t\t\t: stats\n\t\t)\n\t\t.catch(_ => mkdir(partitionDir, { recursive: true }))\n\t\t.then(_ => getPartitionConfigAbspath(partitionDir))\n\t\t.then(partitionCfgAbsPath =>\n\t\t\tstat(partitionCfgAbsPath)\n\t\t\t\t.catch(_ =>\n\t\t\t\t\twriteFile(\n\t\t\t\t\t\tpartitionCfgAbsPath,\n\t\t\t\t\t\ttoPartitionCfg(\n\t\t\t\t\t\t\tgetPartitionAbspath(partitionDir),\n\t\t\t\t\t\t\tgetRootConfigAbspath(projectDir),\n\t\t\t\t\t\t),\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t)\n\t\t.then(_ => getPartitionConfigAbspath(partitionDir));\n\nconst ensurePartitionExists = (args: Opts) =>\n\targs.partition\n\t\t? createPartition(\n\t\t\tSanitizedAbsPath.create(join(args.projectDir, args.partition)),\n\t\t\targs.projectDir,\n\t\t)\n\t\t: createPartition(\n\t\t\tSanitizedAbsPath.create(\n\t\t\t\tjoin(args.projectDir, getTestsRootDir(args.config)),\n\t\t\t),\n\t\t\targs.projectDir,\n\t\t);\n\nconst execCmd = (cmd: string, args: string[]) => {\n\t// console.log([cmd, ...args].join(' '))\n\n\tconst child = execa(cmd, args, {\n\t\treject: false,\n\t\tbuffer: false,\n\t\t// encoding: null,\n\t\tshell: true,\n\t\tstdio: 'inherit',\n\t\tenv: { FORCE_COLOR: 'true' },\n\t});\n\n\treturn child.then(_ => {});\n};\n\nexport default async (args: RequestArgs.ProxyRequestArgs) => {\n\tconst opts = args as Opts;\n\n\treturn ensurePartitionExists(opts)\n\t\t.then(configAbsPath => {\n\t\t\tif (!opts.init) {\n\t\t\t\treturn opts.testPattern\n\t\t\t\t\t? execCmd('npx', ['jest', '-c', configAbsPath, '--testPathPattern', opts.testPattern])\n\t\t\t\t\t: execCmd('npx', ['jest', '-c', configAbsPath]);\n\t\t\t}\n\n\t\t\treturn sendAsyncRes('Initialized successfully.');\n\t\t});\n};\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../"}
package/index.ts CHANGED
@@ -29,8 +29,8 @@ Plugin.create(() => ({
29
29
  }),
30
30
  Option.create({
31
31
  flag: 'testPattern',
32
+ shortFlag: 't',
32
33
  description: 'Run test files that match the provided pattern',
33
- boolean: true,
34
34
  }),
35
35
  ],
36
36
  }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taqueria/plugin-jest",
3
- "version": "0.4.0-rc1",
3
+ "version": "0.4.0",
4
4
  "description": "A plugin for Taqueria providing automated testing using the Jest Testing Framework",
5
5
  "keywords": [
6
6
  "taqueria",
package/proxy.ts CHANGED
@@ -92,7 +92,18 @@ const ensurePartitionExists = (args: Opts) =>
92
92
  );
93
93
 
94
94
  const execCmd = (cmd: string, args: string[]) => {
95
- return execa(cmd, args, { reject: false });
95
+ // console.log([cmd, ...args].join(' '))
96
+
97
+ const child = execa(cmd, args, {
98
+ reject: false,
99
+ buffer: false,
100
+ // encoding: null,
101
+ shell: true,
102
+ stdio: 'inherit',
103
+ env: { FORCE_COLOR: 'true' },
104
+ });
105
+
106
+ return child.then(_ => {});
96
107
  };
97
108
 
98
109
  export default async (args: RequestArgs.ProxyRequestArgs) => {
@@ -101,14 +112,9 @@ export default async (args: RequestArgs.ProxyRequestArgs) => {
101
112
  return ensurePartitionExists(opts)
102
113
  .then(configAbsPath => {
103
114
  if (!opts.init) {
104
- const cmd = opts.testPattern
105
- ? execCmd('npx', ['jest', '-c', configAbsPath, '-t', opts.testPattern])
115
+ return opts.testPattern
116
+ ? execCmd('npx', ['jest', '-c', configAbsPath, '--testPathPattern', opts.testPattern])
106
117
  : execCmd('npx', ['jest', '-c', configAbsPath]);
107
-
108
- return cmd.then(({ stdout, stderr }) => {
109
- if (stderr) sendErr(stderr);
110
- return sendAsyncRes(stdout);
111
- });
112
118
  }
113
119
 
114
120
  return sendAsyncRes('Initialized successfully.');