react-native-config-ultimate 0.1.0 → 0.2.1
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/README.md +476 -121
- package/android/build.gradle +1 -1
- package/android/rncu.gradle +19 -15
- package/android/src/main/java/com/reactnativeultimateconfig/UltimateConfigHelper.java +87 -0
- package/android/src/main/java/com/reactnativeultimateconfig/UltimateConfigPackage.java +1 -1
- package/android/src/newarch/java/com/reactnativeultimateconfig/UltimateConfigModule.java +3 -50
- package/android/src/oldarch/java/com/reactnativeultimateconfig/UltimateConfigModule.java +3 -54
- package/ios/UltimateConfig.mm +2 -1
- package/lib/commonjs/cli.js +11 -2
- package/lib/commonjs/cli.js.map +1 -1
- package/lib/commonjs/flatten.js +6 -1
- package/lib/commonjs/flatten.js.map +1 -1
- package/lib/commonjs/load-env.js +14 -0
- package/lib/commonjs/load-env.js.map +1 -1
- package/lib/commonjs/main.js +5 -1
- package/lib/commonjs/main.js.map +1 -1
- package/lib/commonjs/render-env.js +1 -1
- package/lib/commonjs/render-env.js.map +1 -1
- package/lib/commonjs/resolve-env.js +5 -1
- package/lib/commonjs/resolve-env.js.map +1 -1
- package/lib/commonjs/templates/override.js.handlebars +1 -10
- package/lib/commonjs/validate-env.js +20 -7
- package/lib/commonjs/validate-env.js.map +1 -1
- package/lib/module/cli.js +11 -2
- package/lib/module/cli.js.map +1 -1
- package/lib/module/flatten.js +6 -1
- package/lib/module/flatten.js.map +1 -1
- package/lib/module/load-env.js +14 -0
- package/lib/module/load-env.js.map +1 -1
- package/lib/module/main.js +6 -2
- package/lib/module/main.js.map +1 -1
- package/lib/module/render-env.js +1 -1
- package/lib/module/render-env.js.map +1 -1
- package/lib/module/resolve-env.js +5 -1
- package/lib/module/resolve-env.js.map +1 -1
- package/lib/module/templates/override.js.handlebars +1 -10
- package/lib/module/validate-env.js +19 -7
- package/lib/module/validate-env.js.map +1 -1
- package/lib/typescript/src/cli.d.ts.map +1 -1
- package/lib/typescript/src/flatten.d.ts.map +1 -1
- package/lib/typescript/src/load-env.d.ts.map +1 -1
- package/lib/typescript/src/main.d.ts +1 -1
- package/lib/typescript/src/main.d.ts.map +1 -1
- package/lib/typescript/src/render-env.d.ts.map +1 -1
- package/lib/typescript/src/resolve-env.d.ts +8 -1
- package/lib/typescript/src/resolve-env.d.ts.map +1 -1
- package/lib/typescript/src/validate-env.d.ts +8 -0
- package/lib/typescript/src/validate-env.d.ts.map +1 -1
- package/package.json +4 -2
- package/src/cli.ts +12 -2
- package/src/flatten.ts +6 -1
- package/src/load-env.ts +18 -0
- package/src/main.ts +6 -2
- package/src/render-env.ts +4 -1
- package/src/resolve-env.ts +16 -2
- package/src/templates/override.js.handlebars +1 -10
- package/src/validate-env.ts +23 -7
- package/android/rnuc.yaml +0 -1
- package/lib/commonjs/bin.spec.js +0 -50
- package/lib/commonjs/bin.spec.js.map +0 -1
- package/lib/commonjs/cli.spec.js +0 -190
- package/lib/commonjs/cli.spec.js.map +0 -1
- package/lib/commonjs/flatten.spec.js +0 -32
- package/lib/commonjs/flatten.spec.js.map +0 -1
- package/lib/commonjs/load-env.spec.js +0 -257
- package/lib/commonjs/load-env.spec.js.map +0 -1
- package/lib/commonjs/main.spec.js +0 -228
- package/lib/commonjs/main.spec.js.map +0 -1
- package/lib/commonjs/render-env.spec.js +0 -397
- package/lib/commonjs/render-env.spec.js.map +0 -1
- package/lib/commonjs/resolve-env.spec.js +0 -31
- package/lib/commonjs/resolve-env.spec.js.map +0 -1
- package/lib/commonjs/validate-env.spec.js +0 -325
- package/lib/commonjs/validate-env.spec.js.map +0 -1
- package/lib/commonjs/write-env.spec.js +0 -115
- package/lib/commonjs/write-env.spec.js.map +0 -1
- package/lib/module/bin.spec.js +0 -49
- package/lib/module/bin.spec.js.map +0 -1
- package/lib/module/cli.spec.js +0 -190
- package/lib/module/cli.spec.js.map +0 -1
- package/lib/module/flatten.spec.js +0 -31
- package/lib/module/flatten.spec.js.map +0 -1
- package/lib/module/load-env.spec.js +0 -257
- package/lib/module/load-env.spec.js.map +0 -1
- package/lib/module/main.spec.js +0 -224
- package/lib/module/main.spec.js.map +0 -1
- package/lib/module/render-env.spec.js +0 -396
- package/lib/module/render-env.spec.js.map +0 -1
- package/lib/module/resolve-env.spec.js +0 -30
- package/lib/module/resolve-env.spec.js.map +0 -1
- package/lib/module/validate-env.spec.js +0 -325
- package/lib/module/validate-env.spec.js.map +0 -1
- package/lib/module/write-env.spec.js +0 -115
- package/lib/module/write-env.spec.js.map +0 -1
- package/lib/typescript/src/bin.spec.d.ts +0 -2
- package/lib/typescript/src/bin.spec.d.ts.map +0 -1
- package/lib/typescript/src/cli.spec.d.ts +0 -14
- package/lib/typescript/src/cli.spec.d.ts.map +0 -1
- package/lib/typescript/src/flatten.spec.d.ts +0 -2
- package/lib/typescript/src/flatten.spec.d.ts.map +0 -1
- package/lib/typescript/src/load-env.spec.d.ts +0 -6
- package/lib/typescript/src/load-env.spec.d.ts.map +0 -1
- package/lib/typescript/src/main.spec.d.ts +0 -2
- package/lib/typescript/src/main.spec.d.ts.map +0 -1
- package/lib/typescript/src/render-env.spec.d.ts +0 -2
- package/lib/typescript/src/render-env.spec.d.ts.map +0 -1
- package/lib/typescript/src/resolve-env.spec.d.ts +0 -2
- package/lib/typescript/src/resolve-env.spec.d.ts.map +0 -1
- package/lib/typescript/src/validate-env.spec.d.ts +0 -2
- package/lib/typescript/src/validate-env.spec.d.ts.map +0 -1
- package/lib/typescript/src/write-env.spec.d.ts +0 -9
- package/lib/typescript/src/write-env.spec.d.ts.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["path","_interopRequireWildcard","require","fs","_renderEnv","_interopRequireDefault","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","jest","mock","requireActual","existsSync","fn","readFileSync","mock_exists_sync","mock_read_file_sync","describe","project_root","lib_root","sample_env","ios","API_URL","DEBUG","PORT","android","web","beforeEach","mockReset","mockImplementation","p","path_str","toString","join","includes","options","it","result","render_env","expected_path","expect","toBeDefined","xcconfig_path","toBeUndefined","js_override","override_path","content","toContain","undefined","env","PATH","MSG","URL","ENABLED","DISABLED","toMatch","FLOAT","NAME","KEY","result1","result2","toEqual","env1","A","env2","B","key","not"],"sourceRoot":"../../src","sources":["render-env.spec.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _resolveEnv = _interopRequireDefault(require("./resolve-env"));
|
|
4
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
5
|
-
describe('resolve_env', () => {
|
|
6
|
-
const original = {
|
|
7
|
-
original: 'data'
|
|
8
|
-
};
|
|
9
|
-
it.each`
|
|
10
|
-
on_env_result | expected
|
|
11
|
-
${1} | ${1}
|
|
12
|
-
${''} | ${''}
|
|
13
|
-
${'hello'} | ${'hello'}
|
|
14
|
-
${0} | ${0}
|
|
15
|
-
${1} | ${1}
|
|
16
|
-
${false} | ${false}
|
|
17
|
-
${true} | ${true}
|
|
18
|
-
${null} | ${null}
|
|
19
|
-
${undefined} | ${original}
|
|
20
|
-
`("when hook returns '$on_env_result' env is resolved to '$expected'", async ({
|
|
21
|
-
on_env_result,
|
|
22
|
-
expected
|
|
23
|
-
}) => {
|
|
24
|
-
const on_env = jest.fn();
|
|
25
|
-
on_env.mockReturnValueOnce(on_env_result);
|
|
26
|
-
expect(await (0, _resolveEnv.default)(original, {
|
|
27
|
-
on_env
|
|
28
|
-
})).toEqual(expected);
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
//# sourceMappingURL=resolve-env.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_resolveEnv","_interopRequireDefault","require","e","__esModule","default","describe","original","it","each","undefined","on_env_result","expected","on_env","jest","fn","mockReturnValueOnce","expect","resolve_env","toEqual"],"sourceRoot":"../../src","sources":["resolve-env.spec.ts"],"mappings":";;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAwC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGxCG,QAAQ,CAAC,aAAa,EAAE,MAAM;EAC5B,MAAMC,QAAiB,GAAG;IAAEA,QAAQ,EAAE;EAAO,CAAC;EAC9CC,EAAE,CAACC,IAAI;AACT;AACA,MAAM,CAAC,eAAe,CAAC;AACvB,MAAM,EAAE,cAAc,EAAE;AACxB,MAAM,OAAO,SAAS,OAAO;AAC7B,MAAM,CAAC,eAAe,CAAC;AACvB,MAAM,CAAC,eAAe,CAAC;AACvB,MAAM,KAAK,WAAW,KAAK;AAC3B,MAAM,IAAI,YAAY,IAAI;AAC1B,MAAM,IAAI,YAAY,IAAI;AAC1B,MAAMC,SAAS,OAAOH,QAAQ;AAC9B,GAAG,CACC,mEAAmE,EACnE,OAAO;IAAEI,aAAa;IAAEC;EAAwD,CAAC,KAAK;IACpF,MAAMC,MAAM,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;IACxBF,MAAM,CAACG,mBAAmB,CAACL,aAAa,CAAC;IACzCM,MAAM,CAAC,MAAM,IAAAC,mBAAW,EAACX,QAAQ,EAAE;MAAEM;IAAO,CAAC,CAAC,CAAC,CAACM,OAAO,CAACP,QAAQ,CAAC;EACnE,CACF,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,325 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _validateEnv = require("./validate-env");
|
|
4
|
-
describe('validate-env', () => {
|
|
5
|
-
describe('required fields', () => {
|
|
6
|
-
it('throws when a required var is missing', () => {
|
|
7
|
-
const schema = {
|
|
8
|
-
API_KEY: {
|
|
9
|
-
type: 'string',
|
|
10
|
-
required: true
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
|
-
expect(() => (0, _validateEnv.validate_env)({}, schema)).toThrow('Missing required env var: API_KEY');
|
|
14
|
-
});
|
|
15
|
-
it('throws when a required var is an empty string', () => {
|
|
16
|
-
const schema = {
|
|
17
|
-
API_KEY: {
|
|
18
|
-
type: 'string',
|
|
19
|
-
required: true
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
23
|
-
API_KEY: ''
|
|
24
|
-
}, schema)).toThrow('Missing required env var: API_KEY');
|
|
25
|
-
});
|
|
26
|
-
it('throws when a required var is null', () => {
|
|
27
|
-
const schema = {
|
|
28
|
-
API_KEY: {
|
|
29
|
-
type: 'string',
|
|
30
|
-
required: true
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
34
|
-
API_KEY: null
|
|
35
|
-
}, schema)).toThrow('Missing required env var: API_KEY');
|
|
36
|
-
});
|
|
37
|
-
it('does not throw when a required var is present', () => {
|
|
38
|
-
const schema = {
|
|
39
|
-
API_KEY: {
|
|
40
|
-
type: 'string',
|
|
41
|
-
required: true
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
45
|
-
API_KEY: 'my-key'
|
|
46
|
-
}, schema)).not.toThrow();
|
|
47
|
-
});
|
|
48
|
-
it('does not throw when an optional var is missing', () => {
|
|
49
|
-
const schema = {
|
|
50
|
-
DEBUG: {
|
|
51
|
-
type: 'boolean',
|
|
52
|
-
required: false
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
expect(() => (0, _validateEnv.validate_env)({}, schema)).not.toThrow();
|
|
56
|
-
});
|
|
57
|
-
it('does not throw when required is not specified and var is missing', () => {
|
|
58
|
-
const schema = {
|
|
59
|
-
DEBUG: {
|
|
60
|
-
type: 'boolean'
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
expect(() => (0, _validateEnv.validate_env)({}, schema)).not.toThrow();
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
describe('type validation', () => {
|
|
67
|
-
describe('number', () => {
|
|
68
|
-
it('accepts valid number strings', () => {
|
|
69
|
-
const schema = {
|
|
70
|
-
TIMEOUT: {
|
|
71
|
-
type: 'number'
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
75
|
-
TIMEOUT: '3000'
|
|
76
|
-
}, schema)).not.toThrow();
|
|
77
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
78
|
-
TIMEOUT: '0'
|
|
79
|
-
}, schema)).not.toThrow();
|
|
80
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
81
|
-
TIMEOUT: '-1'
|
|
82
|
-
}, schema)).not.toThrow();
|
|
83
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
84
|
-
TIMEOUT: '3.14'
|
|
85
|
-
}, schema)).not.toThrow();
|
|
86
|
-
});
|
|
87
|
-
it('throws for non-numeric strings', () => {
|
|
88
|
-
const schema = {
|
|
89
|
-
TIMEOUT: {
|
|
90
|
-
type: 'number'
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
94
|
-
TIMEOUT: 'fast'
|
|
95
|
-
}, schema)).toThrow('TIMEOUT must be a number, got "fast"');
|
|
96
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
97
|
-
TIMEOUT: 'abc'
|
|
98
|
-
}, schema)).toThrow('TIMEOUT must be a number');
|
|
99
|
-
});
|
|
100
|
-
it('accepts actual number values', () => {
|
|
101
|
-
const schema = {
|
|
102
|
-
TIMEOUT: {
|
|
103
|
-
type: 'number'
|
|
104
|
-
}
|
|
105
|
-
};
|
|
106
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
107
|
-
TIMEOUT: 3000
|
|
108
|
-
}, schema)).not.toThrow();
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
describe('boolean', () => {
|
|
112
|
-
it('accepts valid boolean strings', () => {
|
|
113
|
-
const schema = {
|
|
114
|
-
DEBUG: {
|
|
115
|
-
type: 'boolean'
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
for (const v of ['true', 'false', '1', '0', 'TRUE', 'FALSE']) {
|
|
119
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
120
|
-
DEBUG: v
|
|
121
|
-
}, schema)).not.toThrow();
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
it('throws for invalid boolean strings', () => {
|
|
125
|
-
const schema = {
|
|
126
|
-
DEBUG: {
|
|
127
|
-
type: 'boolean'
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
131
|
-
DEBUG: 'yes'
|
|
132
|
-
}, schema)).toThrow('DEBUG must be a boolean (true/false/1/0), got "yes"');
|
|
133
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
134
|
-
DEBUG: 'enabled'
|
|
135
|
-
}, schema)).toThrow('DEBUG must be a boolean');
|
|
136
|
-
});
|
|
137
|
-
});
|
|
138
|
-
describe('string', () => {
|
|
139
|
-
it('accepts any non-empty value as string', () => {
|
|
140
|
-
const schema = {
|
|
141
|
-
NAME: {
|
|
142
|
-
type: 'string'
|
|
143
|
-
}
|
|
144
|
-
};
|
|
145
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
146
|
-
NAME: 'hello'
|
|
147
|
-
}, schema)).not.toThrow();
|
|
148
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
149
|
-
NAME: '123'
|
|
150
|
-
}, schema)).not.toThrow();
|
|
151
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
152
|
-
NAME: 'true'
|
|
153
|
-
}, schema)).not.toThrow();
|
|
154
|
-
});
|
|
155
|
-
});
|
|
156
|
-
});
|
|
157
|
-
describe('pattern validation', () => {
|
|
158
|
-
it('accepts values matching the pattern', () => {
|
|
159
|
-
const schema = {
|
|
160
|
-
ENV: {
|
|
161
|
-
type: 'string',
|
|
162
|
-
pattern: '^(dev|staging|prod)$'
|
|
163
|
-
}
|
|
164
|
-
};
|
|
165
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
166
|
-
ENV: 'dev'
|
|
167
|
-
}, schema)).not.toThrow();
|
|
168
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
169
|
-
ENV: 'staging'
|
|
170
|
-
}, schema)).not.toThrow();
|
|
171
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
172
|
-
ENV: 'prod'
|
|
173
|
-
}, schema)).not.toThrow();
|
|
174
|
-
});
|
|
175
|
-
it('throws for values not matching the pattern', () => {
|
|
176
|
-
const schema = {
|
|
177
|
-
ENV: {
|
|
178
|
-
type: 'string',
|
|
179
|
-
pattern: '^(dev|staging|prod)$'
|
|
180
|
-
}
|
|
181
|
-
};
|
|
182
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
183
|
-
ENV: 'production'
|
|
184
|
-
}, schema)).toThrow('ENV does not match pattern /^(dev|staging|prod)$/, got "production"');
|
|
185
|
-
});
|
|
186
|
-
it('pattern validation is skipped for missing optional vars', () => {
|
|
187
|
-
const schema = {
|
|
188
|
-
ENV: {
|
|
189
|
-
type: 'string',
|
|
190
|
-
pattern: '^(dev|staging|prod)$'
|
|
191
|
-
}
|
|
192
|
-
};
|
|
193
|
-
expect(() => (0, _validateEnv.validate_env)({}, schema)).not.toThrow();
|
|
194
|
-
});
|
|
195
|
-
});
|
|
196
|
-
describe('multiple errors', () => {
|
|
197
|
-
it('reports all validation errors at once, not just the first', () => {
|
|
198
|
-
const schema = {
|
|
199
|
-
API_KEY: {
|
|
200
|
-
type: 'string',
|
|
201
|
-
required: true
|
|
202
|
-
},
|
|
203
|
-
TIMEOUT: {
|
|
204
|
-
type: 'number',
|
|
205
|
-
required: true
|
|
206
|
-
},
|
|
207
|
-
ENV: {
|
|
208
|
-
type: 'string',
|
|
209
|
-
pattern: '^(dev|staging|prod)$'
|
|
210
|
-
}
|
|
211
|
-
};
|
|
212
|
-
let error;
|
|
213
|
-
try {
|
|
214
|
-
(0, _validateEnv.validate_env)({
|
|
215
|
-
TIMEOUT: 'fast',
|
|
216
|
-
ENV: 'production'
|
|
217
|
-
}, schema);
|
|
218
|
-
} catch (e) {
|
|
219
|
-
error = e;
|
|
220
|
-
}
|
|
221
|
-
expect(error).toBeDefined();
|
|
222
|
-
expect(error?.message).toContain('Missing required env var: API_KEY');
|
|
223
|
-
expect(error?.message).toContain('TIMEOUT must be a number');
|
|
224
|
-
expect(error?.message).toContain('ENV does not match pattern');
|
|
225
|
-
});
|
|
226
|
-
});
|
|
227
|
-
describe('does not throw for valid env', () => {
|
|
228
|
-
it('passes a complete valid env without error', () => {
|
|
229
|
-
const schema = {
|
|
230
|
-
API_KEY: {
|
|
231
|
-
type: 'string',
|
|
232
|
-
required: true
|
|
233
|
-
},
|
|
234
|
-
TIMEOUT_MS: {
|
|
235
|
-
type: 'number',
|
|
236
|
-
required: true
|
|
237
|
-
},
|
|
238
|
-
DEBUG: {
|
|
239
|
-
type: 'boolean',
|
|
240
|
-
required: false
|
|
241
|
-
},
|
|
242
|
-
ENV_NAME: {
|
|
243
|
-
type: 'string',
|
|
244
|
-
required: true,
|
|
245
|
-
pattern: '^(dev|staging|prod)$'
|
|
246
|
-
}
|
|
247
|
-
};
|
|
248
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
249
|
-
API_KEY: 'secret-key',
|
|
250
|
-
TIMEOUT_MS: '5000',
|
|
251
|
-
ENV_NAME: 'staging'
|
|
252
|
-
// DEBUG intentionally omitted (optional)
|
|
253
|
-
}, schema)).not.toThrow();
|
|
254
|
-
});
|
|
255
|
-
});
|
|
256
|
-
describe('env key name validation', () => {
|
|
257
|
-
it('throws for keys with invalid characters', () => {
|
|
258
|
-
const schema = {};
|
|
259
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
260
|
-
'invalid-key': 'value'
|
|
261
|
-
}, schema)).toThrow('Invalid env key name: "invalid-key"');
|
|
262
|
-
});
|
|
263
|
-
it('throws for keys starting with a number', () => {
|
|
264
|
-
const schema = {};
|
|
265
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
266
|
-
'123KEY': 'value'
|
|
267
|
-
}, schema)).toThrow('Invalid env key name: "123KEY"');
|
|
268
|
-
});
|
|
269
|
-
it('throws for keys with spaces', () => {
|
|
270
|
-
const schema = {};
|
|
271
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
272
|
-
'MY KEY': 'value'
|
|
273
|
-
}, schema)).toThrow('Invalid env key name: "MY KEY"');
|
|
274
|
-
});
|
|
275
|
-
it('accepts valid key names starting with underscore', () => {
|
|
276
|
-
const schema = {};
|
|
277
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
278
|
-
_PRIVATE_KEY: 'value'
|
|
279
|
-
}, schema)).not.toThrow();
|
|
280
|
-
});
|
|
281
|
-
it('accepts valid key names with numbers', () => {
|
|
282
|
-
const schema = {};
|
|
283
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
284
|
-
API_V2_URL: 'value'
|
|
285
|
-
}, schema)).not.toThrow();
|
|
286
|
-
});
|
|
287
|
-
});
|
|
288
|
-
describe('invalid regex patterns', () => {
|
|
289
|
-
it('reports error for invalid regex in schema', () => {
|
|
290
|
-
const schema = {
|
|
291
|
-
ENV: {
|
|
292
|
-
type: 'string',
|
|
293
|
-
pattern: '[invalid('
|
|
294
|
-
}
|
|
295
|
-
};
|
|
296
|
-
expect(() => (0, _validateEnv.validate_env)({
|
|
297
|
-
ENV: 'test'
|
|
298
|
-
}, schema)).toThrow('invalid regex pattern /[invalid(/');
|
|
299
|
-
});
|
|
300
|
-
it('reports multiple invalid regex patterns', () => {
|
|
301
|
-
const schema = {
|
|
302
|
-
ENV1: {
|
|
303
|
-
type: 'string',
|
|
304
|
-
pattern: '[bad1('
|
|
305
|
-
},
|
|
306
|
-
ENV2: {
|
|
307
|
-
type: 'string',
|
|
308
|
-
pattern: '[bad2('
|
|
309
|
-
}
|
|
310
|
-
};
|
|
311
|
-
let error;
|
|
312
|
-
try {
|
|
313
|
-
(0, _validateEnv.validate_env)({
|
|
314
|
-
ENV1: 'a',
|
|
315
|
-
ENV2: 'b'
|
|
316
|
-
}, schema);
|
|
317
|
-
} catch (e) {
|
|
318
|
-
error = e;
|
|
319
|
-
}
|
|
320
|
-
expect(error?.message).toContain('ENV1: invalid regex pattern');
|
|
321
|
-
expect(error?.message).toContain('ENV2: invalid regex pattern');
|
|
322
|
-
});
|
|
323
|
-
});
|
|
324
|
-
});
|
|
325
|
-
//# sourceMappingURL=validate-env.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_validateEnv","require","describe","it","schema","API_KEY","type","required","expect","validate_env","toThrow","not","DEBUG","TIMEOUT","v","NAME","ENV","pattern","error","e","toBeDefined","message","toContain","TIMEOUT_MS","ENV_NAME","_PRIVATE_KEY","API_V2_URL","ENV1","ENV2"],"sourceRoot":"../../src","sources":["validate-env.spec.ts"],"mappings":";;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAGAC,QAAQ,CAAC,cAAc,EAAE,MAAM;EAC7BA,QAAQ,CAAC,iBAAiB,EAAE,MAAM;IAChCC,EAAE,CAAC,uCAAuC,EAAE,MAAM;MAChD,MAAMC,MAAc,GAAG;QAAEC,OAAO,EAAE;UAAEC,IAAI,EAAE,QAAQ;UAAEC,QAAQ,EAAE;QAAK;MAAE,CAAC;MACtEC,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC,CAAC,CAAC,EAAEL,MAAM,CAAC,CAAC,CAACM,OAAO,CAAC,mCAAmC,CAAC;IACrF,CAAC,CAAC;IAEFP,EAAE,CAAC,+CAA+C,EAAE,MAAM;MACxD,MAAMC,MAAc,GAAG;QAAEC,OAAO,EAAE;UAAEC,IAAI,EAAE,QAAQ;UAAEC,QAAQ,EAAE;QAAK;MAAE,CAAC;MACtEC,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;QAAEJ,OAAO,EAAE;MAAG,CAAC,EAAED,MAAM,CAAC,CAAC,CAACM,OAAO,CACzD,mCACF,CAAC;IACH,CAAC,CAAC;IAEFP,EAAE,CAAC,oCAAoC,EAAE,MAAM;MAC7C,MAAMC,MAAc,GAAG;QAAEC,OAAO,EAAE;UAAEC,IAAI,EAAE,QAAQ;UAAEC,QAAQ,EAAE;QAAK;MAAE,CAAC;MACtEC,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;QAAEJ,OAAO,EAAE;MAAK,CAAC,EAAED,MAAM,CAAC,CAAC,CAACM,OAAO,CAC3D,mCACF,CAAC;IACH,CAAC,CAAC;IAEFP,EAAE,CAAC,+CAA+C,EAAE,MAAM;MACxD,MAAMC,MAAc,GAAG;QAAEC,OAAO,EAAE;UAAEC,IAAI,EAAE,QAAQ;UAAEC,QAAQ,EAAE;QAAK;MAAE,CAAC;MACtEC,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;QAAEJ,OAAO,EAAE;MAAS,CAAC,EAAED,MAAM,CAAC,CAAC,CAACO,GAAG,CAACD,OAAO,CAAC,CAAC;IACzE,CAAC,CAAC;IAEFP,EAAE,CAAC,gDAAgD,EAAE,MAAM;MACzD,MAAMC,MAAc,GAAG;QAAEQ,KAAK,EAAE;UAAEN,IAAI,EAAE,SAAS;UAAEC,QAAQ,EAAE;QAAM;MAAE,CAAC;MACtEC,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC,CAAC,CAAC,EAAEL,MAAM,CAAC,CAAC,CAACO,GAAG,CAACD,OAAO,CAAC,CAAC;IACtD,CAAC,CAAC;IAEFP,EAAE,CAAC,kEAAkE,EAAE,MAAM;MAC3E,MAAMC,MAAc,GAAG;QAAEQ,KAAK,EAAE;UAAEN,IAAI,EAAE;QAAU;MAAE,CAAC;MACrDE,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC,CAAC,CAAC,EAAEL,MAAM,CAAC,CAAC,CAACO,GAAG,CAACD,OAAO,CAAC,CAAC;IACtD,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFR,QAAQ,CAAC,iBAAiB,EAAE,MAAM;IAChCA,QAAQ,CAAC,QAAQ,EAAE,MAAM;MACvBC,EAAE,CAAC,8BAA8B,EAAE,MAAM;QACvC,MAAMC,MAAc,GAAG;UAAES,OAAO,EAAE;YAAEP,IAAI,EAAE;UAAS;QAAE,CAAC;QACtDE,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;UAAEI,OAAO,EAAE;QAAO,CAAC,EAAET,MAAM,CAAC,CAAC,CAACO,GAAG,CAACD,OAAO,CAAC,CAAC;QACrEF,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;UAAEI,OAAO,EAAE;QAAI,CAAC,EAAET,MAAM,CAAC,CAAC,CAACO,GAAG,CAACD,OAAO,CAAC,CAAC;QAClEF,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;UAAEI,OAAO,EAAE;QAAK,CAAC,EAAET,MAAM,CAAC,CAAC,CAACO,GAAG,CAACD,OAAO,CAAC,CAAC;QACnEF,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;UAAEI,OAAO,EAAE;QAAO,CAAC,EAAET,MAAM,CAAC,CAAC,CAACO,GAAG,CAACD,OAAO,CAAC,CAAC;MACvE,CAAC,CAAC;MAEFP,EAAE,CAAC,gCAAgC,EAAE,MAAM;QACzC,MAAMC,MAAc,GAAG;UAAES,OAAO,EAAE;YAAEP,IAAI,EAAE;UAAS;QAAE,CAAC;QACtDE,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;UAAEI,OAAO,EAAE;QAAO,CAAC,EAAET,MAAM,CAAC,CAAC,CAACM,OAAO,CAC7D,sCACF,CAAC;QACDF,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;UAAEI,OAAO,EAAE;QAAM,CAAC,EAAET,MAAM,CAAC,CAAC,CAACM,OAAO,CAAC,0BAA0B,CAAC;MAC5F,CAAC,CAAC;MAEFP,EAAE,CAAC,8BAA8B,EAAE,MAAM;QACvC,MAAMC,MAAc,GAAG;UAAES,OAAO,EAAE;YAAEP,IAAI,EAAE;UAAS;QAAE,CAAC;QACtDE,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;UAAEI,OAAO,EAAE;QAAK,CAAC,EAAET,MAAM,CAAC,CAAC,CAACO,GAAG,CAACD,OAAO,CAAC,CAAC;MACrE,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFR,QAAQ,CAAC,SAAS,EAAE,MAAM;MACxBC,EAAE,CAAC,+BAA+B,EAAE,MAAM;QACxC,MAAMC,MAAc,GAAG;UAAEQ,KAAK,EAAE;YAAEN,IAAI,EAAE;UAAU;QAAE,CAAC;QACrD,KAAK,MAAMQ,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;UAC5DN,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;YAAEG,KAAK,EAAEE;UAAE,CAAC,EAAEV,MAAM,CAAC,CAAC,CAACO,GAAG,CAACD,OAAO,CAAC,CAAC;QAChE;MACF,CAAC,CAAC;MAEFP,EAAE,CAAC,oCAAoC,EAAE,MAAM;QAC7C,MAAMC,MAAc,GAAG;UAAEQ,KAAK,EAAE;YAAEN,IAAI,EAAE;UAAU;QAAE,CAAC;QACrDE,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;UAAEG,KAAK,EAAE;QAAM,CAAC,EAAER,MAAM,CAAC,CAAC,CAACM,OAAO,CAC1D,qDACF,CAAC;QACDF,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;UAAEG,KAAK,EAAE;QAAU,CAAC,EAAER,MAAM,CAAC,CAAC,CAACM,OAAO,CAAC,yBAAyB,CAAC;MAC7F,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFR,QAAQ,CAAC,QAAQ,EAAE,MAAM;MACvBC,EAAE,CAAC,uCAAuC,EAAE,MAAM;QAChD,MAAMC,MAAc,GAAG;UAAEW,IAAI,EAAE;YAAET,IAAI,EAAE;UAAS;QAAE,CAAC;QACnDE,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;UAAEM,IAAI,EAAE;QAAQ,CAAC,EAAEX,MAAM,CAAC,CAAC,CAACO,GAAG,CAACD,OAAO,CAAC,CAAC;QACnEF,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;UAAEM,IAAI,EAAE;QAAM,CAAC,EAAEX,MAAM,CAAC,CAAC,CAACO,GAAG,CAACD,OAAO,CAAC,CAAC;QACjEF,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;UAAEM,IAAI,EAAE;QAAO,CAAC,EAAEX,MAAM,CAAC,CAAC,CAACO,GAAG,CAACD,OAAO,CAAC,CAAC;MACpE,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFR,QAAQ,CAAC,oBAAoB,EAAE,MAAM;IACnCC,EAAE,CAAC,qCAAqC,EAAE,MAAM;MAC9C,MAAMC,MAAc,GAAG;QACrBY,GAAG,EAAE;UAAEV,IAAI,EAAE,QAAQ;UAAEW,OAAO,EAAE;QAAuB;MACzD,CAAC;MACDT,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;QAAEO,GAAG,EAAE;MAAM,CAAC,EAAEZ,MAAM,CAAC,CAAC,CAACO,GAAG,CAACD,OAAO,CAAC,CAAC;MAChEF,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;QAAEO,GAAG,EAAE;MAAU,CAAC,EAAEZ,MAAM,CAAC,CAAC,CAACO,GAAG,CAACD,OAAO,CAAC,CAAC;MACpEF,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;QAAEO,GAAG,EAAE;MAAO,CAAC,EAAEZ,MAAM,CAAC,CAAC,CAACO,GAAG,CAACD,OAAO,CAAC,CAAC;IACnE,CAAC,CAAC;IAEFP,EAAE,CAAC,4CAA4C,EAAE,MAAM;MACrD,MAAMC,MAAc,GAAG;QACrBY,GAAG,EAAE;UAAEV,IAAI,EAAE,QAAQ;UAAEW,OAAO,EAAE;QAAuB;MACzD,CAAC;MACDT,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;QAAEO,GAAG,EAAE;MAAa,CAAC,EAAEZ,MAAM,CAAC,CAAC,CAACM,OAAO,CAC/D,qEACF,CAAC;IACH,CAAC,CAAC;IAEFP,EAAE,CAAC,yDAAyD,EAAE,MAAM;MAClE,MAAMC,MAAc,GAAG;QACrBY,GAAG,EAAE;UAAEV,IAAI,EAAE,QAAQ;UAAEW,OAAO,EAAE;QAAuB;MACzD,CAAC;MACDT,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC,CAAC,CAAC,EAAEL,MAAM,CAAC,CAAC,CAACO,GAAG,CAACD,OAAO,CAAC,CAAC;IACtD,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFR,QAAQ,CAAC,iBAAiB,EAAE,MAAM;IAChCC,EAAE,CAAC,2DAA2D,EAAE,MAAM;MACpE,MAAMC,MAAc,GAAG;QACrBC,OAAO,EAAE;UAAEC,IAAI,EAAE,QAAQ;UAAEC,QAAQ,EAAE;QAAK,CAAC;QAC3CM,OAAO,EAAE;UAAEP,IAAI,EAAE,QAAQ;UAAEC,QAAQ,EAAE;QAAK,CAAC;QAC3CS,GAAG,EAAE;UAAEV,IAAI,EAAE,QAAQ;UAAEW,OAAO,EAAE;QAAuB;MACzD,CAAC;MACD,IAAIC,KAAwB;MAC5B,IAAI;QACF,IAAAT,yBAAY,EAAC;UAAEI,OAAO,EAAE,MAAM;UAAEG,GAAG,EAAE;QAAa,CAAC,EAAEZ,MAAM,CAAC;MAC9D,CAAC,CAAC,OAAOe,CAAC,EAAE;QACVD,KAAK,GAAGC,CAAU;MACpB;MACAX,MAAM,CAACU,KAAK,CAAC,CAACE,WAAW,CAAC,CAAC;MAC3BZ,MAAM,CAACU,KAAK,EAAEG,OAAO,CAAC,CAACC,SAAS,CAAC,mCAAmC,CAAC;MACrEd,MAAM,CAACU,KAAK,EAAEG,OAAO,CAAC,CAACC,SAAS,CAAC,0BAA0B,CAAC;MAC5Dd,MAAM,CAACU,KAAK,EAAEG,OAAO,CAAC,CAACC,SAAS,CAAC,4BAA4B,CAAC;IAChE,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFpB,QAAQ,CAAC,8BAA8B,EAAE,MAAM;IAC7CC,EAAE,CAAC,2CAA2C,EAAE,MAAM;MACpD,MAAMC,MAAc,GAAG;QACrBC,OAAO,EAAE;UAAEC,IAAI,EAAE,QAAQ;UAAEC,QAAQ,EAAE;QAAK,CAAC;QAC3CgB,UAAU,EAAE;UAAEjB,IAAI,EAAE,QAAQ;UAAEC,QAAQ,EAAE;QAAK,CAAC;QAC9CK,KAAK,EAAE;UAAEN,IAAI,EAAE,SAAS;UAAEC,QAAQ,EAAE;QAAM,CAAC;QAC3CiB,QAAQ,EAAE;UAAElB,IAAI,EAAE,QAAQ;UAAEC,QAAQ,EAAE,IAAI;UAAEU,OAAO,EAAE;QAAuB;MAC9E,CAAC;MACDT,MAAM,CAAC,MACL,IAAAC,yBAAY,EACV;QACEJ,OAAO,EAAE,YAAY;QACrBkB,UAAU,EAAE,MAAM;QAClBC,QAAQ,EAAE;QACV;MACF,CAAC,EACDpB,MACF,CACF,CAAC,CAACO,GAAG,CAACD,OAAO,CAAC,CAAC;IACjB,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFR,QAAQ,CAAC,yBAAyB,EAAE,MAAM;IACxCC,EAAE,CAAC,yCAAyC,EAAE,MAAM;MAClD,MAAMC,MAAc,GAAG,CAAC,CAAC;MACzBI,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;QAAE,aAAa,EAAE;MAAQ,CAAC,EAAEL,MAAM,CAAC,CAAC,CAACM,OAAO,CACpE,qCACF,CAAC;IACH,CAAC,CAAC;IAEFP,EAAE,CAAC,wCAAwC,EAAE,MAAM;MACjD,MAAMC,MAAc,GAAG,CAAC,CAAC;MACzBI,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;QAAE,QAAQ,EAAE;MAAQ,CAAC,EAAEL,MAAM,CAAC,CAAC,CAACM,OAAO,CAC/D,gCACF,CAAC;IACH,CAAC,CAAC;IAEFP,EAAE,CAAC,6BAA6B,EAAE,MAAM;MACtC,MAAMC,MAAc,GAAG,CAAC,CAAC;MACzBI,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;QAAE,QAAQ,EAAE;MAAQ,CAAC,EAAEL,MAAM,CAAC,CAAC,CAACM,OAAO,CAC/D,gCACF,CAAC;IACH,CAAC,CAAC;IAEFP,EAAE,CAAC,kDAAkD,EAAE,MAAM;MAC3D,MAAMC,MAAc,GAAG,CAAC,CAAC;MACzBI,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;QAAEgB,YAAY,EAAE;MAAQ,CAAC,EAAErB,MAAM,CAAC,CAAC,CAACO,GAAG,CAACD,OAAO,CAAC,CAAC;IAC7E,CAAC,CAAC;IAEFP,EAAE,CAAC,sCAAsC,EAAE,MAAM;MAC/C,MAAMC,MAAc,GAAG,CAAC,CAAC;MACzBI,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;QAAEiB,UAAU,EAAE;MAAQ,CAAC,EAAEtB,MAAM,CAAC,CAAC,CAACO,GAAG,CAACD,OAAO,CAAC,CAAC;IAC3E,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFR,QAAQ,CAAC,wBAAwB,EAAE,MAAM;IACvCC,EAAE,CAAC,2CAA2C,EAAE,MAAM;MACpD,MAAMC,MAAc,GAAG;QACrBY,GAAG,EAAE;UAAEV,IAAI,EAAE,QAAQ;UAAEW,OAAO,EAAE;QAAY;MAC9C,CAAC;MACDT,MAAM,CAAC,MAAM,IAAAC,yBAAY,EAAC;QAAEO,GAAG,EAAE;MAAO,CAAC,EAAEZ,MAAM,CAAC,CAAC,CAACM,OAAO,CACzD,mCACF,CAAC;IACH,CAAC,CAAC;IAEFP,EAAE,CAAC,yCAAyC,EAAE,MAAM;MAClD,MAAMC,MAAc,GAAG;QACrBuB,IAAI,EAAE;UAAErB,IAAI,EAAE,QAAQ;UAAEW,OAAO,EAAE;QAAS,CAAC;QAC3CW,IAAI,EAAE;UAAEtB,IAAI,EAAE,QAAQ;UAAEW,OAAO,EAAE;QAAS;MAC5C,CAAC;MACD,IAAIC,KAAwB;MAC5B,IAAI;QACF,IAAAT,yBAAY,EAAC;UAAEkB,IAAI,EAAE,GAAG;UAAEC,IAAI,EAAE;QAAI,CAAC,EAAExB,MAAM,CAAC;MAChD,CAAC,CAAC,OAAOe,CAAC,EAAE;QACVD,KAAK,GAAGC,CAAU;MACpB;MACAX,MAAM,CAACU,KAAK,EAAEG,OAAO,CAAC,CAACC,SAAS,CAAC,6BAA6B,CAAC;MAC/Dd,MAAM,CAACU,KAAK,EAAEG,OAAO,CAAC,CAACC,SAAS,CAAC,6BAA6B,CAAC;IACjE,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
// Mocks must be declared before the module is required.
|
|
4
|
-
const mockWriteFileSync = jest.fn();
|
|
5
|
-
const mockRenameSync = jest.fn();
|
|
6
|
-
const mockUnlinkSync = jest.fn();
|
|
7
|
-
const mockCopyFileSync = jest.fn();
|
|
8
|
-
const mockMkdirSync = jest.fn(); // needed since write-env creates dest dirs
|
|
9
|
-
|
|
10
|
-
jest.mock('fs', () => ({
|
|
11
|
-
writeFileSync: (...args) => mockWriteFileSync(...args),
|
|
12
|
-
renameSync: (...args) => mockRenameSync(...args),
|
|
13
|
-
unlinkSync: (...args) => mockUnlinkSync(...args),
|
|
14
|
-
copyFileSync: (...args) => mockCopyFileSync(...args),
|
|
15
|
-
mkdirSync: (...args) => mockMkdirSync(...args)
|
|
16
|
-
}));
|
|
17
|
-
jest.mock('os', () => ({
|
|
18
|
-
tmpdir: () => '/tmp'
|
|
19
|
-
}));
|
|
20
|
-
|
|
21
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
22
|
-
const write_env = require('./write-env').default;
|
|
23
|
-
|
|
24
|
-
// ─── helpers ─────────────────────────────────────────────────────────────────
|
|
25
|
-
|
|
26
|
-
/** Returns the temp file path used for a given destination. */
|
|
27
|
-
function tmp_for(dest) {
|
|
28
|
-
const rename_call = mockRenameSync.mock.calls.find(([, d]) => d === dest);
|
|
29
|
-
return rename_call?.[0];
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
// ─── tests ───────────────────────────────────────────────────────────────────
|
|
33
|
-
|
|
34
|
-
describe('write-env', () => {
|
|
35
|
-
beforeEach(() => {
|
|
36
|
-
mockWriteFileSync.mockReset();
|
|
37
|
-
mockRenameSync.mockReset();
|
|
38
|
-
mockUnlinkSync.mockReset();
|
|
39
|
-
mockCopyFileSync.mockReset();
|
|
40
|
-
mockMkdirSync.mockReset();
|
|
41
|
-
});
|
|
42
|
-
it('writes content to a temp file then renames to destination (atomic write)', () => {
|
|
43
|
-
write_env({
|
|
44
|
-
hello: 'world'
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
// Phase 1: content written to a temp path under /tmp
|
|
48
|
-
expect(mockWriteFileSync).toHaveBeenCalledTimes(1);
|
|
49
|
-
const [tmp_path, content, encoding] = mockWriteFileSync.mock.calls[0];
|
|
50
|
-
expect(tmp_path).toMatch(/^\/tmp\/rncu_/);
|
|
51
|
-
expect(content).toBe('world');
|
|
52
|
-
expect(encoding).toBe('utf8');
|
|
53
|
-
|
|
54
|
-
// Phase 2: temp renamed to final destination (atomic)
|
|
55
|
-
expect(mockRenameSync).toHaveBeenCalledWith(tmp_path, 'hello');
|
|
56
|
-
});
|
|
57
|
-
it('writes multiple files atomically', () => {
|
|
58
|
-
write_env({
|
|
59
|
-
hello: 'world',
|
|
60
|
-
hey: 'you'
|
|
61
|
-
});
|
|
62
|
-
expect(mockWriteFileSync).toHaveBeenCalledTimes(2);
|
|
63
|
-
expect(mockRenameSync).toHaveBeenCalledTimes(2);
|
|
64
|
-
|
|
65
|
-
// Each dest should have been renamed from a unique temp path
|
|
66
|
-
const tmp_hello = tmp_for('hello');
|
|
67
|
-
const tmp_hey = tmp_for('hey');
|
|
68
|
-
expect(tmp_hello).toBeDefined();
|
|
69
|
-
expect(tmp_hey).toBeDefined();
|
|
70
|
-
expect(tmp_hello).not.toBe(tmp_hey);
|
|
71
|
-
});
|
|
72
|
-
it('falls back to copyFileSync + unlinkSync when renameSync fails (cross-device)', () => {
|
|
73
|
-
// Simulate cross-device rename error (e.g. /tmp on different device)
|
|
74
|
-
mockRenameSync.mockImplementation(() => {
|
|
75
|
-
throw new Error('EXDEV');
|
|
76
|
-
});
|
|
77
|
-
write_env({
|
|
78
|
-
hello: 'world'
|
|
79
|
-
});
|
|
80
|
-
expect(mockCopyFileSync).toHaveBeenCalledWith(expect.stringMatching(/^\/tmp\/rncu_/), 'hello');
|
|
81
|
-
expect(mockUnlinkSync).toHaveBeenCalled();
|
|
82
|
-
});
|
|
83
|
-
it('throws a descriptive error if copyFileSync also fails', () => {
|
|
84
|
-
mockRenameSync.mockImplementation(() => {
|
|
85
|
-
throw new Error('EXDEV');
|
|
86
|
-
});
|
|
87
|
-
mockCopyFileSync.mockImplementation(() => {
|
|
88
|
-
throw new Error('EACCES: permission denied');
|
|
89
|
-
});
|
|
90
|
-
expect(() => write_env({
|
|
91
|
-
hello: 'world'
|
|
92
|
-
})).toThrow(/Failed to write output files/);
|
|
93
|
-
expect(() => write_env({
|
|
94
|
-
hello: 'world'
|
|
95
|
-
})).toThrow('hello');
|
|
96
|
-
});
|
|
97
|
-
it('cleans up temp files when Phase 1 write fails', () => {
|
|
98
|
-
// First write succeeds, second fails mid-write
|
|
99
|
-
mockWriteFileSync.mockImplementationOnce(() => {
|
|
100
|
-
/* success */
|
|
101
|
-
}).mockImplementationOnce(() => {
|
|
102
|
-
throw new Error('ENOSPC: no space left');
|
|
103
|
-
});
|
|
104
|
-
expect(() => write_env({
|
|
105
|
-
hello: 'world',
|
|
106
|
-
hey: 'you'
|
|
107
|
-
})).toThrow(/Failed to prepare output files/);
|
|
108
|
-
|
|
109
|
-
// The first temp file should have been cleaned up
|
|
110
|
-
expect(mockUnlinkSync).toHaveBeenCalledTimes(1);
|
|
111
|
-
// No renames should have happened (no real files touched)
|
|
112
|
-
expect(mockRenameSync).not.toHaveBeenCalled();
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
//# sourceMappingURL=write-env.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["mockWriteFileSync","jest","fn","mockRenameSync","mockUnlinkSync","mockCopyFileSync","mockMkdirSync","mock","writeFileSync","args","renameSync","unlinkSync","copyFileSync","mkdirSync","tmpdir","write_env","require","default","tmp_for","dest","rename_call","calls","find","d","describe","beforeEach","mockReset","it","hello","expect","toHaveBeenCalledTimes","tmp_path","content","encoding","toMatch","toBe","toHaveBeenCalledWith","hey","tmp_hello","tmp_hey","toBeDefined","not","mockImplementation","Error","stringMatching","toHaveBeenCalled","toThrow","mockImplementationOnce"],"sourceRoot":"../../src","sources":["write-env.spec.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/bin.spec.js
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import cp from 'child_process';
|
|
4
|
-
import fs from 'fs';
|
|
5
|
-
import path from 'path';
|
|
6
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
7
|
-
const {
|
|
8
|
-
files_to_assert
|
|
9
|
-
} = require('./main.spec');
|
|
10
|
-
|
|
11
|
-
// TODO: Re-enable after fixing integration test paths for bob build output
|
|
12
|
-
describe.skip.each`
|
|
13
|
-
extension | env_test_content
|
|
14
|
-
${''} | ${'hello=world'}
|
|
15
|
-
${'.yaml'} | ${'hello: world'}
|
|
16
|
-
${'.yml'} | ${'hello: world'}
|
|
17
|
-
`('test codegen', ({
|
|
18
|
-
extension,
|
|
19
|
-
env_test_content
|
|
20
|
-
}) => {
|
|
21
|
-
let project_root;
|
|
22
|
-
beforeAll(() => {
|
|
23
|
-
project_root = path.join(process.cwd(), fs.mkdtempSync('rncu-jest'));
|
|
24
|
-
for (const file_path of files_to_assert) {
|
|
25
|
-
const {
|
|
26
|
-
dir
|
|
27
|
-
} = path.parse(file_path);
|
|
28
|
-
const folder = path.join(project_root, dir);
|
|
29
|
-
fs.mkdirSync(folder, {
|
|
30
|
-
recursive: true
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
afterAll(() => {
|
|
35
|
-
fs.rmSync(project_root, {
|
|
36
|
-
recursive: true,
|
|
37
|
-
force: true
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
it.each(files_to_assert.map(k => [k]))('creates file at path %s', file_path => {
|
|
41
|
-
const env_file_path = path.join(project_root, `.env${extension}`);
|
|
42
|
-
fs.writeFileSync(env_file_path, env_test_content);
|
|
43
|
-
cp.execFileSync('node', [path.join(process.cwd(), 'lib/commonjs/cli.js'), env_file_path], {
|
|
44
|
-
cwd: project_root
|
|
45
|
-
});
|
|
46
|
-
expect(fs.existsSync(path.join(project_root, file_path))).toEqual(true);
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
//# sourceMappingURL=bin.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["cp","fs","path","files_to_assert","require","describe","skip","each","extension","env_test_content","project_root","beforeAll","join","process","cwd","mkdtempSync","file_path","dir","parse","folder","mkdirSync","recursive","afterAll","rmSync","force","it","map","k","env_file_path","writeFileSync","execFileSync","expect","existsSync","toEqual"],"sourceRoot":"../../src","sources":["bin.spec.ts"],"mappings":";;AAAA,OAAOA,EAAE,MAAM,eAAe;AAC9B,OAAOC,EAAE,MAAM,IAAI;AACnB,OAAOC,IAAI,MAAM,MAAM;AACvB;AACA,MAAM;EAAEC;AAAgB,CAAC,GAAGC,OAAO,CAAC,aAAa,CAAkC;;AAEnF;AACAC,QAAQ,CAACC,IAAI,CAACC,IAAI;AAClB;AACA,IAAI,EAAE,WAAW,aAAa;AAC9B,IAAI,OAAO,MAAM,cAAc;AAC/B,IAAI,MAAM,OAAO,cAAc;AAC/B,CAAC,CACC,cAAc,EACd,CAAC;EAAEC,SAAS;EAAEC;AAAkE,CAAC,KAAK;EACpF,IAAIC,YAAoB;EACxBC,SAAS,CAAC,MAAM;IACdD,YAAY,GAAGR,IAAI,CAACU,IAAI,CAACC,OAAO,CAACC,GAAG,CAAC,CAAC,EAAEb,EAAE,CAACc,WAAW,CAAC,WAAW,CAAC,CAAC;IACpE,KAAK,MAAMC,SAAS,IAAIb,eAAe,EAAE;MACvC,MAAM;QAAEc;MAAI,CAAC,GAAGf,IAAI,CAACgB,KAAK,CAACF,SAAS,CAAC;MACrC,MAAMG,MAAM,GAAGjB,IAAI,CAACU,IAAI,CAACF,YAAY,EAAEO,GAAG,CAAC;MAC3ChB,EAAE,CAACmB,SAAS,CAACD,MAAM,EAAE;QAAEE,SAAS,EAAE;MAAK,CAAC,CAAC;IAC3C;EACF,CAAC,CAAC;EACFC,QAAQ,CAAC,MAAM;IACbrB,EAAE,CAACsB,MAAM,CAACb,YAAY,EAAE;MAAEW,SAAS,EAAE,IAAI;MAAEG,KAAK,EAAE;IAAK,CAAC,CAAC;EAC3D,CAAC,CAAC;EACFC,EAAE,CAAClB,IAAI,CAACJ,eAAe,CAACuB,GAAG,CAAEC,CAAC,IAAK,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB,EAAGX,SAAS,IAAK;IACjF,MAAMY,aAAa,GAAG1B,IAAI,CAACU,IAAI,CAACF,YAAY,EAAE,OAAOF,SAAS,EAAE,CAAC;IACjEP,EAAE,CAAC4B,aAAa,CAACD,aAAa,EAAEnB,gBAAgB,CAAC;IACjDT,EAAE,CAAC8B,YAAY,CAAC,MAAM,EAAE,CAAC5B,IAAI,CAACU,IAAI,CAACC,OAAO,CAACC,GAAG,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAEc,aAAa,CAAC,EAAE;MACxFd,GAAG,EAAEJ;IACP,CAAC,CAAC;IACFqB,MAAM,CAAC9B,EAAE,CAAC+B,UAAU,CAAC9B,IAAI,CAACU,IAAI,CAACF,YAAY,EAAEM,SAAmB,CAAC,CAAC,CAAC,CAACiB,OAAO,CAAC,IAAI,CAAC;EACnF,CAAC,CAAC;AACJ,CACF,CAAC","ignoreList":[]}
|