specmatic 0.70.5 → 0.70.6

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.
@@ -10,7 +10,10 @@ var _fastXmlParser = require("fast-xml-parser");
10
10
  var _fs = _interopRequireDefault(require("fs"));
11
11
  var _logger = _interopRequireDefault(require("../common/logger"));
12
12
  var _runner = require("../common/runner");
13
+ var _promise = _interopRequireDefault(require("terminate/promise"));
13
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
16
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
14
17
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
18
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
16
19
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
@@ -63,16 +66,21 @@ var startStub = (host, port, args) => {
63
66
  });
64
67
  };
65
68
  exports.startStub = startStub;
66
- var stopStub = stub => {
67
- var _javaProcess$stdout, _javaProcess$stderr;
68
- _logger.default.debug("Stub: Stopping server at ".concat(stub.url));
69
- var javaProcess = stub.process;
70
- (_javaProcess$stdout = javaProcess.stdout) === null || _javaProcess$stdout === void 0 ? void 0 : _javaProcess$stdout.removeAllListeners();
71
- (_javaProcess$stderr = javaProcess.stderr) === null || _javaProcess$stderr === void 0 ? void 0 : _javaProcess$stderr.removeAllListeners();
72
- javaProcess.removeAllListeners('close');
73
- javaProcess.kill();
74
- _logger.default.info("Stub: Stopped server at ".concat(stub.url));
75
- };
69
+ var stopStub = /*#__PURE__*/function () {
70
+ var _ref = _asyncToGenerator(function* (stub) {
71
+ var _javaProcess$stdout, _javaProcess$stderr;
72
+ _logger.default.debug("Stub: Stopping server at ".concat(stub.url));
73
+ var javaProcess = stub.process;
74
+ (_javaProcess$stdout = javaProcess.stdout) === null || _javaProcess$stdout === void 0 ? void 0 : _javaProcess$stdout.removeAllListeners();
75
+ (_javaProcess$stderr = javaProcess.stderr) === null || _javaProcess$stderr === void 0 ? void 0 : _javaProcess$stderr.removeAllListeners();
76
+ javaProcess.removeAllListeners('close');
77
+ yield (0, _promise.default)(javaProcess.pid);
78
+ _logger.default.info("Stub: Stopped server at ".concat(stub.url));
79
+ });
80
+ return function stopStub(_x) {
81
+ return _ref.apply(this, arguments);
82
+ };
83
+ }();
76
84
  exports.stopStub = stopStub;
77
85
  var test = (host, port, contractPath, args) => {
78
86
  var specsPath = _path.default.resolve(contractPath + '');
@@ -7,7 +7,10 @@ exports.verifyKafkaStub = exports.stopKafkaStub = exports.startKafkaStub = expor
7
7
  var _runner = require("../common/runner");
8
8
  var _logger = _interopRequireDefault(require("../common/logger"));
9
9
  var _nodeFetch = _interopRequireDefault(require("node-fetch"));
10
+ var _promise = _interopRequireDefault(require("terminate/promise"));
10
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
13
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
11
14
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12
15
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
13
16
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
@@ -60,16 +63,21 @@ var startKafkaStub = (port, args) => {
60
63
  });
61
64
  };
62
65
  exports.startKafkaStub = startKafkaStub;
63
- var stopKafkaStub = stub => {
64
- var _javaProcess$stdout, _javaProcess$stderr;
65
- _logger.default.debug("Kafka Stub: Stopping at port=".concat(stub.port, ", apiPort=").concat(stub.apiPort));
66
- var javaProcess = stub.process;
67
- (_javaProcess$stdout = javaProcess.stdout) === null || _javaProcess$stdout === void 0 ? void 0 : _javaProcess$stdout.removeAllListeners();
68
- (_javaProcess$stderr = javaProcess.stderr) === null || _javaProcess$stderr === void 0 ? void 0 : _javaProcess$stderr.removeAllListeners();
69
- javaProcess.removeAllListeners('close');
70
- javaProcess.kill();
71
- _logger.default.info("Kafka Stub: Stopped at port=".concat(stub.port, ", apiPort=").concat(stub.apiPort));
72
- };
66
+ var stopKafkaStub = /*#__PURE__*/function () {
67
+ var _ref = _asyncToGenerator(function* (stub) {
68
+ var _javaProcess$stdout, _javaProcess$stderr;
69
+ _logger.default.debug("Kafka Stub: Stopping at port=".concat(stub.port, ", apiPort=").concat(stub.apiPort));
70
+ var javaProcess = stub.process;
71
+ (_javaProcess$stdout = javaProcess.stdout) === null || _javaProcess$stdout === void 0 ? void 0 : _javaProcess$stdout.removeAllListeners();
72
+ (_javaProcess$stderr = javaProcess.stderr) === null || _javaProcess$stderr === void 0 ? void 0 : _javaProcess$stderr.removeAllListeners();
73
+ javaProcess.removeAllListeners('close');
74
+ yield (0, _promise.default)(javaProcess.pid);
75
+ _logger.default.info("Kafka Stub: Stopped at port=".concat(stub.port, ", apiPort=").concat(stub.apiPort));
76
+ });
77
+ return function stopKafkaStub(_x) {
78
+ return _ref.apply(this, arguments);
79
+ };
80
+ }();
73
81
  exports.stopKafkaStub = stopKafkaStub;
