testit-js-commons 2.1.3 → 2.1.5

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.
@@ -20,6 +20,19 @@ export interface EnvironmentOptions {
20
20
  TMS_ADAPTER_MODE: AdapterMode;
21
21
  TMS_CONFIG_FILE: string;
22
22
  TMS_AUTOMATIC_CREATION_TEST_CASES: boolean;
23
+ TMS_CERT_VALIDATION: boolean;
24
+ }
25
+ export interface ProcessEnvOptions {
26
+ TMS_URL?: string;
27
+ TMS_PRIVATE_TOKEN?: string;
28
+ TMS_PROJECT_ID?: string;
29
+ TMS_CONFIGURATION_ID?: string;
30
+ TMS_TEST_RUN_ID?: string;
31
+ TMS_TEST_RUN_NAME?: string;
32
+ TMS_ADAPTER_MODE?: AdapterMode;
33
+ TMS_CONFIG_FILE?: string;
34
+ TMS_AUTOMATIC_CREATION_TEST_CASES?: boolean;
35
+ TMS_CERT_VALIDATION?: boolean;
23
36
  }
24
37
  export interface AdapterConfig {
25
38
  url: string;
@@ -30,4 +43,5 @@ export interface AdapterConfig {
30
43
  testRunName?: string;
31
44
  adapterMode?: AdapterMode;
32
45
  automaticCreationTestCases?: boolean;
46
+ certValidation?: boolean;
33
47
  }
@@ -55,7 +55,14 @@ var Utils;
55
55
  }
56
56
  Utils.generateFileName = generateFileName;
57
57
  function readFile(path) {
58
- return fs_1.default.readFileSync(path).toString();
58
+ let fileContents;
59
+ try {
60
+ fileContents = fs_1.default.readFileSync(path).toString();
61
+ }
62
+ catch (err) {
63
+ fileContents = "";
64
+ }
65
+ return fileContents;
59
66
  }
60
67
  Utils.readFile = readFile;
