appium 2.0.0-beta.21 → 2.0.0-beta.25

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.
Files changed (93) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +1 -2
  3. package/build/check-npm-pack-files.js +23 -0
  4. package/build/commands-yml/parse.js +319 -0
  5. package/build/commands-yml/validator.js +130 -0
  6. package/build/index.js +19 -0
  7. package/build/lib/appium.js +22 -7
  8. package/build/lib/cli/args.js +13 -15
  9. package/build/lib/cli/npm.js +27 -16
  10. package/build/lib/cli/parser.js +7 -3
  11. package/build/lib/config-file.js +4 -7
  12. package/build/lib/config.js +57 -48
  13. package/build/lib/extension-config.js +1 -1
  14. package/build/lib/main.js +28 -28
  15. package/build/lib/plugin-config.js +2 -2
  16. package/build/lib/plugins.js +4 -2
  17. package/build/lib/schema/appium-config-schema.js +3 -2
  18. package/build/lib/schema/arg-spec.js +5 -3
  19. package/build/lib/schema/cli-args.js +25 -16
  20. package/build/lib/schema/keywords.js +14 -4
  21. package/build/lib/schema/schema.js +86 -9
  22. package/build/lib/utils.js +16 -36
  23. package/build/postinstall.js +90 -0
  24. package/build/test/cli/cli-e2e-specs.js +221 -0
  25. package/build/test/cli/cli-helpers.js +86 -0
  26. package/build/test/cli/cli-specs.js +71 -0
  27. package/build/test/cli/fixtures/test-driver/package.json +27 -0
  28. package/build/test/cli/schema-args-specs.js +48 -0
  29. package/build/test/cli/schema-e2e-specs.js +47 -0
  30. package/build/test/config-e2e-specs.js +112 -0
  31. package/build/test/config-file-e2e-specs.js +191 -0
  32. package/build/test/config-file-specs.js +281 -0
  33. package/build/test/config-specs.js +258 -0
  34. package/build/test/driver-e2e-specs.js +435 -0
  35. package/build/test/driver-specs.js +386 -0
  36. package/build/test/ext-config-io-specs.js +181 -0
  37. package/build/test/extension-config-specs.js +365 -0
  38. package/build/test/fixtures/allow-feat.txt +5 -0
  39. package/build/test/fixtures/caps.json +3 -0
  40. package/build/test/fixtures/config/allow-insecure.txt +3 -0
  41. package/build/test/fixtures/config/appium.config.bad-nodeconfig.json +5 -0
  42. package/build/test/fixtures/config/appium.config.bad.json +32 -0
  43. package/build/test/fixtures/config/appium.config.ext-good.json +9 -0
  44. package/build/test/fixtures/config/appium.config.ext-unknown-props.json +10 -0
  45. package/build/test/fixtures/config/appium.config.good.js +40 -0
  46. package/build/test/fixtures/config/appium.config.good.json +33 -0
  47. package/build/test/fixtures/config/appium.config.good.yaml +30 -0
  48. package/build/test/fixtures/config/appium.config.invalid.json +31 -0
  49. package/build/test/fixtures/config/appium.config.security-array.json +5 -0
  50. package/build/test/fixtures/config/appium.config.security-delimited.json +5 -0
  51. package/build/test/fixtures/config/appium.config.security-path.json +5 -0
  52. package/build/test/fixtures/config/driver-fake.config.json +8 -0
  53. package/build/test/fixtures/config/nodeconfig.json +3 -0
  54. package/build/test/fixtures/config/plugin-fake.config.json +0 -0
  55. package/build/test/fixtures/default-args.js +35 -0
  56. package/build/test/fixtures/deny-feat.txt +5 -0
  57. package/build/test/fixtures/driver.schema.js +20 -0
  58. package/build/test/fixtures/extensions.yaml +27 -0
  59. package/build/test/fixtures/flattened-schema.js +532 -0
  60. package/build/test/fixtures/plugin.schema.js +20 -0
  61. package/build/test/fixtures/schema-with-extensions.js +28 -0
  62. package/build/test/grid-register-specs.js +74 -0
  63. package/build/test/helpers.js +75 -0
  64. package/build/test/logger-specs.js +76 -0
  65. package/build/test/npm-specs.js +20 -0
  66. package/build/test/parser-specs.js +319 -0
  67. package/build/test/plugin-e2e-specs.js +316 -0
  68. package/build/test/schema/arg-spec-specs.js +70 -0
  69. package/build/test/schema/cli-args-specs.js +408 -0
  70. package/build/test/schema/schema-specs.js +407 -0
  71. package/build/test/utils-specs.js +288 -0
  72. package/index.js +11 -0
  73. package/lib/appium-config.schema.json +2 -1
  74. package/lib/appium.js +51 -8
  75. package/lib/cli/args.js +17 -14
  76. package/lib/cli/npm.js +68 -6
  77. package/lib/cli/parser.js +5 -2
  78. package/lib/config-file.js +9 -12
  79. package/lib/config.js +104 -56
  80. package/lib/extension-config.js +1 -1
  81. package/lib/main.js +94 -40
  82. package/lib/plugin-config.js +1 -1
  83. package/lib/plugins.js +2 -0
  84. package/lib/schema/appium-config-schema.js +1 -0
  85. package/lib/schema/arg-spec.js +13 -3
  86. package/lib/schema/cli-args.js +22 -34
  87. package/lib/schema/keywords.js +20 -4
  88. package/lib/schema/schema.js +150 -24
  89. package/lib/utils.js +28 -29
  90. package/package.json +9 -14
  91. package/types/types.d.ts +5 -0
  92. package/build/lib/cli/argparse-actions.js +0 -104
  93. package/lib/cli/argparse-actions.js +0 -77
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ require("source-map-support/register");
6
+
7
+ var _sinon = _interopRequireDefault(require("sinon"));
8
+
9
+ var _helpers = require("./helpers");
10
+
11
+ describe('grid-register', function () {
12
+ let sandbox;
13
+ beforeEach(function () {
14
+ sandbox = _sinon.default.createSandbox();
15
+ });
16
+ afterEach(function () {
17
+ sandbox.restore();
18
+ });
19
+ describe('registerNode()', function () {
20
+ let registerNode;
21
+ let mocks;
22
+ beforeEach(function () {
23
+ mocks = {
24
+ '@appium/support': {
25
+ fs: {
26
+ readFile: sandbox.stub().resolves('{}')
27
+ }
28
+ },
29
+ axios: sandbox.stub().resolves({
30
+ data: '',
31
+ status: 200
32
+ })
33
+ };
34
+ registerNode = _helpers.rewiremock.proxy(() => require('../lib/grid-register'), mocks).default;
35
+ });
36
+ describe('when provided a path to a config file', function () {
37
+ it('should read the config file', async function () {
38
+ await registerNode('/path/to/config-file.json');
39
+ mocks['@appium/support'].fs.readFile.should.have.been.calledOnceWith('/path/to/config-file.json', 'utf-8');
40
+ });
41
+ it('should parse the config file as JSON', async function () {
42
+ sandbox.spy(JSON, 'parse');
43
+ await registerNode('/path/to/config-file.json');
44
+ JSON.parse.should.have.been.calledOnceWith(await mocks['@appium/support'].fs.readFile.firstCall.returnValue);
45
+ });
46
+ describe('when the config file is invalid', function () {
47
+ beforeEach(function () {
48
+ mocks['@appium/support'].fs.readFile.resolves('');
49
+ });
50
+ it('should reject', async function () {
51
+ await registerNode('/path/to/config-file.json').should.be.rejected;
52
+ });
53
+ });
54
+ });
55
+ describe('when provided a config object', function () {
56
+ it('should not attempt to read the object as a config file', async function () {
57
+ await registerNode({
58
+ my: 'config'
59
+ });
60
+ mocks['@appium/support'].fs.readFile.should.not.have.been.called;
61
+ });
62
+ it('should not attempt to parse any JSON', async function () {
63
+ sandbox.spy(JSON, 'parse');
64
+ await registerNode({
65
+ my: 'config'
66
+ });
67
+ JSON.parse.should.not.have.been.called;
68
+ });
69
+ });
70
+ });
71
+ });require('source-map-support').install();
72
+
73
+
74
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvZ3JpZC1yZWdpc3Rlci1zcGVjcy5qcyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsInNhbmRib3giLCJiZWZvcmVFYWNoIiwic2lub24iLCJjcmVhdGVTYW5kYm94IiwiYWZ0ZXJFYWNoIiwicmVzdG9yZSIsInJlZ2lzdGVyTm9kZSIsIm1vY2tzIiwiZnMiLCJyZWFkRmlsZSIsInN0dWIiLCJyZXNvbHZlcyIsImF4aW9zIiwiZGF0YSIsInN0YXR1cyIsInJld2lyZW1vY2siLCJwcm94eSIsInJlcXVpcmUiLCJkZWZhdWx0IiwiaXQiLCJzaG91bGQiLCJoYXZlIiwiYmVlbiIsImNhbGxlZE9uY2VXaXRoIiwic3B5IiwiSlNPTiIsInBhcnNlIiwiZmlyc3RDYWxsIiwicmV0dXJuVmFsdWUiLCJiZSIsInJlamVjdGVkIiwibXkiLCJub3QiLCJjYWxsZWQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBOztBQUNBOztBQUVBQSxRQUFRLENBQUMsZUFBRCxFQUFrQixZQUFZO0FBQ3BDLE1BQUlDLE9BQUo7QUFFQUMsRUFBQUEsVUFBVSxDQUFDLFlBQVk7QUFDckJELElBQUFBLE9BQU8sR0FBR0UsZUFBTUMsYUFBTixFQUFWO0FBQ0QsR0FGUyxDQUFWO0FBSUFDLEVBQUFBLFNBQVMsQ0FBQyxZQUFZO0FBQ3BCSixJQUFBQSxPQUFPLENBQUNLLE9BQVI7QUFDRCxHQUZRLENBQVQ7QUFJQU4sRUFBQUEsUUFBUSxDQUFDLGdCQUFELEVBQW1CLFlBQVk7QUFDckMsUUFBSU8sWUFBSjtBQUNBLFFBQUlDLEtBQUo7QUFFQU4sSUFBQUEsVUFBVSxDQUFDLFlBQVk7QUFDckJNLE1BQUFBLEtBQUssR0FBRztBQUNOLDJCQUFtQjtBQUNqQkMsVUFBQUEsRUFBRSxFQUFFO0FBQ0ZDLFlBQUFBLFFBQVEsRUFBRVQsT0FBTyxDQUFDVSxJQUFSLEdBQWVDLFFBQWYsQ0FBd0IsSUFBeEI7QUFEUjtBQURhLFNBRGI7QUFNTkMsUUFBQUEsS0FBSyxFQUFFWixPQUFPLENBQUNVLElBQVIsR0FBZUMsUUFBZixDQUF3QjtBQUFDRSxVQUFBQSxJQUFJLEVBQUUsRUFBUDtBQUFXQyxVQUFBQSxNQUFNLEVBQUU7QUFBbkIsU0FBeEI7QUFORCxPQUFSO0FBU0FSLE1BQUFBLFlBQVksR0FBR1Msb0JBQVdDLEtBQVgsQ0FDYixNQUFNQyxPQUFPLENBQUMsc0JBQUQsQ0FEQSxFQUViVixLQUZhLEVBR2JXLE9BSEY7QUFJRCxLQWRTLENBQVY7QUFnQkFuQixJQUFBQSxRQUFRLENBQUMsdUNBQUQsRUFBMEMsWUFBWTtBQUM1RG9CLE1BQUFBLEVBQUUsQ0FBQyw2QkFBRCxFQUFnQyxrQkFBa0I7QUFDbEQsY0FBTWIsWUFBWSxDQUFDLDJCQUFELENBQWxCO0FBQ0FDLFFBQUFBLEtBQUssQ0FBQyxpQkFBRCxDQUFMLENBQXlCQyxFQUF6QixDQUE0QkMsUUFBNUIsQ0FBcUNXLE1BQXJDLENBQTRDQyxJQUE1QyxDQUFpREMsSUFBakQsQ0FBc0RDLGNBQXRELENBQ0UsMkJBREYsRUFFRSxPQUZGO0FBSUQsT0FOQyxDQUFGO0FBUUFKLE1BQUFBLEVBQUUsQ0FBQyxzQ0FBRCxFQUF5QyxrQkFBa0I7QUFDM0RuQixRQUFBQSxPQUFPLENBQUN3QixHQUFSLENBQVlDLElBQVosRUFBa0IsT0FBbEI7QUFDQSxjQUFNbkIsWUFBWSxDQUFDLDJCQUFELENBQWxCO0FBQ0FtQixRQUFBQSxJQUFJLENBQUNDLEtBQUwsQ0FBV04sTUFBWCxDQUFrQkMsSUFBbEIsQ0FBdUJDLElBQXZCLENBQTRCQyxjQUE1QixDQUNFLE1BQU1oQixLQUFLLENBQUMsaUJBQUQsQ0FBTCxDQUF5QkMsRUFBekIsQ0FBNEJDLFFBQTVCLENBQXFDa0IsU0FBckMsQ0FBK0NDLFdBRHZEO0FBR0QsT0FOQyxDQUFGO0FBUUE3QixNQUFBQSxRQUFRLENBQUMsaUNBQUQsRUFBb0MsWUFBWTtBQUN0REUsUUFBQUEsVUFBVSxDQUFDLFlBQVk7QUFDckJNLFVBQUFBLEtBQUssQ0FBQyxpQkFBRCxDQUFMLENBQXlCQyxFQUF6QixDQUE0QkMsUUFBNUIsQ0FBcUNFLFFBQXJDLENBQThDLEVBQTlDO0FBQ0QsU0FGUyxDQUFWO0FBR0FRLFFBQUFBLEVBQUUsQ0FBQyxlQUFELEVBQWtCLGtCQUFrQjtBQUNwQyxnQkFBTWIsWUFBWSxDQUFDLDJCQUFELENBQVosQ0FBMENjLE1BQTFDLENBQWlEUyxFQUFqRCxDQUFvREMsUUFBMUQ7QUFDRCxTQUZDLENBQUY7QUFHRCxPQVBPLENBQVI7QUFRRCxLQXpCTyxDQUFSO0FBMkJBL0IsSUFBQUEsUUFBUSxDQUFDLCtCQUFELEVBQWtDLFlBQVk7QUFDcERvQixNQUFBQSxFQUFFLENBQUMsd0RBQUQsRUFBMkQsa0JBQWtCO0FBQzdFLGNBQU1iLFlBQVksQ0FBQztBQUFDeUIsVUFBQUEsRUFBRSxFQUFFO0FBQUwsU0FBRCxDQUFsQjtBQUNBeEIsUUFBQUEsS0FBSyxDQUFDLGlCQUFELENBQUwsQ0FBeUJDLEVBQXpCLENBQTRCQyxRQUE1QixDQUFxQ1csTUFBckMsQ0FBNENZLEdBQTVDLENBQWdEWCxJQUFoRCxDQUFxREMsSUFBckQsQ0FBMERXLE1BQTFEO0FBQ0QsT0FIQyxDQUFGO0FBS0FkLE1BQUFBLEVBQUUsQ0FBQyxzQ0FBRCxFQUF5QyxrQkFBa0I7QUFDM0RuQixRQUFBQSxPQUFPLENBQUN3QixHQUFSLENBQVlDLElBQVosRUFBa0IsT0FBbEI7QUFDQSxjQUFNbkIsWUFBWSxDQUFDO0FBQUN5QixVQUFBQSxFQUFFLEVBQUU7QUFBTCxTQUFELENBQWxCO0FBQ0FOLFFBQUFBLElBQUksQ0FBQ0MsS0FBTCxDQUFXTixNQUFYLENBQWtCWSxHQUFsQixDQUFzQlgsSUFBdEIsQ0FBMkJDLElBQTNCLENBQWdDVyxNQUFoQztBQUNELE9BSkMsQ0FBRjtBQUtELEtBWE8sQ0FBUjtBQVlELEdBM0RPLENBQVI7QUE0REQsQ0F2RU8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0IHsgcmV3aXJlbW9jayB9IGZyb20gJy4vaGVscGVycyc7XG5cbmRlc2NyaWJlKCdncmlkLXJlZ2lzdGVyJywgZnVuY3Rpb24gKCkge1xuICBsZXQgc2FuZGJveDtcblxuICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBzYW5kYm94ID0gc2lub24uY3JlYXRlU2FuZGJveCgpO1xuICB9KTtcblxuICBhZnRlckVhY2goZnVuY3Rpb24gKCkge1xuICAgIHNhbmRib3gucmVzdG9yZSgpO1xuICB9KTtcblxuICBkZXNjcmliZSgncmVnaXN0ZXJOb2RlKCknLCBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IHJlZ2lzdGVyTm9kZTtcbiAgICBsZXQgbW9ja3M7XG5cbiAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIG1vY2tzID0ge1xuICAgICAgICAnQGFwcGl1bS9zdXBwb3J0Jzoge1xuICAgICAgICAgIGZzOiB7XG4gICAgICAgICAgICByZWFkRmlsZTogc2FuZGJveC5zdHViKCkucmVzb2x2ZXMoJ3t9JyksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgYXhpb3M6IHNhbmRib3guc3R1YigpLnJlc29sdmVzKHtkYXRhOiAnJywgc3RhdHVzOiAyMDB9KSxcbiAgICAgIH07XG5cbiAgICAgIHJlZ2lzdGVyTm9kZSA9IHJld2lyZW1vY2sucHJveHkoXG4gICAgICAgICgpID0+IHJlcXVpcmUoJy4uL2xpYi9ncmlkLXJlZ2lzdGVyJyksXG4gICAgICAgIG1vY2tzLFxuICAgICAgKS5kZWZhdWx0O1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3doZW4gcHJvdmlkZWQgYSBwYXRoIHRvIGEgY29uZmlnIGZpbGUnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpdCgnc2hvdWxkIHJlYWQgdGhlIGNvbmZpZyBmaWxlJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBhd2FpdCByZWdpc3Rlck5vZGUoJy9wYXRoL3RvL2NvbmZpZy1maWxlLmpzb24nKTtcbiAgICAgICAgbW9ja3NbJ0BhcHBpdW0vc3VwcG9ydCddLmZzLnJlYWRGaWxlLnNob3VsZC5oYXZlLmJlZW4uY2FsbGVkT25jZVdpdGgoXG4gICAgICAgICAgJy9wYXRoL3RvL2NvbmZpZy1maWxlLmpzb24nLFxuICAgICAgICAgICd1dGYtOCcsXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBwYXJzZSB0aGUgY29uZmlnIGZpbGUgYXMgSlNPTicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgc2FuZGJveC5zcHkoSlNPTiwgJ3BhcnNlJyk7XG4gICAgICAgIGF3YWl0IHJlZ2lzdGVyTm9kZSgnL3BhdGgvdG8vY29uZmlnLWZpbGUuanNvbicpO1xuICAgICAgICBKU09OLnBhcnNlLnNob3VsZC5oYXZlLmJlZW4uY2FsbGVkT25jZVdpdGgoXG4gICAgICAgICAgYXdhaXQgbW9ja3NbJ0BhcHBpdW0vc3VwcG9ydCddLmZzLnJlYWRGaWxlLmZpcnN0Q2FsbC5yZXR1cm5WYWx1ZSxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgICBkZXNjcmliZSgnd2hlbiB0aGUgY29uZmlnIGZpbGUgaXMgaW52YWxpZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgbW9ja3NbJ0BhcHBpdW0vc3VwcG9ydCddLmZzLnJlYWRGaWxlLnJlc29sdmVzKCcnKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0KCdzaG91bGQgcmVqZWN0JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGF3YWl0IHJlZ2lzdGVyTm9kZSgnL3BhdGgvdG8vY29uZmlnLWZpbGUuanNvbicpLnNob3VsZC5iZS5yZWplY3RlZDtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCd3aGVuIHByb3ZpZGVkIGEgY29uZmlnIG9iamVjdCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGl0KCdzaG91bGQgbm90IGF0dGVtcHQgdG8gcmVhZCB0aGUgb2JqZWN0IGFzIGEgY29uZmlnIGZpbGUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGF3YWl0IHJlZ2lzdGVyTm9kZSh7bXk6ICdjb25maWcnfSk7XG4gICAgICAgIG1vY2tzWydAYXBwaXVtL3N1cHBvcnQnXS5mcy5yZWFkRmlsZS5zaG91bGQubm90LmhhdmUuYmVlbi5jYWxsZWQ7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBub3QgYXR0ZW1wdCB0byBwYXJzZSBhbnkgSlNPTicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgc2FuZGJveC5zcHkoSlNPTiwgJ3BhcnNlJyk7XG4gICAgICAgIGF3YWl0IHJlZ2lzdGVyTm9kZSh7bXk6ICdjb25maWcnfSk7XG4gICAgICAgIEpTT04ucGFyc2Uuc2hvdWxkLm5vdC5oYXZlLmJlZW4uY2FsbGVkO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwiZmlsZSI6InRlc3QvZ3JpZC1yZWdpc3Rlci1zcGVjcy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.W3C_PREFIXED_CAPS = exports.W3C_CAPS = exports.TEST_HOST = exports.TEST_FAKE_APP = exports.PROJECT_ROOT = exports.BASE_CAPS = void 0;
9
+ exports.getTestPort = getTestPort;
10
+ exports.resolveFixture = resolveFixture;
11
+ Object.defineProperty(exports, "rewiremock", {
12
+ enumerable: true,
13
+ get: function () {
14
+ return _rewiremock.default;
15
+ }
16
+ });
17
+
18
+ require("source-map-support/register");
19
+
20
+ var _rewiremock = _interopRequireWildcard(require("rewiremock"));
21
+
22
+ var _path = _interopRequireDefault(require("path"));
23
+
24
+ var _utils = require("../lib/utils");
25
+
26
+ var _getPort = _interopRequireDefault(require("get-port"));
27
+
28
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
+
30
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
+
32
+ const TEST_HOST = '127.0.0.1';
33
+ exports.TEST_HOST = TEST_HOST;
34
+
35
+ const fakeDriverPath = _path.default.dirname(require.resolve('@appium/fake-driver/package.json'));
36
+
37
+ const PROJECT_ROOT = _path.default.join(fakeDriverPath, '..', '..');
38
+
39
+ exports.PROJECT_ROOT = PROJECT_ROOT;
40
+
41
+ const TEST_FAKE_APP = _path.default.join(fakeDriverPath, 'test', 'fixtures', 'app.xml');
42
+
43
+ exports.TEST_FAKE_APP = TEST_FAKE_APP;
44
+ const BASE_CAPS = {
45
+ automationName: 'Fake',
46
+ platformName: 'Fake',
47
+ deviceName: 'Fake',
48
+ app: TEST_FAKE_APP
49
+ };
50
+ exports.BASE_CAPS = BASE_CAPS;
51
+ const W3C_PREFIXED_CAPS = { ...(0, _utils.insertAppiumPrefixes)(BASE_CAPS)
52
+ };
53
+ exports.W3C_PREFIXED_CAPS = W3C_PREFIXED_CAPS;
54
+ const W3C_CAPS = {
55
+ alwaysMatch: { ...W3C_PREFIXED_CAPS
56
+ },
57
+ firstMatch: [{}]
58
+ };
59
+ exports.W3C_CAPS = W3C_CAPS;
60
+ let TEST_PORT;
61
+
62
+ async function getTestPort() {
63
+ return await (TEST_PORT || (0, _getPort.default)());
64
+ }
65
+
66
+ function resolveFixture(filename, ...pathParts) {
67
+ return _path.default.join(__dirname, 'fixtures', filename, ...pathParts);
68
+ }
69
+
70
+ (0, _rewiremock.overrideEntryPoint)(module);
71
+ (0, _rewiremock.addPlugin)(_rewiremock.plugins.nodejs);
72
+ (0, _rewiremock.addPlugin)(_rewiremock.plugins.childOnly);require('source-map-support').install();
73
+
74
+
75
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvaGVscGVycy5qcyJdLCJuYW1lcyI6WyJURVNUX0hPU1QiLCJmYWtlRHJpdmVyUGF0aCIsInBhdGgiLCJkaXJuYW1lIiwicmVxdWlyZSIsInJlc29sdmUiLCJQUk9KRUNUX1JPT1QiLCJqb2luIiwiVEVTVF9GQUtFX0FQUCIsIkJBU0VfQ0FQUyIsImF1dG9tYXRpb25OYW1lIiwicGxhdGZvcm1OYW1lIiwiZGV2aWNlTmFtZSIsImFwcCIsIlczQ19QUkVGSVhFRF9DQVBTIiwiVzNDX0NBUFMiLCJhbHdheXNNYXRjaCIsImZpcnN0TWF0Y2giLCJURVNUX1BPUlQiLCJnZXRUZXN0UG9ydCIsInJlc29sdmVGaXh0dXJlIiwiZmlsZW5hbWUiLCJwYXRoUGFydHMiLCJfX2Rpcm5hbWUiLCJtb2R1bGUiLCJwbHVnaW5zIiwibm9kZWpzIiwiY2hpbGRPbmx5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLE1BQU1BLFNBQVMsR0FBRyxXQUFsQjs7O0FBRUEsTUFBTUMsY0FBYyxHQUFHQyxjQUFLQyxPQUFMLENBQWFDLE9BQU8sQ0FBQ0MsT0FBUixDQUFnQixrQ0FBaEIsQ0FBYixDQUF2Qjs7QUFDQSxNQUFNQyxZQUFZLEdBQUdKLGNBQUtLLElBQUwsQ0FBVU4sY0FBVixFQUEwQixJQUExQixFQUFnQyxJQUFoQyxDQUFyQjs7OztBQUNBLE1BQU1PLGFBQWEsR0FBR04sY0FBS0ssSUFBTCxDQUFVTixjQUFWLEVBQTBCLE1BQTFCLEVBQWtDLFVBQWxDLEVBQThDLFNBQTlDLENBQXRCOzs7QUFFQSxNQUFNUSxTQUFTLEdBQUc7QUFDaEJDLEVBQUFBLGNBQWMsRUFBRSxNQURBO0FBRWhCQyxFQUFBQSxZQUFZLEVBQUUsTUFGRTtBQUdoQkMsRUFBQUEsVUFBVSxFQUFFLE1BSEk7QUFJaEJDLEVBQUFBLEdBQUcsRUFBRUw7QUFKVyxDQUFsQjs7QUFNQSxNQUFNTSxpQkFBaUIsR0FBRyxFQUFDLEdBQUcsaUNBQXFCTCxTQUFyQjtBQUFKLENBQTFCOztBQUNBLE1BQU1NLFFBQVEsR0FBRztBQUNmQyxFQUFBQSxXQUFXLEVBQUUsRUFBQyxHQUFHRjtBQUFKLEdBREU7QUFFZkcsRUFBQUEsVUFBVSxFQUFFLENBQUMsRUFBRDtBQUZHLENBQWpCOztBQUtBLElBQUlDLFNBQUo7O0FBS0EsZUFBZUMsV0FBZixHQUE4QjtBQUM1QixTQUFPLE9BQU9ELFNBQVMsSUFBSSx1QkFBcEIsQ0FBUDtBQUNEOztBQVFELFNBQVNFLGNBQVQsQ0FBeUJDLFFBQXpCLEVBQW1DLEdBQUdDLFNBQXRDLEVBQWlEO0FBQy9DLFNBQU9wQixjQUFLSyxJQUFMLENBQVVnQixTQUFWLEVBQXFCLFVBQXJCLEVBQWlDRixRQUFqQyxFQUEyQyxHQUFHQyxTQUE5QyxDQUFQO0FBQ0Q7O0FBRUQsb0NBQW1CRSxNQUFuQjtBQUNBLDJCQUFVQyxvQkFBUUMsTUFBbEI7QUFDQSwyQkFBVUQsb0JBQVFFLFNBQWxCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJld2lyZW1vY2ssIHthZGRQbHVnaW4sIG92ZXJyaWRlRW50cnlQb2ludCwgcGx1Z2luc30gZnJvbSAncmV3aXJlbW9jayc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7aW5zZXJ0QXBwaXVtUHJlZml4ZXN9IGZyb20gJy4uL2xpYi91dGlscyc7XG5pbXBvcnQgZ2V0UG9ydCBmcm9tICdnZXQtcG9ydCc7XG5cbmNvbnN0IFRFU1RfSE9TVCA9ICcxMjcuMC4wLjEnO1xuXG5jb25zdCBmYWtlRHJpdmVyUGF0aCA9IHBhdGguZGlybmFtZShyZXF1aXJlLnJlc29sdmUoJ0BhcHBpdW0vZmFrZS1kcml2ZXIvcGFja2FnZS5qc29uJykpO1xuY29uc3QgUFJPSkVDVF9ST09UID0gcGF0aC5qb2luKGZha2VEcml2ZXJQYXRoLCAnLi4nLCAnLi4nKTtcbmNvbnN0IFRFU1RfRkFLRV9BUFAgPSBwYXRoLmpvaW4oZmFrZURyaXZlclBhdGgsICd0ZXN0JywgJ2ZpeHR1cmVzJywgJ2FwcC54bWwnKTtcblxuY29uc3QgQkFTRV9DQVBTID0ge1xuICBhdXRvbWF0aW9uTmFtZTogJ0Zha2UnLFxuICBwbGF0Zm9ybU5hbWU6ICdGYWtlJyxcbiAgZGV2aWNlTmFtZTogJ0Zha2UnLFxuICBhcHA6IFRFU1RfRkFLRV9BUFBcbn07XG5jb25zdCBXM0NfUFJFRklYRURfQ0FQUyA9IHsuLi5pbnNlcnRBcHBpdW1QcmVmaXhlcyhCQVNFX0NBUFMpfTtcbmNvbnN0IFczQ19DQVBTID0ge1xuICBhbHdheXNNYXRjaDogey4uLlczQ19QUkVGSVhFRF9DQVBTfSxcbiAgZmlyc3RNYXRjaDogW3t9XSxcbn07XG5cbmxldCBURVNUX1BPUlQ7XG4vKipcbiAqIFJldHVybnMgYSBmcmVlIHBvcnQ7IG9uZSBwZXIgcHJvY2Vzc1xuICogQHJldHVybnMge1Byb21pc2U8bnVtYmVyPn0gYSBmcmVlIHBvcnRcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0VGVzdFBvcnQgKCkge1xuICByZXR1cm4gYXdhaXQgKFRFU1RfUE9SVCB8fCBnZXRQb3J0KCkpO1xufVxuXG4vKipcbiAqIFJlc29sdmUgYSBmaWxlIHJlbGF0aXZlIHRvIHRoZSBgZml4dHVyZXNgIGRpclxuICogQHBhcmFtIHtzdHJpbmd9IGZpbGVuYW1lIC0gRmlsZW5hbWUgdG8gcmVzb2x2ZVxuICogQHBhcmFtIHsuLi5zdHJpbmd9IFtwYXRoUGFydHNdIC0gQWRkaXRpb25hbCBwYXRocyB0byBgam9pbigpYFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZUZpeHR1cmUgKGZpbGVuYW1lLCAuLi5wYXRoUGFydHMpIHtcbiAgcmV0dXJuIHBhdGguam9pbihfX2Rpcm5hbWUsICdmaXh0dXJlcycsIGZpbGVuYW1lLCAuLi5wYXRoUGFydHMpO1xufVxuXG5vdmVycmlkZUVudHJ5UG9pbnQobW9kdWxlKTtcbmFkZFBsdWdpbihwbHVnaW5zLm5vZGVqcyk7XG5hZGRQbHVnaW4ocGx1Z2lucy5jaGlsZE9ubHkpO1xuXG5leHBvcnQgeyBURVNUX0ZBS0VfQVBQLCBURVNUX0hPU1QsIEJBU0VfQ0FQUywgVzNDX1BSRUZJWEVEX0NBUFMsIFczQ19DQVBTLCBQUk9KRUNUX1JPT1QsIGdldFRlc3RQb3J0LCByZXdpcmVtb2NrLCByZXNvbHZlRml4dHVyZSB9O1xuIl0sImZpbGUiOiJ0ZXN0L2hlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ require("source-map-support/register");
6
+
7
+ var _logsink = require("../lib/logsink");
8
+
9
+ var _sinon = _interopRequireDefault(require("sinon"));
10
+
11
+ var _support = require("@appium/support");
12
+
13
+ const forceLogs = process.env._FORCE_LOGS;
14
+ process.env._FORCE_LOGS = 1;
15
+
16
+ const log = _support.logger.getLogger('Appium');
17
+
18
+ describe('logging', function () {
19
+ let stderrSpy;
20
+ let stdoutSpy;
21
+ beforeEach(function () {
22
+ stderrSpy = _sinon.default.spy(process.stderr, 'write');
23
+ stdoutSpy = _sinon.default.spy(process.stdout, 'write');
24
+ (0, _logsink.clear)();
25
+ });
26
+ afterEach(function () {
27
+ stderrSpy.restore();
28
+ stdoutSpy.restore();
29
+ });
30
+ after(function () {
31
+ process.env._FORCE_LOGS = forceLogs;
32
+ });
33
+ const errorMsg = 'some error';
34
+ const warnMsg = 'some warning';
35
+ const debugMsg = 'some debug';
36
+
37
+ function doLogging() {
38
+ log.error(errorMsg);
39
+ log.warn(warnMsg);
40
+ log.debug(debugMsg);
41
+ }
42
+
43
+ it('should send error, info and debug when loglevel is debug', async function () {
44
+ await (0, _logsink.init)({
45
+ loglevel: 'debug'
46
+ });
47
+ doLogging();
48
+ stderrSpy.callCount.should.equal(1);
49
+ stderrSpy.args[0][0].should.include(errorMsg);
50
+ stdoutSpy.callCount.should.equal(2);
51
+ stdoutSpy.args[0][0].should.include(warnMsg);
52
+ stdoutSpy.args[1][0].should.include(debugMsg);
53
+ });
54
+ it('should send error and info when loglevel is info', async function () {
55
+ await (0, _logsink.init)({
56
+ loglevel: 'info'
57
+ });
58
+ doLogging();
59
+ stderrSpy.callCount.should.equal(1);
60
+ stderrSpy.args[0][0].should.include(errorMsg);
61
+ stdoutSpy.callCount.should.equal(1);
62
+ stdoutSpy.args[0][0].should.include(warnMsg);
63
+ });
64
+ it('should send error when loglevel is error', async function () {
65
+ await (0, _logsink.init)({
66
+ loglevel: 'error'
67
+ });
68
+ doLogging();
69
+ stderrSpy.callCount.should.equal(1);
70
+ stderrSpy.args[0][0].should.include(errorMsg);
71
+ stdoutSpy.callCount.should.equal(0);
72
+ });
73
+ });require('source-map-support').install();
74
+
75
+
76
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvbG9nZ2VyLXNwZWNzLmpzIl0sIm5hbWVzIjpbImZvcmNlTG9ncyIsInByb2Nlc3MiLCJlbnYiLCJfRk9SQ0VfTE9HUyIsImxvZyIsImxvZ2dlciIsImdldExvZ2dlciIsImRlc2NyaWJlIiwic3RkZXJyU3B5Iiwic3Rkb3V0U3B5IiwiYmVmb3JlRWFjaCIsInNpbm9uIiwic3B5Iiwic3RkZXJyIiwic3Rkb3V0IiwiYWZ0ZXJFYWNoIiwicmVzdG9yZSIsImFmdGVyIiwiZXJyb3JNc2ciLCJ3YXJuTXNnIiwiZGVidWdNc2ciLCJkb0xvZ2dpbmciLCJlcnJvciIsIndhcm4iLCJkZWJ1ZyIsIml0IiwibG9nbGV2ZWwiLCJjYWxsQ291bnQiLCJzaG91bGQiLCJlcXVhbCIsImFyZ3MiLCJpbmNsdWRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQTs7QUFDQTs7QUFDQTs7QUFJQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxXQUE5QjtBQUNBRixPQUFPLENBQUNDLEdBQVIsQ0FBWUMsV0FBWixHQUEwQixDQUExQjs7QUFDQSxNQUFNQyxHQUFHLEdBQUdDLGdCQUFPQyxTQUFQLENBQWlCLFFBQWpCLENBQVo7O0FBRUFDLFFBQVEsQ0FBQyxTQUFELEVBQVksWUFBWTtBQUM5QixNQUFJQyxTQUFKO0FBQ0EsTUFBSUMsU0FBSjtBQUNBQyxFQUFBQSxVQUFVLENBQUMsWUFBWTtBQUNyQkYsSUFBQUEsU0FBUyxHQUFHRyxlQUFNQyxHQUFOLENBQVVYLE9BQU8sQ0FBQ1ksTUFBbEIsRUFBMEIsT0FBMUIsQ0FBWjtBQUNBSixJQUFBQSxTQUFTLEdBQUdFLGVBQU1DLEdBQU4sQ0FBVVgsT0FBTyxDQUFDYSxNQUFsQixFQUEwQixPQUExQixDQUFaO0FBQ0E7QUFDRCxHQUpTLENBQVY7QUFLQUMsRUFBQUEsU0FBUyxDQUFDLFlBQVk7QUFDcEJQLElBQUFBLFNBQVMsQ0FBQ1EsT0FBVjtBQUNBUCxJQUFBQSxTQUFTLENBQUNPLE9BQVY7QUFDRCxHQUhRLENBQVQ7QUFJQUMsRUFBQUEsS0FBSyxDQUFDLFlBQVk7QUFDaEJoQixJQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsV0FBWixHQUEwQkgsU0FBMUI7QUFDRCxHQUZJLENBQUw7QUFJQSxRQUFNa0IsUUFBUSxHQUFHLFlBQWpCO0FBQ0EsUUFBTUMsT0FBTyxHQUFHLGNBQWhCO0FBQ0EsUUFBTUMsUUFBUSxHQUFHLFlBQWpCOztBQUVBLFdBQVNDLFNBQVQsR0FBc0I7QUFDcEJqQixJQUFBQSxHQUFHLENBQUNrQixLQUFKLENBQVVKLFFBQVY7QUFDQWQsSUFBQUEsR0FBRyxDQUFDbUIsSUFBSixDQUFTSixPQUFUO0FBQ0FmLElBQUFBLEdBQUcsQ0FBQ29CLEtBQUosQ0FBVUosUUFBVjtBQUNEOztBQUVESyxFQUFBQSxFQUFFLENBQUMsMERBQUQsRUFBNkQsa0JBQWtCO0FBQy9FLFVBQU0sbUJBQVk7QUFBQ0MsTUFBQUEsUUFBUSxFQUFFO0FBQVgsS0FBWixDQUFOO0FBRUFMLElBQUFBLFNBQVM7QUFFVGIsSUFBQUEsU0FBUyxDQUFDbUIsU0FBVixDQUFvQkMsTUFBcEIsQ0FBMkJDLEtBQTNCLENBQWlDLENBQWpDO0FBQ0FyQixJQUFBQSxTQUFTLENBQUNzQixJQUFWLENBQWUsQ0FBZixFQUFrQixDQUFsQixFQUFxQkYsTUFBckIsQ0FBNEJHLE9BQTVCLENBQW9DYixRQUFwQztBQUVBVCxJQUFBQSxTQUFTLENBQUNrQixTQUFWLENBQW9CQyxNQUFwQixDQUEyQkMsS0FBM0IsQ0FBaUMsQ0FBakM7QUFDQXBCLElBQUFBLFNBQVMsQ0FBQ3FCLElBQVYsQ0FBZSxDQUFmLEVBQWtCLENBQWxCLEVBQXFCRixNQUFyQixDQUE0QkcsT0FBNUIsQ0FBb0NaLE9BQXBDO0FBQ0FWLElBQUFBLFNBQVMsQ0FBQ3FCLElBQVYsQ0FBZSxDQUFmLEVBQWtCLENBQWxCLEVBQXFCRixNQUFyQixDQUE0QkcsT0FBNUIsQ0FBb0NYLFFBQXBDO0FBQ0QsR0FYQyxDQUFGO0FBWUFLLEVBQUFBLEVBQUUsQ0FBQyxrREFBRCxFQUFxRCxrQkFBa0I7QUFDdkUsVUFBTSxtQkFBWTtBQUFDQyxNQUFBQSxRQUFRLEVBQUU7QUFBWCxLQUFaLENBQU47QUFFQUwsSUFBQUEsU0FBUztBQUVUYixJQUFBQSxTQUFTLENBQUNtQixTQUFWLENBQW9CQyxNQUFwQixDQUEyQkMsS0FBM0IsQ0FBaUMsQ0FBakM7QUFDQXJCLElBQUFBLFNBQVMsQ0FBQ3NCLElBQVYsQ0FBZSxDQUFmLEVBQWtCLENBQWxCLEVBQXFCRixNQUFyQixDQUE0QkcsT0FBNUIsQ0FBb0NiLFFBQXBDO0FBRUFULElBQUFBLFNBQVMsQ0FBQ2tCLFNBQVYsQ0FBb0JDLE1BQXBCLENBQTJCQyxLQUEzQixDQUFpQyxDQUFqQztBQUNBcEIsSUFBQUEsU0FBUyxDQUFDcUIsSUFBVixDQUFlLENBQWYsRUFBa0IsQ0FBbEIsRUFBcUJGLE1BQXJCLENBQTRCRyxPQUE1QixDQUFvQ1osT0FBcEM7QUFDRCxHQVZDLENBQUY7QUFXQU0sRUFBQUEsRUFBRSxDQUFDLDBDQUFELEVBQTZDLGtCQUFrQjtBQUMvRCxVQUFNLG1CQUFZO0FBQUNDLE1BQUFBLFFBQVEsRUFBRTtBQUFYLEtBQVosQ0FBTjtBQUVBTCxJQUFBQSxTQUFTO0FBRVRiLElBQUFBLFNBQVMsQ0FBQ21CLFNBQVYsQ0FBb0JDLE1BQXBCLENBQTJCQyxLQUEzQixDQUFpQyxDQUFqQztBQUNBckIsSUFBQUEsU0FBUyxDQUFDc0IsSUFBVixDQUFlLENBQWYsRUFBa0IsQ0FBbEIsRUFBcUJGLE1BQXJCLENBQTRCRyxPQUE1QixDQUFvQ2IsUUFBcEM7QUFFQVQsSUFBQUEsU0FBUyxDQUFDa0IsU0FBVixDQUFvQkMsTUFBcEIsQ0FBMkJDLEtBQTNCLENBQWlDLENBQWpDO0FBQ0QsR0FUQyxDQUFGO0FBVUQsQ0EzRE8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRyYW5zcGlsZTptb2NoYVxuXG5pbXBvcnQgeyBpbml0IGFzIGxvZ3NpbmtJbml0LCBjbGVhciBhcyBsb2dzaW5rQ2xlYXIgfSBmcm9tICcuLi9saWIvbG9nc2luayc7XG5pbXBvcnQgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcblxuXG4vLyB0ZW1wb3JhcmlseSB0dXJuIG9uIGxvZ2dpbmcgdG8gc3RkaW8sIHNvIHdlIGNhbiBjYXRjaCBhbmQgcXVlcnlcbmNvbnN0IGZvcmNlTG9ncyA9IHByb2Nlc3MuZW52Ll9GT1JDRV9MT0dTO1xucHJvY2Vzcy5lbnYuX0ZPUkNFX0xPR1MgPSAxO1xuY29uc3QgbG9nID0gbG9nZ2VyLmdldExvZ2dlcignQXBwaXVtJyk7XG5cbmRlc2NyaWJlKCdsb2dnaW5nJywgZnVuY3Rpb24gKCkge1xuICBsZXQgc3RkZXJyU3B5O1xuICBsZXQgc3Rkb3V0U3B5O1xuICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBzdGRlcnJTcHkgPSBzaW5vbi5zcHkocHJvY2Vzcy5zdGRlcnIsICd3cml0ZScpO1xuICAgIHN0ZG91dFNweSA9IHNpbm9uLnNweShwcm9jZXNzLnN0ZG91dCwgJ3dyaXRlJyk7XG4gICAgbG9nc2lua0NsZWFyKCk7XG4gIH0pO1xuICBhZnRlckVhY2goZnVuY3Rpb24gKCkge1xuICAgIHN0ZGVyclNweS5yZXN0b3JlKCk7XG4gICAgc3Rkb3V0U3B5LnJlc3RvcmUoKTtcbiAgfSk7XG4gIGFmdGVyKGZ1bmN0aW9uICgpIHtcbiAgICBwcm9jZXNzLmVudi5fRk9SQ0VfTE9HUyA9IGZvcmNlTG9ncztcbiAgfSk7XG5cbiAgY29uc3QgZXJyb3JNc2cgPSAnc29tZSBlcnJvcic7XG4gIGNvbnN0IHdhcm5Nc2cgPSAnc29tZSB3YXJuaW5nJztcbiAgY29uc3QgZGVidWdNc2cgPSAnc29tZSBkZWJ1Zyc7XG5cbiAgZnVuY3Rpb24gZG9Mb2dnaW5nICgpIHtcbiAgICBsb2cuZXJyb3IoZXJyb3JNc2cpO1xuICAgIGxvZy53YXJuKHdhcm5Nc2cpO1xuICAgIGxvZy5kZWJ1ZyhkZWJ1Z01zZyk7XG4gIH1cblxuICBpdCgnc2hvdWxkIHNlbmQgZXJyb3IsIGluZm8gYW5kIGRlYnVnIHdoZW4gbG9nbGV2ZWwgaXMgZGVidWcnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgYXdhaXQgbG9nc2lua0luaXQoe2xvZ2xldmVsOiAnZGVidWcnfSk7XG5cbiAgICBkb0xvZ2dpbmcoKTtcblxuICAgIHN0ZGVyclNweS5jYWxsQ291bnQuc2hvdWxkLmVxdWFsKDEpO1xuICAgIHN0ZGVyclNweS5hcmdzWzBdWzBdLnNob3VsZC5pbmNsdWRlKGVycm9yTXNnKTtcblxuICAgIHN0ZG91dFNweS5jYWxsQ291bnQuc2hvdWxkLmVxdWFsKDIpO1xuICAgIHN0ZG91dFNweS5hcmdzWzBdWzBdLnNob3VsZC5pbmNsdWRlKHdhcm5Nc2cpO1xuICAgIHN0ZG91dFNweS5hcmdzWzFdWzBdLnNob3VsZC5pbmNsdWRlKGRlYnVnTXNnKTtcbiAgfSk7XG4gIGl0KCdzaG91bGQgc2VuZCBlcnJvciBhbmQgaW5mbyB3aGVuIGxvZ2xldmVsIGlzIGluZm8nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgYXdhaXQgbG9nc2lua0luaXQoe2xvZ2xldmVsOiAnaW5mbyd9KTtcblxuICAgIGRvTG9nZ2luZygpO1xuXG4gICAgc3RkZXJyU3B5LmNhbGxDb3VudC5zaG91bGQuZXF1YWwoMSk7XG4gICAgc3RkZXJyU3B5LmFyZ3NbMF1bMF0uc2hvdWxkLmluY2x1ZGUoZXJyb3JNc2cpO1xuXG4gICAgc3Rkb3V0U3B5LmNhbGxDb3VudC5zaG91bGQuZXF1YWwoMSk7XG4gICAgc3Rkb3V0U3B5LmFyZ3NbMF1bMF0uc2hvdWxkLmluY2x1ZGUod2Fybk1zZyk7XG4gIH0pO1xuICBpdCgnc2hvdWxkIHNlbmQgZXJyb3Igd2hlbiBsb2dsZXZlbCBpcyBlcnJvcicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBhd2FpdCBsb2dzaW5rSW5pdCh7bG9nbGV2ZWw6ICdlcnJvcid9KTtcblxuICAgIGRvTG9nZ2luZygpO1xuXG4gICAgc3RkZXJyU3B5LmNhbGxDb3VudC5zaG91bGQuZXF1YWwoMSk7XG4gICAgc3RkZXJyU3B5LmFyZ3NbMF1bMF0uc2hvdWxkLmluY2x1ZGUoZXJyb3JNc2cpO1xuXG4gICAgc3Rkb3V0U3B5LmNhbGxDb3VudC5zaG91bGQuZXF1YWwoMCk7XG4gIH0pO1xufSk7XG4iXSwiZmlsZSI6InRlc3QvbG9nZ2VyLXNwZWNzLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ require("source-map-support/register");
6
+
7
+ var _npm = _interopRequireDefault(require("../lib/cli/npm"));
8
+
9
+ describe('getLatestSafeUpgradeFromVersions', function () {
10
+ const versions1 = ['0.1.0', '0.1.1', '0.2.0', '0.2.5', '1.0.0', '1.0.1', '1.1.5', '1.2.7', '2.0.0', '1.2.8-beta', '1.2.9-alpha', '1.3.0-rc', '2.0.1-beta'];
11
+ const npm = new _npm.default(null);
12
+ it('should get the latest minor upgrade in a list of versions', function () {
13
+ npm.getLatestSafeUpgradeFromVersions('0.1.0', versions1).should.eql('0.2.5');
14
+ npm.getLatestSafeUpgradeFromVersions('1.0.0', versions1).should.eql('1.2.7');
15
+ npm.getLatestSafeUpgradeFromVersions('0.2.0', versions1).should.eql('0.2.5');
16
+ });
17
+ });require('source-map-support').install();
18
+
19
+
20
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvbnBtLXNwZWNzLmpzIl0sIm5hbWVzIjpbImRlc2NyaWJlIiwidmVyc2lvbnMxIiwibnBtIiwiTlBNIiwiaXQiLCJnZXRMYXRlc3RTYWZlVXBncmFkZUZyb21WZXJzaW9ucyIsInNob3VsZCIsImVxbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUE7O0FBRUFBLFFBQVEsQ0FBQyxrQ0FBRCxFQUFxQyxZQUFZO0FBQ3ZELFFBQU1DLFNBQVMsR0FBRyxDQUFDLE9BQUQsRUFBVSxPQUFWLEVBQW1CLE9BQW5CLEVBQTRCLE9BQTVCLEVBQXFDLE9BQXJDLEVBQThDLE9BQTlDLEVBQXVELE9BQXZELEVBQWdFLE9BQWhFLEVBQ2hCLE9BRGdCLEVBQ1AsWUFETyxFQUNPLGFBRFAsRUFDc0IsVUFEdEIsRUFDa0MsWUFEbEMsQ0FBbEI7QUFFQSxRQUFNQyxHQUFHLEdBQUcsSUFBSUMsWUFBSixDQUFRLElBQVIsQ0FBWjtBQUNBQyxFQUFBQSxFQUFFLENBQUMsMkRBQUQsRUFBOEQsWUFBWTtBQUMxRUYsSUFBQUEsR0FBRyxDQUFDRyxnQ0FBSixDQUFxQyxPQUFyQyxFQUE4Q0osU0FBOUMsRUFBeURLLE1BQXpELENBQWdFQyxHQUFoRSxDQUFvRSxPQUFwRTtBQUNBTCxJQUFBQSxHQUFHLENBQUNHLGdDQUFKLENBQXFDLE9BQXJDLEVBQThDSixTQUE5QyxFQUF5REssTUFBekQsQ0FBZ0VDLEdBQWhFLENBQW9FLE9BQXBFO0FBQ0FMLElBQUFBLEdBQUcsQ0FBQ0csZ0NBQUosQ0FBcUMsT0FBckMsRUFBOENKLFNBQTlDLEVBQXlESyxNQUF6RCxDQUFnRUMsR0FBaEUsQ0FBb0UsT0FBcEU7QUFDRCxHQUpDLENBQUY7QUFLRCxDQVRPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0cmFuc3BpbGU6bW9jaGFcblxuaW1wb3J0IE5QTSBmcm9tICcuLi9saWIvY2xpL25wbSc7XG5cbmRlc2NyaWJlKCdnZXRMYXRlc3RTYWZlVXBncmFkZUZyb21WZXJzaW9ucycsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgdmVyc2lvbnMxID0gWycwLjEuMCcsICcwLjEuMScsICcwLjIuMCcsICcwLjIuNScsICcxLjAuMCcsICcxLjAuMScsICcxLjEuNScsICcxLjIuNycsXG4gICAgJzIuMC4wJywgJzEuMi44LWJldGEnLCAnMS4yLjktYWxwaGEnLCAnMS4zLjAtcmMnLCAnMi4wLjEtYmV0YSddO1xuICBjb25zdCBucG0gPSBuZXcgTlBNKG51bGwpO1xuICBpdCgnc2hvdWxkIGdldCB0aGUgbGF0ZXN0IG1pbm9yIHVwZ3JhZGUgaW4gYSBsaXN0IG9mIHZlcnNpb25zJywgZnVuY3Rpb24gKCkge1xuICAgIG5wbS5nZXRMYXRlc3RTYWZlVXBncmFkZUZyb21WZXJzaW9ucygnMC4xLjAnLCB2ZXJzaW9uczEpLnNob3VsZC5lcWwoJzAuMi41Jyk7XG4gICAgbnBtLmdldExhdGVzdFNhZmVVcGdyYWRlRnJvbVZlcnNpb25zKCcxLjAuMCcsIHZlcnNpb25zMSkuc2hvdWxkLmVxbCgnMS4yLjcnKTtcbiAgICBucG0uZ2V0TGF0ZXN0U2FmZVVwZ3JhZGVGcm9tVmVyc2lvbnMoJzAuMi4wJywgdmVyc2lvbnMxKS5zaG91bGQuZXFsKCcwLjIuNScpO1xuICB9KTtcbn0pO1xuIl0sImZpbGUiOiJ0ZXN0L25wbS1zcGVjcy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9