74
82
  var verifyKafkaStub = (stub, topic, value) => {
75
83
  var verificationUrl = "http://localhost:".concat(stub.apiPort, "/_verifications");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specmatic",
3
- "version": "0.70.5",
3
+ "version": "0.70.6",
4
4
  "description": "Node wrapper for Specmatic",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -46,6 +46,7 @@
46
46
  "fast-xml-parser": "^4.2.2",
47
47
  "node-fetch": "^2.6.11",
48
48
  "rimraf": "^5.0.1",
49
+ "terminate": "^2.6.1",
49
50
  "winston": "^3.8.2",
50
51
  "yargs": "^17.7.2"
51
52
  },
@@ -3,12 +3,14 @@ import path from 'path';
3
3
  import { ChildProcess } from 'child_process';
4
4
  import { mock as jestMock, mockReset } from 'jest-mock-extended';
5
5
  import { Readable } from 'stream';
6
+ import terminate from 'terminate/promise';
6
7
 
7
8
  import * as specmatic from '../..';
8
9
  import { specmaticJarName } from '../../config';
9
10
  import { Stub } from '..';
10
11
 
11
12
  jest.mock('exec-sh');
13
+ jest.mock('terminate');
12
14
 
13
15
  const SPECMATIC_JAR_PATH = path.resolve(__dirname, '..', '..', '..', specmaticJarName);
14
16
  const HOST = 'localhost';
@@ -129,5 +131,5 @@ test('stopStub method stops any running stub server', () => {
129
131
 
130
132
  expect(readableMock.removeAllListeners).toHaveBeenCalledTimes(2);
131
133
  expect(javaProcessMock.removeAllListeners).toHaveBeenCalledTimes(1);
132
- expect(javaProcessMock.kill).toHaveBeenCalledTimes(1);
134
+ expect(terminate).toHaveBeenCalledTimes(1);
133
135
  });
package/src/core/index.ts CHANGED
@@ -5,6 +5,7 @@ import { XMLParser } from 'fast-xml-parser';
5
5
  import fs from 'fs';
6
6
  import logger from '../common/logger';
7
7
  import { callSpecmatic } from '../common/runner';
8
+ import terminate from 'terminate/promise';
8
9
 
9
10
  export class Stub {
10
11
  host: string;
@@ -62,13 +63,13 @@ const startStub = (host?: string, port?: number, args?: (string | number)[]): Pr
62
63
  });
63
64
  };
64
65
 
65
- const stopStub = (stub: Stub) => {
66
+ const stopStub = async (stub: Stub) => {
66
67
  logger.debug(`Stub: Stopping server at ${stub.url}`);
67
68
  const javaProcess = stub.process;
68
69
  javaProcess.stdout?.removeAllListeners();
69
70
  javaProcess.stderr?.removeAllListeners();
70
71
  javaProcess.removeAllListeners('close');
71
- javaProcess.kill();
72
+ await terminate(javaProcess.pid!);
72
73
  logger.info(`Stub: Stopped server at ${stub.url}`);
73
74
  };
74
75
 
@@ -2,6 +2,7 @@ import { callKafka } from '../common/runner';
2
2
  import logger from '../common/logger';
3
3
  import { ChildProcess } from 'child_process';
4
4
  import fetch from 'node-fetch';
5
+ import terminate from 'terminate/promise';
5
6
 
6
7
  export class KafkaStub {
7
8
  port: number;
@@ -61,13 +62,13 @@ const startKafkaStub = (port?: number, args?: (string | number)[]): Promise<Kafk
61
62
  });
62
63
  };
63
64
 
64
- const stopKafkaStub = (stub: KafkaStub) => {
65
+ const stopKafkaStub = async (stub: KafkaStub) => {
65
66
  logger.debug(`Kafka Stub: Stopping at port=${stub.port}, apiPort=${stub.apiPort}`);
66
67
  const javaProcess = stub.process;
67
68
  javaProcess.stdout?.removeAllListeners();
68
69
  javaProcess.stderr?.removeAllListeners();
69
70
  javaProcess.removeAllListeners('close');
70
- javaProcess.kill();
71
+ await terminate(javaProcess.pid!);
71
72
  logger.info(`Kafka Stub: Stopped at port=${stub.port}, apiPort=${stub.apiPort}`);
72
73
  };
73
74