61
68
  function writeFile(path, content) {
@@ -3,6 +3,9 @@ import { IConfigComposer } from "./config.type";
3
3
  export declare const DEFAULT_CONFIG_FILE = "tms.config.json";
4
4
  export declare class ConfigComposer implements IConfigComposer {
5
5
  compose(base?: Partial<AdapterConfig>): AdapterConfig;
6
- merge(file: AdapterConfig, env?: Partial<EnvironmentOptions>, base?: Partial<AdapterConfig>): AdapterConfig;
7
- private resolveProperty;
6
+ mergeAll(file: AdapterConfig, env?: Partial<EnvironmentOptions>, base?: Partial<AdapterConfig>): AdapterConfig;
7
+ merge(env?: Partial<EnvironmentOptions>, base?: Partial<AdapterConfig>): AdapterConfig;
8
+ mergeEnv(dotEnv?: Partial<EnvironmentOptions>, processEnv?: Partial<EnvironmentOptions>): Partial<EnvironmentOptions>;
9
+ private resolveAllProperties;
10
+ private resolveProperties;
8
11
  }
@@ -29,34 +29,65 @@ const common_1 = require("../../common");
29
29
  exports.DEFAULT_CONFIG_FILE = "tms.config.json";
30
30
  class ConfigComposer {
31
31
  compose(base) {
32
- var _a;
33
- const environment = parseEnvConfig();
34
- const content = common_1.Utils.readFile((_a = environment === null || environment === void 0 ? void 0 : environment.TMS_CONFIG_FILE) !== null && _a !== void 0 ? _a : exports.DEFAULT_CONFIG_FILE);
35
- const config = JSON.parse(content);
36
- if (config.privateToken) {
37
- console.warn(`
32
+ var _a, _b;
33
+ const processEnvironment = parseProcessEnvConfig();
34
+ const dotEnvironment = parseDotEnvConfig();
35
+ const environment = this.mergeEnv(dotEnvironment, processEnvironment);
36
+ const content = common_1.Utils.readFile((_b = (_a = dotEnvironment === null || dotEnvironment === void 0 ? void 0 : dotEnvironment.TMS_CONFIG_FILE) !== null && _a !== void 0 ? _a : processEnvironment.TMS_CONFIG_FILE) !== null && _b !== void 0 ? _b : exports.DEFAULT_CONFIG_FILE);
37
+ if (content !== "") {
38
+ const config = JSON.parse(content);
39
+ if (config.privateToken) {
40
+ console.warn(`
38
41
  The configuration file specifies a private token. It is not safe.
39
- Use TMS_PRIVATE_TOKEN environment variable
40
- `);
42
+ Use TMS_PRIVATE_TOKEN environment variable`);
43
+ }
44
+ return this.mergeAll(config, environment, base);
41
45
  }
42
- return this.merge(config, environment, base);
46
+ return this.merge(environment, base);
43
47
  }
44
- merge(file, env, base) {
48
+ mergeAll(file, env, base) {
49
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
50
+ return {
51
+ url: this.resolveAllProperties(file.url, env === null || env === void 0 ? void 0 : env.TMS_URL, base === null || base === void 0 ? void 0 : base.url),
52
+ projectId: this.resolveAllProperties(file.projectId, env === null || env === void 0 ? void 0 : env.TMS_PROJECT_ID, base === null || base === void 0 ? void 0 : base.projectId),
53
+ testRunId: this.resolveAllProperties(file.testRunId, env === null || env === void 0 ? void 0 : env.TMS_TEST_RUN_ID, base === null || base === void 0 ? void 0 : base.testRunId),
54
+ testRunName: this.resolveAllProperties(file.testRunName, env === null || env === void 0 ? void 0 : env.TMS_TEST_RUN_NAME, base === null || base === void 0 ? void 0 : base.testRunName) == "" ? undefined : this.resolveAllProperties(file.testRunName, env === null || env === void 0 ? void 0 : env.TMS_TEST_RUN_NAME, base === null || base === void 0 ? void 0 : base.testRunName),
55
+ privateToken: this.resolveAllProperties(file.privateToken, env === null || env === void 0 ? void 0 : env.TMS_PRIVATE_TOKEN, base === null || base === void 0 ? void 0 : base.privateToken),
56
+ adapterMode: (_c = (_b = (_a = base === null || base === void 0 ? void 0 : base.adapterMode) !== null && _a !== void 0 ? _a : env === null || env === void 0 ? void 0 : env.TMS_ADAPTER_MODE) !== null && _b !== void 0 ? _b : file === null || file === void 0 ? void 0 : file.adapterMode) !== null && _c !== void 0 ? _c : 0,
57
+ configurationId: this.resolveAllProperties(file.configurationId, env === null || env === void 0 ? void 0 : env.TMS_CONFIGURATION_ID, base === null || base === void 0 ? void 0 : base.configurationId),
58
+ automaticCreationTestCases: (_f = (_e = (_d = file.automaticCreationTestCases) !== null && _d !== void 0 ? _d : env === null || env === void 0 ? void 0 : env.TMS_AUTOMATIC_CREATION_TEST_CASES) !== null && _e !== void 0 ? _e : base === null || base === void 0 ? void 0 : base.automaticCreationTestCases) !== null && _f !== void 0 ? _f : false,
59
+ certValidation: (_j = (_h = (_g = file.certValidation) !== null && _g !== void 0 ? _g : env === null || env === void 0 ? void 0 : env.TMS_CERT_VALIDATION) !== null && _h !== void 0 ? _h : base === null || base === void 0 ? void 0 : base.certValidation) !== null && _j !== void 0 ? _j : true
60
+ };
61
+ }
62
+ merge(env, base) {
45
63
  var _a, _b, _c, _d, _e, _f;
46
64
  return {
47
- url: this.resolveProperty(file.url, env === null || env === void 0 ? void 0 : env.TMS_URL, base === null || base === void 0 ? void 0 : base.url),
48
- projectId: this.resolveProperty(file.projectId, env === null || env === void 0 ? void 0 : env.TMS_PROJECT_ID, base === null || base === void 0 ? void 0 : base.projectId),
49
- testRunId: this.resolveProperty(file.testRunId, env === null || env === void 0 ? void 0 : env.TMS_TEST_RUN_ID, base === null || base === void 0 ? void 0 : base.testRunId),
50
- testRunName: this.resolveProperty(file.testRunName, env === null || env === void 0 ? void 0 : env.TMS_TEST_RUN_NAME, base === null || base === void 0 ? void 0 : base.testRunName) == ""
51
- ? undefined
52
- : this.resolveProperty(file.testRunName, env === null || env === void 0 ? void 0 : env.TMS_TEST_RUN_NAME, base === null || base === void 0 ? void 0 : base.testRunName),
53
- privateToken: this.resolveProperty(file.privateToken, env === null || env === void 0 ? void 0 : env.TMS_PRIVATE_TOKEN, base === null || base === void 0 ? void 0 : base.privateToken),
54
- adapterMode: (_c = (_b = (_a = base === null || base === void 0 ? void 0 : base.adapterMode) !== null && _a !== void 0 ? _a : env === null || env === void 0 ? void 0 : env.TMS_ADAPTER_MODE) !== null && _b !== void 0 ? _b : file.adapterMode) !== null && _c !== void 0 ? _c : 0,
55
- configurationId: this.resolveProperty(file.configurationId, env === null || env === void 0 ? void 0 : env.TMS_CONFIGURATION_ID, base === null || base === void 0 ? void 0 : base.configurationId),
56
- automaticCreationTestCases: (_f = (_e = (_d = base === null || base === void 0 ? void 0 : base.automaticCreationTestCases) !== null && _d !== void 0 ? _d : env === null || env === void 0 ? void 0 : env.TMS_AUTOMATIC_CREATION_TEST_CASES) !== null && _e !== void 0 ? _e : file.automaticCreationTestCases) !== null && _f !== void 0 ? _f : false,
65
+ url: this.resolveProperties(env === null || env === void 0 ? void 0 : env.TMS_URL, base === null || base === void 0 ? void 0 : base.url),
66
+ projectId: this.resolveProperties(env === null || env === void 0 ? void 0 : env.TMS_PROJECT_ID, base === null || base === void 0 ? void 0 : base.projectId),
67
+ testRunId: this.resolveProperties(env === null || env === void 0 ? void 0 : env.TMS_TEST_RUN_ID, base === null || base === void 0 ? void 0 : base.testRunId),
68
+ testRunName: this.resolveProperties(env === null || env === void 0 ? void 0 : env.TMS_TEST_RUN_NAME, base === null || base === void 0 ? void 0 : base.testRunName) == "" ? undefined : this.resolveProperties(env === null || env === void 0 ? void 0 : env.TMS_TEST_RUN_NAME, base === null || base === void 0 ? void 0 : base.testRunName),
69
+ privateToken: this.resolveProperties(env === null || env === void 0 ? void 0 : env.TMS_PRIVATE_TOKEN, base === null || base === void 0 ? void 0 : base.privateToken),
70
+ adapterMode: (_b = (_a = base === null || base === void 0 ? void 0 : base.adapterMode) !== null && _a !== void 0 ? _a : env === null || env === void 0 ? void 0 : env.TMS_ADAPTER_MODE) !== null && _b !== void 0 ? _b : 0,
71
+ configurationId: this.resolveProperties(env === null || env === void 0 ? void 0 : env.TMS_CONFIGURATION_ID, base === null || base === void 0 ? void 0 : base.configurationId),
72
+ automaticCreationTestCases: (_d = (_c = env === null || env === void 0 ? void 0 : env.TMS_AUTOMATIC_CREATION_TEST_CASES) !== null && _c !== void 0 ? _c : base === null || base === void 0 ? void 0 : base.automaticCreationTestCases) !== null && _d !== void 0 ? _d : false,
73
+ certValidation: (_f = (_e = env === null || env === void 0 ? void 0 : env.TMS_CERT_VALIDATION) !== null && _e !== void 0 ? _e : base === null || base === void 0 ? void 0 : base.certValidation) !== null && _f !== void 0 ? _f : true
74
+ };
75
+ }
76
+ mergeEnv(dotEnv, processEnv) {
77
+ var _a, _b, _c;
78
+ return {
79
+ TMS_URL: this.resolveProperties(dotEnv === null || dotEnv === void 0 ? void 0 : dotEnv.TMS_URL, processEnv === null || processEnv === void 0 ? void 0 : processEnv.TMS_URL),
80
+ TMS_PROJECT_ID: this.resolveProperties(dotEnv === null || dotEnv === void 0 ? void 0 : dotEnv.TMS_PROJECT_ID, processEnv === null || processEnv === void 0 ? void 0 : processEnv.TMS_PROJECT_ID),
81
+ TMS_TEST_RUN_ID: this.resolveProperties(dotEnv === null || dotEnv === void 0 ? void 0 : dotEnv.TMS_TEST_RUN_ID, processEnv === null || processEnv === void 0 ? void 0 : processEnv.TMS_TEST_RUN_ID),
82
+ TMS_TEST_RUN_NAME: this.resolveProperties(dotEnv === null || dotEnv === void 0 ? void 0 : dotEnv.TMS_TEST_RUN_NAME, processEnv === null || processEnv === void 0 ? void 0 : processEnv.TMS_TEST_RUN_NAME),
83
+ TMS_PRIVATE_TOKEN: this.resolveProperties(dotEnv === null || dotEnv === void 0 ? void 0 : dotEnv.TMS_PRIVATE_TOKEN, processEnv === null || processEnv === void 0 ? void 0 : processEnv.TMS_PRIVATE_TOKEN),
84
+ TMS_ADAPTER_MODE: (_a = dotEnv === null || dotEnv === void 0 ? void 0 : dotEnv.TMS_ADAPTER_MODE) !== null && _a !== void 0 ? _a : processEnv === null || processEnv === void 0 ? void 0 : processEnv.TMS_ADAPTER_MODE,
85
+ TMS_CONFIGURATION_ID: this.resolveProperties(dotEnv === null || dotEnv === void 0 ? void 0 : dotEnv.TMS_CONFIGURATION_ID, processEnv === null || processEnv === void 0 ? void 0 : processEnv.TMS_CONFIGURATION_ID),
86
+ TMS_AUTOMATIC_CREATION_TEST_CASES: (_b = dotEnv === null || dotEnv === void 0 ? void 0 : dotEnv.TMS_AUTOMATIC_CREATION_TEST_CASES) !== null && _b !== void 0 ? _b : processEnv === null || processEnv === void 0 ? void 0 : processEnv.TMS_AUTOMATIC_CREATION_TEST_CASES,
87
+ TMS_CERT_VALIDATION: (_c = dotEnv === null || dotEnv === void 0 ? void 0 : dotEnv.TMS_CERT_VALIDATION) !== null && _c !== void 0 ? _c : processEnv === null || processEnv === void 0 ? void 0 : processEnv.TMS_CERT_VALIDATION
57
88
  };
58
89
  }
59
- resolveProperty(file, env, base) {
90
+ resolveAllProperties(file, env, base) {
60
91
  if (base && base.trim()) {
61
92
  return base;
62
93
  }
@@ -70,8 +101,48 @@ class ConfigComposer {
70
101
  return "";
71
102
  }
72
103
  }
104
+ resolveProperties(env, base) {
105
+ if (base && base.trim()) {
106
+ return base;
107
+ }
108
+ else if (env && env.trim()) {
109
+ return env;
110
+ }
111
+ else {
112
+ return "";
113
+ }
114
+ }
73
115
  }
74
116
  exports.ConfigComposer = ConfigComposer;
75
- function parseEnvConfig() {
117
+ function parseDotEnvConfig() {
76
118
  return dotenv.config({ path: ".env" }).parsed;
77
119
  }
120
+ function parseProcessEnvConfig() {
121
+ return {
122
+ TMS_URL: process.env.TMS_URL,
123
+ TMS_PRIVATE_TOKEN: process.env.TMS_PRIVATE_TOKEN,
124
+ TMS_PROJECT_ID: process.env.TMS_PROJECT_ID,
125
+ TMS_CONFIGURATION_ID: process.env.TMS_CONFIGURATION_ID,
126
+ TMS_TEST_RUN_ID: process.env.TMS_TEST_RUN_ID,
127
+ TMS_TEST_RUN_NAME: process.env.TMS_TEST_RUN_NAME,
128
+ TMS_ADAPTER_MODE: process.env.TMS_ADAPTER_MODE ? stringToAdapterMode(process.env.TMS_ADAPTER_MODE) : undefined,
129
+ TMS_CERT_VALIDATION: process.env.TMS_CERT_VALIDATION ? stringToBoolean(process.env.TMS_CERT_VALIDATION) : undefined,
130
+ TMS_AUTOMATIC_CREATION_TEST_CASES: process.env.TMS_AUTOMATIC_CREATION_TEST_CASES ? stringToBoolean(process.env.TMS_AUTOMATIC_CREATION_TEST_CASES) : undefined,
131
+ TMS_CONFIG_FILE: process.env.TMS_PRIVATE_TOKEN,
132
+ };
133
+ }
134
+ function stringToAdapterMode(str) {
135
+ switch (str) {
136
+ case "2":
137
+ return 2;
138
+ case "1":
139
+ return 1;
140
+ case "0":
141
+ return 0;
142
+ default:
143
+ return undefined;
144
+ }
145
+ }
146
+ function stringToBoolean(str) {
147
+ return ((str === null || str === void 0 ? void 0 : str.toLowerCase()) === "true") ? true : false;
148
+ }
@@ -1,5 +1,7 @@
1
1
  import { AdapterConfig, EnvironmentOptions } from "../../common";
2
2
  export interface IConfigComposer {
3
3
  compose(base?: Partial<AdapterConfig>): AdapterConfig;
4
- merge(file: AdapterConfig, env?: Partial<EnvironmentOptions>, base?: Partial<AdapterConfig>): AdapterConfig;
4
+ mergeAll(file: AdapterConfig, env?: Partial<EnvironmentOptions>, base?: Partial<AdapterConfig>): AdapterConfig;
5
+ mergeEnv(dotEnv?: Partial<EnvironmentOptions>, processEnv?: Partial<EnvironmentOptions>): Partial<EnvironmentOptions>;
6
+ merge(env?: Partial<EnvironmentOptions>, base?: Partial<AdapterConfig>): AdapterConfig;
5
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "testit-js-commons",
3
- "version": "2.1.3",
3
+ "version": "2.1.5",
4
4
  "description": "JavaScript commons for Test IT",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",