@aws-cdk/integ-runner 2.200.0 → 2.200.2
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/THIRD_PARTY_LICENSES +739 -2567
- package/lib/runner/{runner-base.d.ts → cdk-integ-helper.d.ts} +84 -33
- package/lib/runner/cdk-integ-helper.d.ts.map +1 -0
- package/lib/runner/cdk-integ-helper.js +451 -0
- package/lib/runner/engine.d.ts +3 -2
- package/lib/runner/engine.d.ts.map +1 -1
- package/lib/runner/engine.js +1 -1
- package/lib/runner/index.d.ts +1 -1
- package/lib/runner/index.d.ts.map +1 -1
- package/lib/runner/index.js +2 -2
- package/lib/runner/integ-test-runner.d.ts +12 -4
- package/lib/runner/integ-test-runner.d.ts.map +1 -1
- package/lib/runner/integ-test-runner.js +96 -66
- package/lib/runner/private/cloud-assembly.d.ts +1 -2
- package/lib/runner/private/cloud-assembly.d.ts.map +1 -1
- package/lib/runner/private/cloud-assembly.js +1 -1
- package/lib/runner/snapshot-test-runner.d.ts +10 -6
- package/lib/runner/snapshot-test-runner.d.ts.map +1 -1
- package/lib/runner/snapshot-test-runner.js +30 -33
- package/lib/workers/extract/index.js +3115 -44420
- package/package.json +7 -7
- package/lib/runner/runner-base.d.ts.map +0 -1
- package/lib/runner/runner-base.js +0 -381
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_SYNTH_OPTIONS = exports.CdkIntegHelper = void 0;
|
|
4
|
+
exports.currentlyRecommendedAwsCdkLibFlags = currentlyRecommendedAwsCdkLibFlags;
|
|
5
|
+
/* eslint-disable @cdklabs/no-literal-partition */
|
|
6
|
+
const path = require("path");
|
|
7
|
+
const cloud_assembly_api_1 = require("@aws-cdk/cloud-assembly-api");
|
|
8
|
+
const fs = require("fs-extra");
|
|
9
|
+
const integ_test_suite_1 = require("./integ-test-suite");
|
|
10
|
+
const recommendedFlagsFile = require("../recommended-feature-flags.json");
|
|
11
|
+
const utils_1 = require("../utils");
|
|
12
|
+
const engine_1 = require("./engine");
|
|
13
|
+
const logger = require("../logger");
|
|
14
|
+
const cloud_assembly_1 = require("./private/cloud-assembly");
|
|
15
|
+
const integ_manifest_1 = require("./private/integ-manifest");
|
|
16
|
+
const DESTRUCTIVE_CHANGES = '!!DESTRUCTIVE_CHANGES:';
|
|
17
|
+
/**
|
|
18
|
+
* Class with some helper routines for running CDK snapshots and integration tests.
|
|
19
|
+
*
|
|
20
|
+
* A "golden snapshot" is the snapshot that is stored permanently in version
|
|
21
|
+
* control, that new runs are compared against (stored in a directory named
|
|
22
|
+
* `<test-name>.snapshot`).
|
|
23
|
+
*
|
|
24
|
+
* This is as opposed to other snapshots, which can be generated for example
|
|
25
|
+
* temporarily in a temporary directory, to compare agains the golden snapshot.
|
|
26
|
+
*/
|
|
27
|
+
class CdkIntegHelper {
|
|
28
|
+
/**
|
|
29
|
+
* Factory method to create an instance of the CdkIntegHelper.
|
|
30
|
+
*
|
|
31
|
+
* Hiding the constructor to prevent inheritance.
|
|
32
|
+
*/
|
|
33
|
+
static create(options) {
|
|
34
|
+
return new CdkIntegHelper(options);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The directory where the golden snapshot will be stored
|
|
38
|
+
*/
|
|
39
|
+
goldenSnapshotDir;
|
|
40
|
+
/**
|
|
41
|
+
* An instance of the CDK CLI
|
|
42
|
+
*/
|
|
43
|
+
cdk;
|
|
44
|
+
/**
|
|
45
|
+
* Pretty name of the test
|
|
46
|
+
*/
|
|
47
|
+
testName;
|
|
48
|
+
/**
|
|
49
|
+
* The value used in the '--app' CLI parameter
|
|
50
|
+
*
|
|
51
|
+
* Path to the integ test source file, relative to `this.directory`.
|
|
52
|
+
*/
|
|
53
|
+
cdkApp;
|
|
54
|
+
/**
|
|
55
|
+
* The path where the `cdk.context.json` file
|
|
56
|
+
* will be created
|
|
57
|
+
*/
|
|
58
|
+
cdkContextPath;
|
|
59
|
+
/**
|
|
60
|
+
* The working directory that the integration tests will be
|
|
61
|
+
* executed from
|
|
62
|
+
*/
|
|
63
|
+
directory;
|
|
64
|
+
/**
|
|
65
|
+
* The test to run
|
|
66
|
+
*/
|
|
67
|
+
test;
|
|
68
|
+
/**
|
|
69
|
+
* Default options to pass to the CDK CLI
|
|
70
|
+
*/
|
|
71
|
+
defaultArgs = {
|
|
72
|
+
pathMetadata: false,
|
|
73
|
+
assetMetadata: false,
|
|
74
|
+
versionReporting: false,
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* The directory where the CDK will be synthed to
|
|
78
|
+
*
|
|
79
|
+
* Relative to cwd.
|
|
80
|
+
*/
|
|
81
|
+
cdkOutDir;
|
|
82
|
+
/**
|
|
83
|
+
* The profile to use for the CDK CLI calls
|
|
84
|
+
*/
|
|
85
|
+
profile;
|
|
86
|
+
/**
|
|
87
|
+
* Show output from the integ test run.
|
|
88
|
+
*/
|
|
89
|
+
showOutput;
|
|
90
|
+
_destructiveChanges;
|
|
91
|
+
legacyContext;
|
|
92
|
+
_expectedTestSuite;
|
|
93
|
+
_actualSnapshot;
|
|
94
|
+
_legacyEnableLookups;
|
|
95
|
+
/**
|
|
96
|
+
* Private constructor to prevent inheritance.
|
|
97
|
+
*/
|
|
98
|
+
constructor(options) {
|
|
99
|
+
this.test = options.test;
|
|
100
|
+
this.directory = this.test.directory;
|
|
101
|
+
this.testName = this.test.testName;
|
|
102
|
+
this.goldenSnapshotDir = this.test.snapshotDir;
|
|
103
|
+
this.cdkContextPath = path.join(this.directory, 'cdk.context.json');
|
|
104
|
+
this.profile = options.profile;
|
|
105
|
+
this.showOutput = options.showOutput ?? false;
|
|
106
|
+
this.cdk = options.cdk ?? (0, engine_1.makeEngine)(options);
|
|
107
|
+
this.cdkOutDir = options.integOutDir ?? this.test.temporaryOutputDir;
|
|
108
|
+
const testRunCommand = this.test.appCommand;
|
|
109
|
+
this.cdkApp = testRunCommand.replace('{filePath}', path.relative(this.directory, this.test.fileName));
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Configure the legacy enableLookups value to use when generating the actual snapshot.
|
|
113
|
+
*
|
|
114
|
+
* Must be set before using snapshot methods.
|
|
115
|
+
*/
|
|
116
|
+
configureLegacyEnableLookups(enableLookups) {
|
|
117
|
+
this._legacyEnableLookups = enableLookups;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Return the list of actual (i.e. new) test cases for this integration test
|
|
121
|
+
*/
|
|
122
|
+
async actualTests() {
|
|
123
|
+
return (await this.actualTestSuite()).testSuite;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Generate a new "actual" snapshot which will be compared to the
|
|
127
|
+
* existing "expected" snapshot
|
|
128
|
+
* This will synth and then load the integration test manifest
|
|
129
|
+
*/
|
|
130
|
+
async generateActualSnapshot() {
|
|
131
|
+
await this.synthActualSnapshot(this.cdkOutDir);
|
|
132
|
+
const manifest = await this.loadManifest(this.cdkOutDir);
|
|
133
|
+
return {
|
|
134
|
+
testDefinition: manifest,
|
|
135
|
+
snapshotDirectory: this.cdkOutDir,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Synth the actual application to the given directory, for purposes of generating/validating a snapshot
|
|
140
|
+
*
|
|
141
|
+
* `legacyEnableLookups` is to preserve historical behavior for a while:
|
|
142
|
+
* traditionally, the application would only be seeded with context if
|
|
143
|
+
* `enableLookups` was true, and this information would come from the test
|
|
144
|
+
* definition.
|
|
145
|
+
*
|
|
146
|
+
* - Since the test definition comes from inside the app, this requires a
|
|
147
|
+
* synth just to get the test definition, and then another synth to generate
|
|
148
|
+
* the actual snapshot with the correct context, which is time consuming.
|
|
149
|
+
* - Given that the context is fixed and fake, it could always have been passed.
|
|
150
|
+
*
|
|
151
|
+
* However, the snapshot contents themselves depend on the context flag, and changing
|
|
152
|
+
* this behavior now invalidates all snapshots everywhere, which is annoying for upgrading.
|
|
153
|
+
*
|
|
154
|
+
* So we will use the behavior from the GOLDEN SNAPSHOT's test definition to
|
|
155
|
+
* determine whether to pass the context, and if the new actual snapshot has a
|
|
156
|
+
* different value for `enableLookups`, we will throw away the old snapshot and synth again.
|
|
157
|
+
*/
|
|
158
|
+
async synthActualSnapshot(outputDirectory) {
|
|
159
|
+
if (this._legacyEnableLookups === undefined) {
|
|
160
|
+
throw new Error('Must call configureLegacyEnableLookups before generating snapshots');
|
|
161
|
+
}
|
|
162
|
+
await this.cdk.synth({
|
|
163
|
+
app: this.cdkApp,
|
|
164
|
+
context: this.getContext(this._legacyEnableLookups !== false ? exports.DEFAULT_SYNTH_OPTIONS.context : {}),
|
|
165
|
+
env: exports.DEFAULT_SYNTH_OPTIONS.env,
|
|
166
|
+
output: path.relative(this.directory, outputDirectory),
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
actualSynthReproCommand() {
|
|
170
|
+
// Show the command necessary to repro this
|
|
171
|
+
const envSet = Object.entries(exports.DEFAULT_SYNTH_OPTIONS.env).map(([k, v]) => `${k}='${v}'`);
|
|
172
|
+
const envCmd = envSet.length > 0 ? ['env', ...envSet] : [];
|
|
173
|
+
return [
|
|
174
|
+
...envCmd,
|
|
175
|
+
'cdk',
|
|
176
|
+
'synth',
|
|
177
|
+
'-a',
|
|
178
|
+
`'${this.cdkApp}'`,
|
|
179
|
+
'-o',
|
|
180
|
+
`'${this.cdkOutDir}'`,
|
|
181
|
+
...Object.entries(this.getContext(exports.DEFAULT_SYNTH_OPTIONS.context)).flatMap(([k, v]) => typeof v !== 'object' ? [`-c '${k}=${v}'`] : []),
|
|
182
|
+
];
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Returns true if a snapshot already exists for this test
|
|
186
|
+
*/
|
|
187
|
+
hasSnapshot() {
|
|
188
|
+
return fs.existsSync(this.goldenSnapshotDir);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* The test suite from the existing snapshot
|
|
192
|
+
*/
|
|
193
|
+
async expectedTestSuite() {
|
|
194
|
+
if (!this._expectedTestSuite && this.hasSnapshot()) {
|
|
195
|
+
this._expectedTestSuite = await this.loadManifest();
|
|
196
|
+
}
|
|
197
|
+
return this._expectedTestSuite;
|
|
198
|
+
}
|
|
199
|
+
async actualSnapshot() {
|
|
200
|
+
if (!this._actualSnapshot) {
|
|
201
|
+
this._actualSnapshot = await this.generateActualSnapshot();
|
|
202
|
+
// Check if the enableLookups value has changed between the golden
|
|
203
|
+
// snapshot and the actual snapshot. If it has, we need to re-synth the
|
|
204
|
+
// actual snapshot with the new enableLookups value.
|
|
205
|
+
//
|
|
206
|
+
// See `synthActualSnapshot` for a description of why this is necessary.
|
|
207
|
+
const actualEnableLookups = this._actualSnapshot.testDefinition.enableLookups ?? false;
|
|
208
|
+
if (actualEnableLookups !== this._legacyEnableLookups && this._legacyEnableLookups !== 'dont-care') {
|
|
209
|
+
this.configureLegacyEnableLookups(actualEnableLookups);
|
|
210
|
+
this._actualSnapshot = await this.generateActualSnapshot();
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return this._actualSnapshot;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* The test suite from the new "actual" snapshot
|
|
217
|
+
*/
|
|
218
|
+
async actualTestSuite() {
|
|
219
|
+
return (await this.actualSnapshot()).testDefinition;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Load the integ manifest which contains information
|
|
223
|
+
* on how to execute the tests
|
|
224
|
+
* First we try and load the manifest from the integ manifest (i.e. integ.json)
|
|
225
|
+
* from the cloud assembly. If it doesn't exist, then we fallback to the
|
|
226
|
+
* "legacy mode" and create a manifest from pragma
|
|
227
|
+
*/
|
|
228
|
+
async loadManifest(dir) {
|
|
229
|
+
const manifest = dir ?? this.goldenSnapshotDir;
|
|
230
|
+
try {
|
|
231
|
+
const testSuite = integ_test_suite_1.IntegTestSuite.fromPath(manifest);
|
|
232
|
+
return testSuite;
|
|
233
|
+
}
|
|
234
|
+
catch (modernError) {
|
|
235
|
+
// Only attempt legacy test case if the integ test manifest was not found
|
|
236
|
+
// For any other errors, e.g. when parsing the manifest fails, we abort.
|
|
237
|
+
if (!(modernError instanceof integ_manifest_1.NoManifestError)) {
|
|
238
|
+
throw modernError;
|
|
239
|
+
}
|
|
240
|
+
if (this.showOutput) {
|
|
241
|
+
logger.trace("Failed to load integ test manifest for '%s'. Attempting as deprecated legacy test instead. Error was: %s", manifest, modernError.message ?? String(modernError));
|
|
242
|
+
}
|
|
243
|
+
const testCases = await integ_test_suite_1.LegacyIntegTestSuite.fromLegacy({
|
|
244
|
+
cdk: this.cdk,
|
|
245
|
+
testName: this.test.normalizedTestName,
|
|
246
|
+
integSourceFilePath: this.test.fileName,
|
|
247
|
+
listOptions: {
|
|
248
|
+
...this.defaultArgs,
|
|
249
|
+
all: true,
|
|
250
|
+
app: this.cdkApp,
|
|
251
|
+
profile: this.profile,
|
|
252
|
+
output: path.relative(this.directory, this.cdkOutDir),
|
|
253
|
+
},
|
|
254
|
+
});
|
|
255
|
+
this.legacyContext = integ_test_suite_1.LegacyIntegTestSuite.getPragmaContext(this.test.fileName);
|
|
256
|
+
return testCases;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
cleanup() {
|
|
260
|
+
const cdkOutPath = this.cdkOutDir;
|
|
261
|
+
if (fs.existsSync(cdkOutPath)) {
|
|
262
|
+
fs.removeSync(cdkOutPath);
|
|
263
|
+
}
|
|
264
|
+
// Clear cache
|
|
265
|
+
this._actualSnapshot = undefined;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* If there are any destructive changes to a stack then this will record
|
|
269
|
+
* those in the manifest.json file
|
|
270
|
+
*/
|
|
271
|
+
renderTraceData() {
|
|
272
|
+
const traceData = new Map();
|
|
273
|
+
const destructiveChanges = this._destructiveChanges ?? [];
|
|
274
|
+
destructiveChanges.forEach(change => {
|
|
275
|
+
const trace = traceData.get(change.stackName);
|
|
276
|
+
if (trace) {
|
|
277
|
+
trace.set(change.logicalId, `${DESTRUCTIVE_CHANGES} ${change.impact}`);
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
traceData.set(change.stackName, new Map([
|
|
281
|
+
[change.logicalId, `${DESTRUCTIVE_CHANGES} ${change.impact}`],
|
|
282
|
+
]));
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
return traceData;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* In cases where we do not want to retain the assets,
|
|
289
|
+
* for example, if the assets are very large.
|
|
290
|
+
*
|
|
291
|
+
* Since it is possible to disable the update workflow for individual test
|
|
292
|
+
* cases, this needs to first get a list of stacks that have the update workflow
|
|
293
|
+
* disabled and then delete assets that relate to that stack. It does that
|
|
294
|
+
* by reading the asset manifest for the stack and deleting the asset source
|
|
295
|
+
*/
|
|
296
|
+
async removeAssetsFromSnapshot() {
|
|
297
|
+
const stacks = (await this.actualTestSuite()).getStacksWithoutUpdateWorkflow() ?? [];
|
|
298
|
+
const manifest = cloud_assembly_1.AssemblyManifestReader.fromPath(this.goldenSnapshotDir);
|
|
299
|
+
const assets = (0, utils_1.flatten)(stacks.map(stack => {
|
|
300
|
+
return manifest.getAssetLocationsForStack(stack) ?? [];
|
|
301
|
+
}));
|
|
302
|
+
assets.forEach(asset => {
|
|
303
|
+
const fileName = path.join(this.goldenSnapshotDir, asset);
|
|
304
|
+
if (fs.existsSync(fileName)) {
|
|
305
|
+
if (fs.lstatSync(fileName).isDirectory()) {
|
|
306
|
+
fs.removeSync(fileName);
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
fs.unlinkSync(fileName);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Remove the asset cache (.cache/) files from the snapshot.
|
|
316
|
+
* These are a cache of the asset zips, but we are fine with
|
|
317
|
+
* re-zipping on deploy
|
|
318
|
+
*/
|
|
319
|
+
removeAssetsCacheFromSnapshot() {
|
|
320
|
+
const files = fs.readdirSync(this.goldenSnapshotDir);
|
|
321
|
+
files.forEach(file => {
|
|
322
|
+
const fileName = path.join(this.goldenSnapshotDir, file);
|
|
323
|
+
if (fs.lstatSync(fileName).isDirectory() && file === '.cache') {
|
|
324
|
+
fs.emptyDirSync(fileName);
|
|
325
|
+
fs.rmdirSync(fileName);
|
|
326
|
+
}
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Create the new snapshot.
|
|
331
|
+
*
|
|
332
|
+
* If lookups are enabled, then we need create the snapshot by synth'ing again
|
|
333
|
+
* with the dummy context so that each time the test is run on different machines
|
|
334
|
+
* (and with different context/env) the diff will not change.
|
|
335
|
+
*
|
|
336
|
+
* If lookups are disabled (which means the stack is env agnostic) then just copy
|
|
337
|
+
* the assembly that was output by the deployment
|
|
338
|
+
*/
|
|
339
|
+
async createSnapshot() {
|
|
340
|
+
if (fs.existsSync(this.goldenSnapshotDir)) {
|
|
341
|
+
fs.removeSync(this.goldenSnapshotDir);
|
|
342
|
+
}
|
|
343
|
+
// TODO: If we're clever, we should be able to reuse the snapshot that was
|
|
344
|
+
// generated during the test invalidation check and avoid the below synth.
|
|
345
|
+
// But that gets run in a completely different lifecycle and it might not
|
|
346
|
+
// exist. We're not dealing with that just yet.
|
|
347
|
+
await this.synthActualSnapshot(this.goldenSnapshotDir);
|
|
348
|
+
await this.cleanupGoldenSnapshot();
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Perform some cleanup steps after the snapshot is created
|
|
352
|
+
* Anytime the snapshot needs to be modified after creation
|
|
353
|
+
* the logic should live here.
|
|
354
|
+
*/
|
|
355
|
+
async cleanupGoldenSnapshot() {
|
|
356
|
+
if (fs.existsSync(this.goldenSnapshotDir)) {
|
|
357
|
+
await this.removeAssetsFromSnapshot();
|
|
358
|
+
this.removeAssetsCacheFromSnapshot();
|
|
359
|
+
const assembly = cloud_assembly_1.AssemblyManifestReader.fromPath(this.goldenSnapshotDir);
|
|
360
|
+
assembly.cleanManifest();
|
|
361
|
+
assembly.recordTrace(this.renderTraceData());
|
|
362
|
+
}
|
|
363
|
+
// if this is a legacy test then create an integ manifest
|
|
364
|
+
// in the snapshot directory which can be used for the
|
|
365
|
+
// update workflow. Save any legacyContext as well so that it can be read
|
|
366
|
+
// the next time
|
|
367
|
+
const actualTestSuite = await this.actualTestSuite();
|
|
368
|
+
if (actualTestSuite.type === 'legacy-test-suite') {
|
|
369
|
+
actualTestSuite.saveManifest(this.goldenSnapshotDir, this.legacyContext);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
getContext(additionalContext) {
|
|
373
|
+
return {
|
|
374
|
+
...currentlyRecommendedAwsCdkLibFlags(),
|
|
375
|
+
...this.legacyContext,
|
|
376
|
+
...additionalContext,
|
|
377
|
+
// Don't record creation stack traces in the snapshot, since they just take up space and are never deterministic.
|
|
378
|
+
'aws:cdk:disable-creation-stack-traces': true,
|
|
379
|
+
// We originally had PLANNED to set this to ['aws', 'aws-cn'], but due to a programming mistake
|
|
380
|
+
// it was set to everything. In this PR, set it to everything to not mess up all the snapshots.
|
|
381
|
+
'@aws-cdk/core:target-partitions': undefined,
|
|
382
|
+
/* ---------------- THE FUTURE LIVES BELOW----------------------------
|
|
383
|
+
// Restricting to these target partitions makes most service principals synthesize to
|
|
384
|
+
// `service.${URL_SUFFIX}`, which is technically *incorrect* (it's only `amazonaws.com`
|
|
385
|
+
// or `amazonaws.com.cn`, never UrlSuffix for any of the restricted regions) but it's what
|
|
386
|
+
// most existing integ tests contain, and we want to disturb as few as possible.
|
|
387
|
+
// [TARGET_PARTITIONS]: ['aws', 'aws-cn'],
|
|
388
|
+
/* ---------------- END OF THE FUTURE ------------------------------- */
|
|
389
|
+
};
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
exports.CdkIntegHelper = CdkIntegHelper;
|
|
393
|
+
// Default context we run all integ tests with, so they don't depend on the
|
|
394
|
+
// account of the exercising user.
|
|
395
|
+
exports.DEFAULT_SYNTH_OPTIONS = {
|
|
396
|
+
context: {
|
|
397
|
+
[cloud_assembly_api_1.AVAILABILITY_ZONE_FALLBACK_CONTEXT_KEY]: ['test-region-1a', 'test-region-1b', 'test-region-1c'],
|
|
398
|
+
'availability-zones:account=12345678:region=test-region': ['test-region-1a', 'test-region-1b', 'test-region-1c'],
|
|
399
|
+
'ssm:account=12345678:parameterName=/aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-gp2:region=test-region': 'ami-1234',
|
|
400
|
+
'ssm:account=12345678:parameterName=/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2:region=test-region': 'ami-1234',
|
|
401
|
+
'ssm:account=12345678:parameterName=/aws/service/ecs/optimized-ami/amazon-linux/recommended:region=test-region': '{"image_id": "ami-1234"}',
|
|
402
|
+
// eslint-disable-next-line @stylistic/max-len
|
|
403
|
+
'ami:account=12345678:filters.image-type.0=machine:filters.name.0=amzn-ami-vpc-nat-*:filters.state.0=available:owners.0=amazon:region=test-region': 'ami-1234',
|
|
404
|
+
'vpc-provider:account=12345678:filter.isDefault=true:region=test-region:returnAsymmetricSubnets=true': {
|
|
405
|
+
vpcId: 'vpc-60900905',
|
|
406
|
+
subnetGroups: [
|
|
407
|
+
{
|
|
408
|
+
type: 'Public',
|
|
409
|
+
name: 'Public',
|
|
410
|
+
subnets: [
|
|
411
|
+
{
|
|
412
|
+
subnetId: 'subnet-e19455ca',
|
|
413
|
+
availabilityZone: 'us-east-1a',
|
|
414
|
+
routeTableId: 'rtb-e19455ca',
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
subnetId: 'subnet-e0c24797',
|
|
418
|
+
availabilityZone: 'us-east-1b',
|
|
419
|
+
routeTableId: 'rtb-e0c24797',
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
subnetId: 'subnet-ccd77395',
|
|
423
|
+
availabilityZone: 'us-east-1c',
|
|
424
|
+
routeTableId: 'rtb-ccd77395',
|
|
425
|
+
},
|
|
426
|
+
],
|
|
427
|
+
},
|
|
428
|
+
],
|
|
429
|
+
},
|
|
430
|
+
},
|
|
431
|
+
env: {
|
|
432
|
+
CDK_INTEG_ACCOUNT: '12345678',
|
|
433
|
+
CDK_INTEG_REGION: 'test-region',
|
|
434
|
+
CDK_INTEG_HOSTED_ZONE_ID: 'Z23ABC4XYZL05B',
|
|
435
|
+
CDK_INTEG_HOSTED_ZONE_NAME: 'example.com',
|
|
436
|
+
CDK_INTEG_DOMAIN_NAME: '*.example.com',
|
|
437
|
+
CDK_INTEG_CERT_ARN: 'arn:aws:acm:test-region:12345678:certificate/86468209-a272-595d-b831-0efb6421265z',
|
|
438
|
+
CDK_INTEG_SUBNET_ID: 'subnet-0dff1a399d8f6f92c',
|
|
439
|
+
},
|
|
440
|
+
};
|
|
441
|
+
/**
|
|
442
|
+
* Return the currently recommended flags for `aws-cdk-lib`.
|
|
443
|
+
*
|
|
444
|
+
* These have been built into the CLI at build time. If this ever gets changed
|
|
445
|
+
* back to a dynamic load, remember that this source file may be bundled into
|
|
446
|
+
* a JavaScript bundle, and `__dirname` might not point where you think it does.
|
|
447
|
+
*/
|
|
448
|
+
function currentlyRecommendedAwsCdkLibFlags() {
|
|
449
|
+
return recommendedFlagsFile;
|
|
450
|
+
}
|
|
451
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWludGVnLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1pbnRlZy1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNGpCQSxnRkFFQztBQTlqQkQsa0RBQWtEO0FBQ2xELDZCQUE2QjtBQUM3QixvRUFBcUY7QUFFckYsK0JBQStCO0FBQy9CLHlEQUEwRTtBQUUxRSwwRUFBMEU7QUFDMUUsb0NBQW1DO0FBQ25DLHFDQUFzQztBQUV0QyxvQ0FBb0M7QUFFcEMsNkRBQWtFO0FBRWxFLDZEQUEyRDtBQUUzRCxNQUFNLG1CQUFtQixHQUFHLHdCQUF3QixDQUFDO0FBOEVyRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFhLGNBQWM7SUFDekI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBOEI7UUFDakQsT0FBTyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDYSxpQkFBaUIsQ0FBUztJQUUxQzs7T0FFRztJQUNhLEdBQUcsQ0FBTztJQUUxQjs7T0FFRztJQUNhLFFBQVEsQ0FBUztJQUVqQzs7OztPQUlHO0lBQ2EsTUFBTSxDQUFTO0lBRS9COzs7T0FHRztJQUNhLGNBQWMsQ0FBUztJQUV2Qzs7O09BR0c7SUFDYSxTQUFTLENBQVM7SUFFbEM7O09BRUc7SUFDYyxJQUFJLENBQVk7SUFFakM7O09BRUc7SUFDYSxXQUFXLEdBQXNCO1FBQy9DLFlBQVksRUFBRSxLQUFLO1FBQ25CLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGdCQUFnQixFQUFFLEtBQUs7S0FDeEIsQ0FBQztJQUVGOzs7O09BSUc7SUFDYSxTQUFTLENBQVM7SUFFbEM7O09BRUc7SUFDYSxPQUFPLENBQVU7SUFFakM7O09BRUc7SUFDYyxVQUFVLENBQVU7SUFFOUIsbUJBQW1CLENBQXVCO0lBQ3pDLGFBQWEsQ0FBdUI7SUFDcEMsa0JBQWtCLENBQXlDO0lBQzNELGVBQWUsQ0FBNkI7SUFDNUMs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QUNGO0tBQ0Y7SUFDRCxHQUFHLEVBQUU7UUFDSCxpQkFBaUIsRUFBRSxVQUFVO1FBQzdCLGdCQUFnQixFQUFFLGFBQWE7UUFDL0Isd0JBQXdCLEVBQUUsZ0JBQWdCO1FBQzFDLDBCQUEwQixFQUFFLGFBQWE7UUFDekMscUJBQXFCLEVBQUUsZUFBZTtRQUN0QyxrQkFBa0IsRUFBRSxtRkFBbUY7UUFDdkcsbUJBQW1CLEVBQUUsMEJBQTBCO0tBQ2hEO0NBQ0YsQ0FBQztBQUVGOzs7Ozs7R0FNRztBQUNILFNBQWdCLGtDQUFrQztJQUNoRCxPQUFPLG9CQUFvQixDQUFDO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAY2RrbGFicy9uby1saXRlcmFsLXBhcnRpdGlvbiAqL1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IEFWQUlMQUJJTElUWV9aT05FX0ZBTExCQUNLX0NPTlRFWFRfS0VZIH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB0eXBlIHsgVGVzdENhc2UsIERlZmF1bHRDZGtPcHRpb25zIH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IEludGVnVGVzdFN1aXRlLCBMZWdhY3lJbnRlZ1Rlc3RTdWl0ZSB9IGZyb20gJy4vaW50ZWctdGVzdC1zdWl0ZSc7XG5pbXBvcnQgdHlwZSB7IEludGVnVGVzdCB9IGZyb20gJy4vaW50ZWdyYXRpb24tdGVzdHMnO1xuaW1wb3J0ICogYXMgcmVjb21tZW5kZWRGbGFnc0ZpbGUgZnJvbSAnLi4vcmVjb21tZW5kZWQtZmVhdHVyZS1mbGFncy5qc29uJztcbmltcG9ydCB7IGZsYXR0ZW4gfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBtYWtlRW5naW5lIH0gZnJvbSAnLi9lbmdpbmUnO1xuaW1wb3J0IHR5cGUgeyBJQ2RrIH0gZnJvbSAnLi4vZW5naW5lcy9jZGstaW50ZXJmYWNlJztcbmltcG9ydCAqIGFzIGxvZ2dlciBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IHR5cGUgeyBNYW5pZmVzdFRyYWNlIH0gZnJvbSAnLi9wcml2YXRlL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB7IEFzc2VtYmx5TWFuaWZlc3RSZWFkZXIgfSBmcm9tICcuL3ByaXZhdGUvY2xvdWQtYXNzZW1ibHknO1xuaW1wb3J0IHR5cGUgeyBEZXN0cnVjdGl2ZUNoYW5nZSB9IGZyb20gJy4uL3dvcmtlcnMvY29tbW9uJztcbmltcG9ydCB7IE5vTWFuaWZlc3RFcnJvciB9IGZyb20gJy4vcHJpdmF0ZS9pbnRlZy1tYW5pZmVzdCc7XG5cbmNvbnN0IERFU1RSVUNUSVZFX0NIQU5HRVMgPSAnISFERVNUUlVDVElWRV9DSEFOR0VTOic7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY3JlYXRpbmcgYW4gaW50ZWcgaGVscGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrSW50ZWdIZWxwZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSB0ZXN0IHRvIHJ1blxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdDogSW50ZWdUZXN0O1xuXG4gIC8qKlxuICAgKiBUaGUgcmVnaW9uIHdoZXJlIHRoZSB0ZXN0IHNob3VsZCBiZSBkZXBsb3llZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgcHJvZmlsZSB0byB1c2Ugd2hlbiBpbnZva2luZyB0aGUgQ0RLIENMSVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHByb2ZpbGUgaXMgcGFzc2VkLCB0aGUgZGVmYXVsdCBwcm9maWxlIGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IHByb2ZpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRoYXQgd2lsbCBiZSBhdmFpbGFibGVcbiAgICogdG8gdGhlIENESyBDTElcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhZGRpdGlvbmFsIGVudmlyb25tZW50IHZhcmlhYmxlc1xuICAgKi9cbiAgcmVhZG9ubHkgZW52PzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIHRtcCBjZGsub3V0IGRpcmVjdG9yeVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRpcmVjdG9yeSB3aWxsIGJlIGBjZGstaW50ZWcub3V0LiR7dGVzdE5hbWV9YFxuICAgKi9cbiAgcmVhZG9ubHkgaW50ZWdPdXREaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIG9mIHRoZSBDREsgVG9vbGtpdCBFbmdpbmUgdG8gdXNlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYmFzZWQgb24gYGVuZ2luZWAgb3B0aW9uXG4gICAqL1xuICByZWFkb25seSBjZGs/OiBJQ2RrO1xuXG4gIC8qKlxuICAgKiBTaG93IG91dHB1dCBmcm9tIHJ1bm5pbmcgaW50ZWdyYXRpb24gdGVzdHNcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHNob3dPdXRwdXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVc2UgdGhlIGluZGljYXRlZCBwcm94eVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHByb3h5XG4gICAqL1xuICByZWFkb25seSBwcm94eT86IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCB0byBDQSBjZXJ0aWZpY2F0ZSB0byB1c2Ugd2hlbiB2YWxpZGF0aW5nIEhUVFBTIHJlcXVlc3RzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYWRkaXRpb25hbCBDQSBidW5kbGVcbiAgICovXG4gIHJlYWRvbmx5IGNhQnVuZGxlUGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIHN5bnRoZXNpemUgdGhlIGFjdHVhbCBzbmFwc2hvdCB3aXRoIGxvb2t1cHMgZW5hYmxlZCBvciBub3QuXG4gKlxuICogSWYgZWl0aGVyIGB0cnVlYCBvciBgZmFsc2VgLCB3ZSBzZW5kIGNvbnRleHQgaW4gb3Igbm90IHdoaWxlIHN5bnRoZXNpemluZyxcbiAqIGFuZCBpZiB0aGUgZ2VuZXJhdGVkIHNuYXBzaG90IHRlc3QgZGVmaW5pdGlvbiByZXF1ZXN0cyBhIGRpZmZlcmVudCB2YWx1ZSB3ZVxuICogd2lsbCBzeW50aCBhZ2Fpbi5cbiAqXG4gKiBGb3IgYGRvbnQtY2FyZWAsIHdlIGRvIHNlbmQgaW4gdGhlIGNvbnRleHQgYnV0IHdlIG5ldmVyIHJlc3ludGguXG4gKi9cbmV4cG9ydCB0eXBlIExlZ2FjeUVuYWJsZUxvb2t1cHMgPSB0cnVlIHwgZmFsc2UgfCAnZG9udC1jYXJlJztcblxuLyoqXG4gKiBDbGFzcyB3aXRoIHNvbWUgaGVscGVyIHJvdXRpbmVzIGZvciBydW5uaW5nIENESyBzbmFwc2hvdHMgYW5kIGludGVncmF0aW9uIHRlc3RzLlxuICpcbiAqIEEgXCJnb2xkZW4gc25hcHNob3RcIiBpcyB0aGUgc25hcHNob3QgdGhhdCBpcyBzdG9yZWQgcGVybWFuZW50bHkgaW4gdmVyc2lvblxuICogY29udHJvbCwgdGhhdCBuZXcgcnVucyBhcmUgY29tcGFyZWQgYWdhaW5zdCAoc3RvcmVkIGluIGEgZGlyZWN0b3J5IG5hbWVkXG4gKiBgPHRlc3QtbmFtZT4uc25hcHNob3RgKS5cbiAqXG4gKiBUaGlzIGlzIGFzIG9wcG9zZWQgdG8gb3RoZXIgc25hcHNob3RzLCB3aGljaCBjYW4gYmUgZ2VuZXJhdGVkIGZvciBleGFtcGxlXG4gKiB0ZW1wb3JhcmlseSBpbiBhIHRlbXBvcmFyeSBkaXJlY3RvcnksIHRvIGNvbXBhcmUgYWdhaW5zIHRoZSBnb2xkZW4gc25hcHNob3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBDZGtJbnRlZ0hlbHBlciB7XG4gIC8qKlxuICAgKiBGYWN0b3J5IG1ldGhvZCB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgdGhlIENka0ludGVnSGVscGVyLlxuICAgKlxuICAgKiBIaWRpbmcgdGhlIGNvbnN0cnVjdG9yIHRvIHByZXZlbnQgaW5oZXJpdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNyZWF0ZShvcHRpb25zOiBDZGtJbnRlZ0hlbHBlck9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IENka0ludGVnSGVscGVyKG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIGdvbGRlbiBzbmFwc2hvdCB3aWxsIGJlIHN0b3JlZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGdvbGRlblNuYXBzaG90RGlyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIGluc3RhbmNlIG9mIHRoZSBDREsgIENMSVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNkazogSUNkaztcblxuICAvKipcbiAgICogUHJldHR5IG5hbWUgb2YgdGhlIHRlc3RcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0ZXN0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgdXNlZCBpbiB0aGUgJy0tYXBwJyBDTEkgcGFyYW1ldGVyXG4gICAqXG4gICAqIFBhdGggdG8gdGhlIGludGVnIHRlc3Qgc291cmNlIGZpbGUsIHJlbGF0aXZlIHRvIGB0aGlzLmRpcmVjdG9yeWAuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2RrQXBwOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIHdoZXJlIHRoZSBgY2RrLmNvbnRleHQuanNvbmAgZmlsZVxuICAgKiB3aWxsIGJlIGNyZWF0ZWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjZGtDb250ZXh0UGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgd29ya2luZyBkaXJlY3RvcnkgdGhhdCB0aGUgaW50ZWdyYXRpb24gdGVzdHMgd2lsbCBiZVxuICAgKiBleGVjdXRlZCBmcm9tXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGlyZWN0b3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXN0IHRvIHJ1blxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSB0ZXN0OiBJbnRlZ1Rlc3Q7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgb3B0aW9ucyB0byBwYXNzIHRvIHRoZSBDREsgQ0xJXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdEFyZ3M6IERlZmF1bHRDZGtPcHRpb25zID0ge1xuICAgIHBhdGhNZXRhZGF0YTogZmFsc2UsXG4gICAgYXNzZXRNZXRhZGF0YTogZmFsc2UsXG4gICAgdmVyc2lvblJlcG9ydGluZzogZmFsc2UsXG4gIH07XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIENESyB3aWxsIGJlIHN5bnRoZWQgdG9cbiAgICpcbiAgICogUmVsYXRpdmUgdG8gY3dkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNka091dERpcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJvZmlsZSB0byB1c2UgZm9yIHRoZSBDREsgQ0xJIGNhbGxzXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvZmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogU2hvdyBvdXRwdXQgZnJvbSB0aGUgaW50ZWcgdGVzdCBydW4uXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHNob3dPdXRwdXQ6IGJvb2xlYW47XG5cbiAgcHVibGljIF9kZXN0cnVjdGl2ZUNoYW5nZXM/OiBEZXN0cnVjdGl2ZUNoYW5nZVtdO1xuICBwcml2YXRlIGxlZ2FjeUNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBwcml2YXRlIF9leHBlY3RlZFRlc3RTdWl0ZT86IEludGVnVGVzdFN1aXRlIHwgTGVnYWN5SW50ZWdUZXN0U3VpdGU7XG4gIHByaXZhdGUgX2FjdHVhbFNuYXBzaG90PzogU25hcHNob3RBbmRUZXN0RGVmaW5pdGlvbjtcbiAgcHJpdmF0ZSBfbGVnYWN5RW5hYmxlTG9va3Vwcz86IExlZ2FjeUVuYWJsZUxvb2t1cHM7XG5cbiAgLyoqXG4gICAqIFByaXZhdGUgY29uc3RydWN0b3IgdG8gcHJldmVudCBpbmhlcml0YW5jZS5cbiAgICovXG4gIHByaXZhdGUgY29uc3RydWN0b3Iob3B0aW9uczogQ2RrSW50ZWdIZWxwZXJPcHRpb25zKSB7XG4gICAgdGhpcy50ZXN0ID0gb3B0aW9ucy50ZXN0O1xuICAgIHRoaXMuZGlyZWN0b3J5ID0gdGhpcy50ZXN0LmRpcmVjdG9yeTtcbiAgICB0aGlzLnRlc3ROYW1lID0gdGhpcy50ZXN0LnRlc3ROYW1lO1xuICAgIHRoaXMuZ29sZGVuU25hcHNob3REaXIgPSB0aGlzLnRlc3Quc25hcHNob3REaXI7XG4gICAgdGhpcy5jZGtDb250ZXh0UGF0aCA9IHBhdGguam9pbih0aGlzLmRpcmVjdG9yeSwgJ2Nkay5jb250ZXh0Lmpzb24nKTtcbiAgICB0aGlzLnByb2ZpbGUgPSBvcHRpb25zLnByb2ZpbGU7XG4gICAgdGhpcy5zaG93T3V0cHV0ID0gb3B0aW9ucy5zaG93T3V0cHV0ID8/IGZhbHNlO1xuXG4gICAgdGhpcy5jZGsgPSBvcHRpb25zLmNkayA/PyBtYWtlRW5naW5lKG9wdGlvbnMpO1xuICAgIHRoaXMuY2RrT3V0RGlyID0gb3B0aW9ucy5pbnRlZ091dERpciA/PyB0aGlzLnRlc3QudGVtcG9yYXJ5T3V0cHV0RGlyO1xuXG4gICAgY29uc3QgdGVzdFJ1bkNvbW1hbmQgPSB0aGlzLnRlc3QuYXBwQ29tbWFuZDtcbiAgICB0aGlzLmNka0FwcCA9IHRlc3RSdW5Db21tYW5kLnJlcGxhY2UoJ3tmaWxlUGF0aH0nLCBwYXRoLnJlbGF0aXZlKHRoaXMuZGlyZWN0b3J5LCB0aGlzLnRlc3QuZmlsZU5hbWUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgdGhlIGxlZ2FjeSBlbmFibGVMb29rdXBzIHZhbHVlIHRvIHVzZSB3aGVuIGdlbmVyYXRpbmcgdGhlIGFjdHVhbCBzbmFwc2hvdC5cbiAgICpcbiAgICogTXVzdCBiZSBzZXQgYmVmb3JlIHVzaW5nIHNuYXBzaG90IG1ldGhvZHMuXG4gICAqL1xuICBwdWJsaWMgY29uZmlndXJlTGVnYWN5RW5hYmxlTG9va3VwcyhlbmFibGVMb29rdXBzOiBMZWdhY3lFbmFibGVMb29rdXBzKTogdm9pZCB7XG4gICAgdGhpcy5fbGVnYWN5RW5hYmxlTG9va3VwcyA9IGVuYWJsZUxvb2t1cHM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBsaXN0IG9mIGFjdHVhbCAoaS5lLiBuZXcpIHRlc3QgY2FzZXMgZm9yIHRoaXMgaW50ZWdyYXRpb24gdGVzdFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGFjdHVhbFRlc3RzKCk6IFByb21pc2U8eyBbdGVzdE5hbWU6IHN0cmluZ106IFRlc3RDYXNlIH0gfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuYWN0dWFsVGVzdFN1aXRlKCkpLnRlc3RTdWl0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBhIG5ldyBcImFjdHVhbFwiIHNuYXBzaG90IHdoaWNoIHdpbGwgYmUgY29tcGFyZWQgdG8gdGhlXG4gICAqIGV4aXN0aW5nIFwiZXhwZWN0ZWRcIiBzbmFwc2hvdFxuICAgKiBUaGlzIHdpbGwgc3ludGggYW5kIHRoZW4gbG9hZCB0aGUgaW50ZWdyYXRpb24gdGVzdCBtYW5pZmVzdFxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBnZW5lcmF0ZUFjdHVhbFNuYXBzaG90KCk6IFByb21pc2U8U25hcHNob3RBbmRUZXN0RGVmaW5pdGlvbj4ge1xuICAgIGF3YWl0IHRoaXMuc3ludGhBY3R1YWxTbmFwc2hvdCh0aGlzLmNka091dERpcik7XG4gICAgY29uc3QgbWFuaWZlc3QgPSBhd2FpdCB0aGlzLmxvYWRNYW5pZmVzdCh0aGlzLmNka091dERpcik7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRlc3REZWZpbml0aW9uOiBtYW5pZmVzdCxcbiAgICAgIHNuYXBzaG90RGlyZWN0b3J5OiB0aGlzLmNka091dERpcixcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFN5bnRoIHRoZSBhY3R1YWwgYXBwbGljYXRpb24gdG8gdGhlIGdpdmVuIGRpcmVjdG9yeSwgZm9yIHB1cnBvc2VzIG9mIGdlbmVyYXRpbmcvdmFsaWRhdGluZyBhIHNuYXBzaG90XG4gICAqXG4gICAqIGBsZWdhY3lFbmFibGVMb29rdXBzYCBpcyB0byBwcmVzZXJ2ZSBoaXN0b3JpY2FsIGJlaGF2aW9yIGZvciBhIHdoaWxlOlxuICAgKiB0cmFkaXRpb25hbGx5LCB0aGUgYXBwbGljYXRpb24gd291bGQgb25seSBiZSBzZWVkZWQgd2l0aCBjb250ZXh0IGlmXG4gICAqIGBlbmFibGVMb29rdXBzYCB3YXMgdHJ1ZSwgYW5kIHRoaXMgaW5mb3JtYXRpb24gd291bGQgY29tZSBmcm9tIHRoZSB0ZXN0XG4gICAqIGRlZmluaXRpb24uXG4gICAqXG4gICAqIC0gU2luY2UgdGhlIHRlc3QgZGVmaW5pdGlvbiBjb21lcyBmcm9tIGluc2lkZSB0aGUgYXBwLCB0aGlzIHJlcXVpcmVzIGFcbiAgICogICBzeW50aCBqdXN0IHRvIGdldCB0aGUgdGVzdCBkZWZpbml0aW9uLCBhbmQgdGhlbiBhbm90aGVyIHN5bnRoIHRvIGdlbmVyYXRlXG4gICAqICAgdGhlIGFjdHVhbCBzbmFwc2hvdCB3aXRoIHRoZSBjb3JyZWN0IGNvbnRleHQsIHdoaWNoIGlzIHRpbWUgY29uc3VtaW5nLlxuICAgKiAtIEdpdmVuIHRoYXQgdGhlIGNvbnRleHQgaXMgZml4ZWQgYW5kIGZha2UsIGl0IGNvdWxkIGFsd2F5cyBoYXZlIGJlZW4gcGFzc2VkLlxuICAgKlxuICAgKiBIb3dldmVyLCB0aGUgc25hcHNob3QgY29udGVudHMgdGhlbXNlbHZlcyBkZXBlbmQgb24gdGhlIGNvbnRleHQgZmxhZywgYW5kIGNoYW5naW5nXG4gICAqIHRoaXMgYmVoYXZpb3Igbm93IGludmFsaWRhdGVzIGFsbCBzbmFwc2hvdHMgZXZlcnl3aGVyZSwgd2hpY2ggaXMgYW5ub3lpbmcgZm9yIHVwZ3JhZGluZy5cbiAgICpcbiAgICogU28gd2Ugd2lsbCB1c2UgdGhlIGJlaGF2aW9yIGZyb20gdGhlIEdPTERFTiBTTkFQU0hPVCdzIHRlc3QgZGVmaW5pdGlvbiB0b1xuICAgKiBkZXRlcm1pbmUgd2hldGhlciB0byBwYXNzIHRoZSBjb250ZXh0LCBhbmQgaWYgdGhlIG5ldyBhY3R1YWwgc25hcHNob3QgaGFzIGFcbiAgICogZGlmZmVyZW50IHZhbHVlIGZvciBgZW5hYmxlTG9va3Vwc2AsIHdlIHdpbGwgdGhyb3cgYXdheSB0aGUgb2xkIHNuYXBzaG90IGFuZCBzeW50aCBhZ2Fpbi5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgc3ludGhBY3R1YWxTbmFwc2hvdChvdXRwdXREaXJlY3Rvcnk6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLl9sZWdhY3lFbmFibGVMb29rdXBzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTXVzdCBjYWxsIGNvbmZpZ3VyZUxlZ2FjeUVuYWJsZUxvb2t1cHMgYmVmb3JlIGdlbmVyYXRpbmcgc25hcHNob3RzJyk7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5jZGsuc3ludGgoe1xuICAgICAgYXBwOiB0aGlzLmNka0FwcCxcbiAgICAgIGNvbnRleHQ6IHRoaXMuZ2V0Q29udGV4dCh0aGlzLl9sZWdhY3lFbmFibGVMb29rdXBzICE9PSBmYWxzZSA/IERFRkFVTFRfU1lOVEhfT1BUSU9OUy5jb250ZXh0IDoge30pLFxuICAgICAgZW52OiBERUZBVUxUX1NZTlRIX09QVElPTlMuZW52LFxuICAgICAgb3V0cHV0OiBwYXRoLnJlbGF0aXZlKHRoaXMuZGlyZWN0b3J5LCBvdXRwdXREaXJlY3RvcnkpLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFjdHVhbFN5bnRoUmVwcm9Db21tYW5kKCkge1xuICAgIC8vIFNob3cgdGhlIGNvbW1hbmQgbmVjZXNzYXJ5IHRvIHJlcHJvIHRoaXNcbiAgICBjb25zdCBlbnZTZXQgPSBPYmplY3QuZW50cmllcyhERUZBVUxUX1NZTlRIX09QVElPTlMuZW52KS5tYXAoKFtrLCB2XSkgPT4gYCR7a309JyR7dn0nYCk7XG4gICAgY29uc3QgZW52Q21kID0gZW52U2V0Lmxlbmd0aCA+IDAgPyBbJ2VudicsIC4uLmVudlNldF0gOiBbXTtcblxuICAgIHJldHVybiBbXG4gICAgICAuLi5lbnZDbWQsXG4gICAgICAnY2RrJyxcbiAgICAgICdzeW50aCcsXG4gICAgICAnLWEnLFxuICAgICAgYCcke3RoaXMuY2RrQXBwfSdgLFxuICAgICAgJy1vJyxcbiAgICAgIGAnJHt0aGlzLmNka091dERpcn0nYCxcbiAgICAgIC4uLk9iamVjdC5lbnRyaWVzKHRoaXMuZ2V0Q29udGV4dChERUZBVUxUX1NZTlRIX09QVElPTlMuY29udGV4dCkpLmZsYXRNYXAoKFtrLCB2XSkgPT4gdHlwZW9mIHYgIT09ICdvYmplY3QnID8gW2AtYyAnJHtrfT0ke3Z9J2BdIDogW10pLFxuICAgIF07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIGEgc25hcHNob3QgYWxyZWFkeSBleGlzdHMgZm9yIHRoaXMgdGVzdFxuICAgKi9cbiAgcHVibGljIGhhc1NuYXBzaG90KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmcy5leGlzdHNTeW5jKHRoaXMuZ29sZGVuU25hcHNob3REaXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXN0IHN1aXRlIGZyb20gdGhlIGV4aXN0aW5nIHNuYXBzaG90XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZXhwZWN0ZWRUZXN0U3VpdGUoKTogUHJvbWlzZTxJbnRlZ1Rlc3RTdWl0ZSB8IExlZ2FjeUludGVnVGVzdFN1aXRlIHwgdW5kZWZpbmVkPiB7XG4gICAgaWYgKCF0aGlzLl9leHBlY3RlZFRlc3RTdWl0ZSAmJiB0aGlzLmhhc1NuYXBzaG90KCkpIHtcbiAgICAgIHRoaXMuX2V4cGVjdGVkVGVzdFN1aXRlID0gYXdhaXQgdGhpcy5sb2FkTWFuaWZlc3QoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2V4cGVjdGVkVGVzdFN1aXRlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFjdHVhbFNuYXBzaG90KCk6IFByb21pc2U8U25hcHNob3RBbmRUZXN0RGVmaW5pdGlvbj4ge1xuICAgIGlmICghdGhpcy5fYWN0dWFsU25hcHNob3QpIHtcbiAgICAgIHRoaXMuX2FjdHVhbFNuYXBzaG90ID0gYXdhaXQgdGhpcy5nZW5lcmF0ZUFjdHVhbFNuYXBzaG90KCk7XG5cbiAgICAgIC8vIENoZWNrIGlmIHRoZSBlbmFibGVMb29rdXBzIHZhbHVlIGhhcyBjaGFuZ2VkIGJldHdlZW4gdGhlIGdvbGRlblxuICAgICAgLy8gc25hcHNob3QgYW5kIHRoZSBhY3R1YWwgc25hcHNob3QuIElmIGl0IGhhcywgd2UgbmVlZCB0byByZS1zeW50aCB0aGVcbiAgICAgIC8vIGFjdHVhbCBzbmFwc2hvdCB3aXRoIHRoZSBuZXcgZW5hYmxlTG9va3VwcyB2YWx1ZS5cbiAgICAgIC8vXG4gICAgICAvLyBTZWUgYHN5bnRoQWN0dWFsU25hcHNob3RgIGZvciBhIGRlc2NyaXB0aW9uIG9mIHdoeSB0aGlzIGlzIG5lY2Vzc2FyeS5cbiAgICAgIGNvbnN0IGFjdHVhbEVuYWJsZUxvb2t1cHMgPSB0aGlzLl9hY3R1YWxTbmFwc2hvdC50ZXN0RGVmaW5pdGlvbi5lbmFibGVMb29rdXBzID8/IGZhbHNlO1xuICAgICAgaWYgKGFjdHVhbEVuYWJsZUxvb2t1cHMgIT09IHRoaXMuX2xlZ2FjeUVuYWJsZUxvb2t1cHMgJiYgdGhpcy5fbGVnYWN5RW5hYmxlTG9va3VwcyAhPT0gJ2RvbnQtY2FyZScpIHtcbiAgICAgICAgdGhpcy5jb25maWd1cmVMZWdhY3lFbmFibGVMb29rdXBzKGFjdHVhbEVuYWJsZUxvb2t1cHMpO1xuICAgICAgICB0aGlzLl9hY3R1YWxTbmFwc2hvdCA9IGF3YWl0IHRoaXMuZ2VuZXJhdGVBY3R1YWxTbmFwc2hvdCgpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fYWN0dWFsU25hcHNob3Q7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRlc3Qgc3VpdGUgZnJvbSB0aGUgbmV3IFwiYWN0dWFsXCIgc25hcHNob3RcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgYWN0dWFsVGVzdFN1aXRlKCk6IFByb21pc2U8SW50ZWdUZXN0U3VpdGUgfCBMZWdhY3lJbnRlZ1Rlc3RTdWl0ZT4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5hY3R1YWxTbmFwc2hvdCgpKS50ZXN0RGVmaW5pdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBpbnRlZyBtYW5pZmVzdCB3aGljaCBjb250YWlucyBpbmZvcm1hdGlvblxuICAgKiBvbiBob3cgdG8gZXhlY3V0ZSB0aGUgdGVzdHNcbiAgICogRmlyc3Qgd2UgdHJ5IGFuZCBsb2FkIHRoZSBtYW5pZmVzdCBmcm9tIHRoZSBpbnRlZyBtYW5pZmVzdCAoaS5lLiBpbnRlZy5qc29uKVxuICAgKiBmcm9tIHRoZSBjbG91ZCBhc3NlbWJseS4gSWYgaXQgZG9lc24ndCBleGlzdCwgdGhlbiB3ZSBmYWxsYmFjayB0byB0aGVcbiAgICogXCJsZWdhY3kgbW9kZVwiIGFuZCBjcmVhdGUgYSBtYW5pZmVzdCBmcm9tIHByYWdtYVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGxvYWRNYW5pZmVzdChkaXI/OiBzdHJpbmcpOiBQcm9taXNlPEludGVnVGVzdFN1aXRlIHwgTGVnYWN5SW50ZWdUZXN0U3VpdGU+IHtcbiAgICBjb25zdCBtYW5pZmVzdCA9IGRpciA/PyB0aGlzLmdvbGRlblNuYXBzaG90RGlyO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0ZXN0U3VpdGUgPSBJbnRlZ1Rlc3RTdWl0ZS5mcm9tUGF0aChtYW5pZmVzdCk7XG4gICAgICByZXR1cm4gdGVzdFN1aXRlO1xuICAgIH0gY2F0Y2ggKG1vZGVybkVycm9yOiBhbnkpIHtcbiAgICAgIC8vIE9ubHkgYXR0ZW1wdCBsZWdhY3kgdGVzdCBjYXNlIGlmIHRoZSBpbnRlZyB0ZXN0IG1hbmlmZXN0IHdhcyBub3QgZm91bmRcbiAgICAgIC8vIEZvciBhbnkgb3RoZXIgZXJyb3JzLCBlLmcuIHdoZW4gcGFyc2luZyB0aGUgbWFuaWZlc3QgZmFpbHMsIHdlIGFib3J0LlxuICAgICAgaWYgKCEobW9kZXJuRXJyb3IgaW5zdGFuY2VvZiBOb01hbmlmZXN0RXJyb3IpKSB7XG4gICAgICAgIHRocm93IG1vZGVybkVycm9yO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5zaG93T3V0cHV0KSB7XG4gICAgICAgIGxvZ2dlci50cmFjZShcbiAgICAgICAgICBcIkZhaWxlZCB0byBsb2FkIGludGVnIHRlc3QgbWFuaWZlc3QgZm9yICclcycuIEF0dGVtcHRpbmcgYXMgZGVwcmVjYXRlZCBsZWdhY3kgdGVzdCBpbnN0ZWFkLiBFcnJvciB3YXM6ICVzXCIsXG4gICAgICAgICAgbWFuaWZlc3QsXG4gICAgICAgICAgbW9kZXJuRXJyb3IubWVzc2FnZSA/PyBTdHJpbmcobW9kZXJuRXJyb3IpLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0ZXN0Q2FzZXMgPSBhd2FpdCBMZWdhY3lJbnRlZ1Rlc3RTdWl0ZS5mcm9tTGVnYWN5KHtcbiAgICAgICAgY2RrOiB0aGlzLmNkayxcbiAgICAgICAgdGVzdE5hbWU6IHRoaXMudGVzdC5ub3JtYWxpemVkVGVzdE5hbWUsXG4gICAgICAgIGludGVnU291cmNlRmlsZVBhdGg6IHRoaXMudGVzdC5maWxlTmFtZSxcbiAgICAgICAgbGlzdE9wdGlvbnM6IHtcbiAgICAgICAgICAuLi50aGlzLmRlZmF1bHRBcmdzLFxuICAgICAgICAgIGFsbDogdHJ1ZSxcbiAgICAgICAgICBhcHA6IHRoaXMuY2RrQXBwLFxuICAgICAgICAgIHByb2ZpbGU6IHRoaXMucHJvZmlsZSxcbiAgICAgICAgICBvdXRwdXQ6IHBhdGgucmVsYXRpdmUodGhpcy5kaXJlY3RvcnksIHRoaXMuY2RrT3V0RGlyKSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5sZWdhY3lDb250ZXh0ID0gTGVnYWN5SW50ZWdUZXN0U3VpdGUuZ2V0UHJhZ21hQ29udGV4dCh0aGlzLnRlc3QuZmlsZU5hbWUpO1xuICAgICAgcmV0dXJuIHRlc3RDYXNlcztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xlYW51cCgpOiB2b2lkIHtcbiAgICBjb25zdCBjZGtPdXRQYXRoID0gdGhpcy5jZGtPdXREaXI7XG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoY2RrT3V0UGF0aCkpIHtcbiAgICAgIGZzLnJlbW92ZVN5bmMoY2RrT3V0UGF0aCk7XG4gICAgfVxuICAgIC8vIENsZWFyIGNhY2hlXG4gICAgdGhpcy5fYWN0dWFsU25hcHNob3QgPSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogSWYgdGhlcmUgYXJlIGFueSBkZXN0cnVjdGl2ZSBjaGFuZ2VzIHRvIGEgc3RhY2sgdGhlbiB0aGlzIHdpbGwgcmVjb3JkXG4gICAqIHRob3NlIGluIHRoZSBtYW5pZmVzdC5qc29uIGZpbGVcbiAgICovXG4gIHByaXZhdGUgcmVuZGVyVHJhY2VEYXRhKCk6IE1hbmlmZXN0VHJhY2Uge1xuICAgIGNvbnN0IHRyYWNlRGF0YTogTWFuaWZlc3RUcmFjZSA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCBkZXN0cnVjdGl2ZUNoYW5nZXMgPSB0aGlzLl9kZXN0cnVjdGl2ZUNoYW5nZXMgPz8gW107XG4gICAgZGVzdHJ1Y3RpdmVDaGFuZ2VzLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICAgIGNvbnN0IHRyYWNlID0gdHJhY2VEYXRhLmdldChjaGFuZ2Uuc3RhY2tOYW1lKTtcbiAgICAgIGlmICh0cmFjZSkge1xuICAgICAgICB0cmFjZS5zZXQoY2hhbmdlLmxvZ2ljYWxJZCwgYCR7REVTVFJVQ1RJVkVfQ0hBTkdFU30gJHtjaGFuZ2UuaW1wYWN0fWApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHJhY2VEYXRhLnNldChjaGFuZ2Uuc3RhY2tOYW1lLCBuZXcgTWFwKFtcbiAgICAgICAgICBbY2hhbmdlLmxvZ2ljYWxJZCwgYCR7REVTVFJVQ1RJVkVfQ0hBTkdFU30gJHtjaGFuZ2UuaW1wYWN0fWBdLFxuICAgICAgICBdKSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHRyYWNlRGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBjYXNlcyB3aGVyZSB3ZSBkbyBub3Qgd2FudCB0byByZXRhaW4gdGhlIGFzc2V0cyxcbiAgICogZm9yIGV4YW1wbGUsIGlmIHRoZSBhc3NldHMgYXJlIHZlcnkgbGFyZ2UuXG4gICAqXG4gICAqIFNpbmNlIGl0IGlzIHBvc3NpYmxlIHRvIGRpc2FibGUgdGhlIHVwZGF0ZSB3b3JrZmxvdyBmb3IgaW5kaXZpZHVhbCB0ZXN0XG4gICAqIGNhc2VzLCB0aGlzIG5lZWRzIHRvIGZpcnN0IGdldCBhIGxpc3Qgb2Ygc3RhY2tzIHRoYXQgaGF2ZSB0aGUgdXBkYXRlIHdvcmtmbG93XG4gICAqIGRpc2FibGVkIGFuZCB0aGVuIGRlbGV0ZSBhc3NldHMgdGhhdCByZWxhdGUgdG8gdGhhdCBzdGFjay4gSXQgZG9lcyB0aGF0XG4gICAqIGJ5IHJlYWRpbmcgdGhlIGFzc2V0IG1hbmlmZXN0IGZvciB0aGUgc3RhY2sgYW5kIGRlbGV0aW5nIHRoZSBhc3NldCBzb3VyY2VcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcmVtb3ZlQXNzZXRzRnJvbVNuYXBzaG90KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHN0YWNrcyA9IChhd2FpdCB0aGlzLmFjdHVhbFRlc3RTdWl0ZSgpKS5nZXRTdGFja3NXaXRob3V0VXBkYXRlV29ya2Zsb3coKSA/PyBbXTtcbiAgICBjb25zdCBtYW5pZmVzdCA9IEFzc2VtYmx5TWFuaWZlc3RSZWFkZXIuZnJvbVBhdGgodGhpcy5nb2xkZW5TbmFwc2hvdERpcik7XG4gICAgY29uc3QgYXNzZXRzID0gZmxhdHRlbihzdGFja3MubWFwKHN0YWNrID0+IHtcbiAgICAgIHJldHVybiBtYW5pZmVzdC5nZXRBc3NldExvY2F0aW9uc0ZvclN0YWNrKHN0YWNrKSA/PyBbXTtcbiAgICB9KSk7XG5cbiAgICBhc3NldHMuZm9yRWFjaChhc3NldCA9PiB7XG4gICAgICBjb25zdCBmaWxlTmFtZSA9IHBhdGguam9pbih0aGlzLmdvbGRlblNuYXBzaG90RGlyLCBhc3NldCk7XG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhmaWxlTmFtZSkpIHtcbiAgICAgICAgaWYgKGZzLmxzdGF0U3luYyhmaWxlTmFtZSkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmMoZmlsZU5hbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZzLnVubGlua1N5bmMoZmlsZU5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHRoZSBhc3NldCBjYWNoZSAoLmNhY2hlLykgZmlsZXMgZnJvbSB0aGUgc25hcHNob3QuXG4gICAqIFRoZXNlIGFyZSBhIGNhY2hlIG9mIHRoZSBhc3NldCB6aXBzLCBidXQgd2UgYXJlIGZpbmUgd2l0aFxuICAgKiByZS16aXBwaW5nIG9uIGRlcGxveVxuICAgKi9cbiAgcHJpdmF0ZSByZW1vdmVBc3NldHNDYWNoZUZyb21TbmFwc2hvdCgpOiB2b2lkIHtcbiAgICBjb25zdCBmaWxlcyA9IGZzLnJlYWRkaXJTeW5jKHRoaXMuZ29sZGVuU25hcHNob3REaXIpO1xuICAgIGZpbGVzLmZvckVhY2goZmlsZSA9PiB7XG4gICAgICBjb25zdCBmaWxlTmFtZSA9IHBhdGguam9pbih0aGlzLmdvbGRlblNuYXBzaG90RGlyLCBmaWxlKTtcbiAgICAgIGlmIChmcy5sc3RhdFN5bmMoZmlsZU5hbWUpLmlzRGlyZWN0b3J5KCkgJiYgZmlsZSA9PT0gJy5jYWNoZScpIHtcbiAgICAgICAgZnMuZW1wdHlEaXJTeW5jKGZpbGVOYW1lKTtcbiAgICAgICAgZnMucm1kaXJTeW5jKGZpbGVOYW1lKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIG5ldyBzbmFwc2hvdC5cbiAgICpcbiAgICogSWYgbG9va3VwcyBhcmUgZW5hYmxlZCwgdGhlbiB3ZSBuZWVkIGNyZWF0ZSB0aGUgc25hcHNob3QgYnkgc3ludGgnaW5nIGFnYWluXG4gICAqIHdpdGggdGhlIGR1bW15IGNvbnRleHQgc28gdGhhdCBlYWNoIHRpbWUgdGhlIHRlc3QgaXMgcnVuIG9uIGRpZmZlcmVudCBtYWNoaW5lc1xuICAgKiAoYW5kIHdpdGggZGlmZmVyZW50IGNvbnRleHQvZW52KSB0aGUgZGlmZiB3aWxsIG5vdCBjaGFuZ2UuXG4gICAqXG4gICAqIElmIGxvb2t1cHMgYXJlIGRpc2FibGVkICh3aGljaCBtZWFucyB0aGUgc3RhY2sgaXMgZW52IGFnbm9zdGljKSB0aGVuIGp1c3QgY29weVxuICAgKiB0aGUgYXNzZW1ibHkgdGhhdCB3YXMgb3V0cHV0IGJ5IHRoZSBkZXBsb3ltZW50XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY3JlYXRlU25hcHNob3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGZzLmV4aXN0c1N5bmModGhpcy5nb2xkZW5TbmFwc2hvdERpcikpIHtcbiAgICAgIGZzLnJlbW92ZVN5bmModGhpcy5nb2xkZW5TbmFwc2hvdERpcik7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogSWYgd2UncmUgY2xldmVyLCB3ZSBzaG91bGQgYmUgYWJsZSB0byByZXVzZSB0aGUgc25hcHNob3QgdGhhdCB3YXNcbiAgICAvLyBnZW5lcmF0ZWQgZHVyaW5nIHRoZSB0ZXN0IGludmFsaWRhdGlvbiBjaGVjayBhbmQgYXZvaWQgdGhlIGJlbG93IHN5bnRoLlxuICAgIC8vIEJ1dCB0aGF0IGdldHMgcnVuIGluIGEgY29tcGxldGVseSBkaWZmZXJlbnQgbGlmZWN5Y2xlIGFuZCBpdCBtaWdodCBub3RcbiAgICAvLyBleGlzdC4gV2UncmUgbm90IGRlYWxpbmcgd2l0aCB0aGF0IGp1c3QgeWV0LlxuICAgIGF3YWl0IHRoaXMuc3ludGhBY3R1YWxTbmFwc2hvdCh0aGlzLmdvbGRlblNuYXBzaG90RGlyKTtcblxuICAgIGF3YWl0IHRoaXMuY2xlYW51cEdvbGRlblNuYXBzaG90KCk7XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybSBzb21lIGNsZWFudXAgc3RlcHMgYWZ0ZXIgdGhlIHNuYXBzaG90IGlzIGNyZWF0ZWRcbiAgICogQW55dGltZSB0aGUgc25hcHNob3QgbmVlZHMgdG8gYmUgbW9kaWZpZWQgYWZ0ZXIgY3JlYXRpb25cbiAgICogdGhlIGxvZ2ljIHNob3VsZCBsaXZlIGhlcmUuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGNsZWFudXBHb2xkZW5TbmFwc2hvdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoZnMuZXhpc3RzU3luYyh0aGlzLmdvbGRlblNuYXBzaG90RGlyKSkge1xuICAgICAgYXdhaXQgdGhpcy5yZW1vdmVBc3NldHNGcm9tU25hcHNob3QoKTtcbiAgICAgIHRoaXMucmVtb3ZlQXNzZXRzQ2FjaGVGcm9tU25hcHNob3QoKTtcbiAgICAgIGNvbnN0IGFzc2VtYmx5ID0gQXNzZW1ibHlNYW5pZmVzdFJlYWRlci5mcm9tUGF0aCh0aGlzLmdvbGRlblNuYXBzaG90RGlyKTtcbiAgICAgIGFzc2VtYmx5LmNsZWFuTWFuaWZlc3QoKTtcbiAgICAgIGFzc2VtYmx5LnJlY29yZFRyYWNlKHRoaXMucmVuZGVyVHJhY2VEYXRhKCkpO1xuICAgIH1cblxuICAgIC8vIGlmIHRoaXMgaXMgYSBsZWdhY3kgdGVzdCB0aGVuIGNyZWF0ZSBhbiBpbnRlZyBtYW5pZmVzdFxuICAgIC8vIGluIHRoZSBzbmFwc2hvdCBkaXJlY3Rvcnkgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIHRoZVxuICAgIC8vIHVwZGF0ZSB3b3JrZmxvdy4gU2F2ZSBhbnkgbGVnYWN5Q29udGV4dCBhcyB3ZWxsIHNvIHRoYXQgaXQgY2FuIGJlIHJlYWRcbiAgICAvLyB0aGUgbmV4dCB0aW1lXG4gICAgY29uc3QgYWN0dWFsVGVzdFN1aXRlID0gYXdhaXQgdGhpcy5hY3R1YWxUZXN0U3VpdGUoKTtcbiAgICBpZiAoYWN0dWFsVGVzdFN1aXRlLnR5cGUgPT09ICdsZWdhY3ktdGVzdC1zdWl0ZScpIHtcbiAgICAgIChhY3R1YWxUZXN0U3VpdGUgYXMgTGVnYWN5SW50ZWdUZXN0U3VpdGUpLnNhdmVNYW5pZmVzdCh0aGlzLmdvbGRlblNuYXBzaG90RGlyLCB0aGlzLmxlZ2FjeUNvbnRleHQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRDb250ZXh0KGFkZGl0aW9uYWxDb250ZXh0PzogUmVjb3JkPHN0cmluZywgYW55Pik6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jdXJyZW50bHlSZWNvbW1lbmRlZEF3c0Nka0xpYkZsYWdzKCksXG4gICAgICAuLi50aGlzLmxlZ2FjeUNvbnRleHQsXG4gICAgICAuLi5hZGRpdGlvbmFsQ29udGV4dCxcblxuICAgICAgLy8gRG9uJ3QgcmVjb3JkIGNyZWF0aW9uIHN0YWNrIHRyYWNlcyBpbiB0aGUgc25hcHNob3QsIHNpbmNlIHRoZXkganVzdCB0YWtlIHVwIHNwYWNlIGFuZCBhcmUgbmV2ZXIgZGV0ZXJtaW5pc3RpYy5cbiAgICAgICdhd3M6Y2RrOmRpc2FibGUtY3JlYXRpb24tc3RhY2stdHJhY2VzJzogdHJ1ZSxcblxuICAgICAgLy8gV2Ugb3JpZ2luYWxseSBoYWQgUExBTk5FRCB0byBzZXQgdGhpcyB0byBbJ2F3cycsICdhd3MtY24nXSwgYnV0IGR1ZSB0byBhIHByb2dyYW1taW5nIG1pc3Rha2VcbiAgICAgIC8vIGl0IHdhcyBzZXQgdG8gZXZlcnl0aGluZy4gSW4gdGhpcyBQUiwgc2V0IGl0IHRvIGV2ZXJ5dGhpbmcgdG8gbm90IG1lc3MgdXAgYWxsIHRoZSBzbmFwc2hvdHMuXG4gICAgICAnQGF3cy1jZGsvY29yZTp0YXJnZXQtcGFydGl0aW9ucyc6IHVuZGVmaW5lZCxcblxuICAgICAgLyogLS0tLS0tLS0tLS0tLS0tLSBUSEUgRlVUVVJFIExJVkVTIEJFTE9XLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgLy8gUmVzdHJpY3RpbmcgdG8gdGhlc2UgdGFyZ2V0IHBhcnRpdGlvbnMgbWFrZXMgbW9zdCBzZXJ2aWNlIHByaW5jaXBhbHMgc3ludGhlc2l6ZSB0b1xuICAgICAgLy8gYHNlcnZpY2UuJHtVUkxfU1VGRklYfWAsIHdoaWNoIGlzIHRlY2huaWNhbGx5ICppbmNvcnJlY3QqIChpdCdzIG9ubHkgYGFtYXpvbmF3cy5jb21gXG4gICAgICAvLyBvciBgYW1hem9uYXdzLmNvbS5jbmAsIG5ldmVyIFVybFN1ZmZpeCBmb3IgYW55IG9mIHRoZSByZXN0cmljdGVkIHJlZ2lvbnMpIGJ1dCBpdCdzIHdoYXRcbiAgICAgIC8vIG1vc3QgZXhpc3RpbmcgaW50ZWcgdGVzdHMgY29udGFpbiwgYW5kIHdlIHdhbnQgdG8gZGlzdHVyYiBhcyBmZXcgYXMgcG9zc2libGUuXG4gICAgICAvLyBbVEFSR0VUX1BBUlRJVElPTlNdOiBbJ2F3cycsICdhd3MtY24nXSxcbiAgICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0gRU5EIE9GIFRIRSBGVVRVUkUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuICAgIH07XG4gIH1cbn1cblxuLy8gRGVmYXVsdCBjb250ZXh0IHdlIHJ1biBhbGwgaW50ZWcgdGVzdHMgd2l0aCwgc28gdGhleSBkb24ndCBkZXBlbmQgb24gdGhlXG4vLyBhY2NvdW50IG9mIHRoZSBleGVyY2lzaW5nIHVzZXIuXG5leHBvcnQgY29uc3QgREVGQVVMVF9TWU5USF9PUFRJT05TID0ge1xuICBjb250ZXh0OiB7XG4gICAgW0FWQUlMQUJJTElUWV9aT05FX0ZBTExCQUNLX0NPTlRFWFRfS0VZXTogWyd0ZXN0LXJlZ2lvbi0xYScsICd0ZXN0LXJlZ2lvbi0xYicsICd0ZXN0LXJlZ2lvbi0xYyddLFxuICAgICdhdmFpbGFiaWxpdHktem9uZXM6YWNjb3VudD0xMjM0NTY3ODpyZWdpb249dGVzdC1yZWdpb24nOiBbJ3Rlc3QtcmVnaW9uLTFhJywgJ3Rlc3QtcmVnaW9uLTFiJywgJ3Rlc3QtcmVnaW9uLTFjJ10sXG4gICAgJ3NzbTphY2NvdW50PTEyMzQ1Njc4OnBhcmFtZXRlck5hbWU9L2F3cy9zZXJ2aWNlL2FtaS1hbWF6b24tbGludXgtbGF0ZXN0L2Ftem4tYW1pLWh2bS14ODZfNjQtZ3AyOnJlZ2lvbj10ZXN0LXJlZ2lvbic6ICdhbWktMTIzNCcsXG4gICAgJ3NzbTphY2NvdW50PTEyMzQ1Njc4OnBhcmFtZXRlck5hbWU9L2F3cy9zZXJ2aWNlL2FtaS1hbWF6b24tbGludXgtbGF0ZXN0L2Ftem4yLWFtaS1odm0teDg2XzY0LWdwMjpyZWdpb249dGVzdC1yZWdpb24nOiAnYW1pLTEyMzQnLFxuICAgICdzc206YWNjb3VudD0xMjM0NTY3ODpwYXJhbWV0ZXJOYW1lPS9hd3Mvc2VydmljZS9lY3Mvb3B0aW1pemVkLWFtaS9hbWF6b24tbGludXgvcmVjb21tZW5kZWQ6cmVnaW9uPXRlc3QtcmVnaW9uJzogJ3tcImltYWdlX2lkXCI6IFwiYW1pLTEyMzRcIn0nLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAc3R5bGlzdGljL21heC1sZW5cbiAgICAnYW1pOmFjY291bnQ9MTIzNDU2Nzg6ZmlsdGVycy5pbWFnZS10eXBlLjA9bWFjaGluZTpmaWx0ZXJzLm5hbWUuMD1hbXpuLWFtaS12cGMtbmF0LSo6ZmlsdGVycy5zdGF0ZS4wPWF2YWlsYWJsZTpvd25lcnMuMD1hbWF6b246cmVnaW9uPXRlc3QtcmVnaW9uJzogJ2FtaS0xMjM0JyxcbiAgICAndnBjLXByb3ZpZGVyOmFjY291bnQ9MTIzNDU2Nzg6ZmlsdGVyLmlzRGVmYXVsdD10cnVlOnJlZ2lvbj10ZXN0LXJlZ2lvbjpyZXR1cm5Bc3ltbWV0cmljU3VibmV0cz10cnVlJzoge1xuICAgICAgdnBjSWQ6ICd2cGMtNjA5MDA5MDUnLFxuICAgICAgc3VibmV0R3JvdXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnUHVibGljJyxcbiAgICAgICAgICBuYW1lOiAnUHVibGljJyxcbiAgICAgICAgICBzdWJuZXRzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHN1Ym5ldElkOiAnc3VibmV0LWUxOTQ1NWNhJyxcbiAgICAgICAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZTogJ3VzLWVhc3QtMWEnLFxuICAgICAgICAgICAgICByb3V0ZVRhYmxlSWQ6ICdydGItZTE5NDU1Y2EnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc3VibmV0SWQ6ICdzdWJuZXQtZTBjMjQ3OTcnLFxuICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lOiAndXMtZWFzdC0xYicsXG4gICAgICAgICAgICAgIHJvdXRlVGFibGVJZDogJ3J0Yi1lMGMyNDc5NycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBzdWJuZXRJZDogJ3N1Ym5ldC1jY2Q3NzM5NScsXG4gICAgICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmU6ICd1cy1lYXN0LTFjJyxcbiAgICAgICAgICAgICAgcm91dGVUYWJsZUlkOiAncnRiLWNjZDc3Mzk1JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAgZW52OiB7XG4gICAgQ0RLX0lOVEVHX0FDQ09VTlQ6ICcxMjM0NTY3OCcsXG4gICAgQ0RLX0lOVEVHX1JFR0lPTjogJ3Rlc3QtcmVnaW9uJyxcbiAgICBDREtfSU5URUdfSE9TVEVEX1pPTkVfSUQ6ICdaMjNBQkM0WFlaTDA1QicsXG4gICAgQ0RLX0lOVEVHX0hPU1RFRF9aT05FX05BTUU6ICdleGFtcGxlLmNvbScsXG4gICAgQ0RLX0lOVEVHX0RPTUFJTl9OQU1FOiAnKi5leGFtcGxlLmNvbScsXG4gICAgQ0RLX0lOVEVHX0NFUlRfQVJOOiAnYXJuOmF3czphY206dGVzdC1yZWdpb246MTIzNDU2Nzg6Y2VydGlmaWNhdGUvODY0NjgyMDktYTI3Mi01OTVkLWI4MzEtMGVmYjY0MjEyNjV6JyxcbiAgICBDREtfSU5URUdfU1VCTkVUX0lEOiAnc3VibmV0LTBkZmYxYTM5OWQ4ZjZmOTJjJyxcbiAgfSxcbn07XG5cbi8qKlxuICogUmV0dXJuIHRoZSBjdXJyZW50bHkgcmVjb21tZW5kZWQgZmxhZ3MgZm9yIGBhd3MtY2RrLWxpYmAuXG4gKlxuICogVGhlc2UgaGF2ZSBiZWVuIGJ1aWx0IGludG8gdGhlIENMSSBhdCBidWlsZCB0aW1lLiBJZiB0aGlzIGV2ZXIgZ2V0cyBjaGFuZ2VkXG4gKiBiYWNrIHRvIGEgZHluYW1pYyBsb2FkLCByZW1lbWJlciB0aGF0IHRoaXMgc291cmNlIGZpbGUgbWF5IGJlIGJ1bmRsZWQgaW50b1xuICogYSBKYXZhU2NyaXB0IGJ1bmRsZSwgYW5kIGBfX2Rpcm5hbWVgIG1pZ2h0IG5vdCBwb2ludCB3aGVyZSB5b3UgdGhpbmsgaXQgZG9lcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGN1cnJlbnRseVJlY29tbWVuZGVkQXdzQ2RrTGliRmxhZ3MoKSB7XG4gIHJldHVybiByZWNvbW1lbmRlZEZsYWdzRmlsZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbmFwc2hvdEFuZFRlc3REZWZpbml0aW9uIHtcbiAgcmVhZG9ubHkgdGVzdERlZmluaXRpb246IEludGVnVGVzdFN1aXRlIHwgTGVnYWN5SW50ZWdUZXN0U3VpdGU7XG4gIHJlYWRvbmx5IHNuYXBzaG90RGlyZWN0b3J5OiBzdHJpbmc7XG59XG4iXX0=
|
package/lib/runner/engine.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CdkIntegHelperOptions } from './cdk-integ-helper';
|
|
2
2
|
import { ToolkitLibRunnerEngine } from '../engines/toolkit-lib';
|
|
3
3
|
/**
|
|
4
4
|
* Creates the engine for running integration tests.
|
|
5
5
|
*
|
|
6
6
|
* Only the toolkit-lib engine is supported.
|
|
7
7
|
*/
|
|
8
|
-
export declare function makeEngine(options:
|
|
8
|
+
export declare function makeEngine(options: EngineOptions): ToolkitLibRunnerEngine;
|
|
9
|
+
export type EngineOptions = Pick<CdkIntegHelperOptions, 'test' | 'showOutput' | 'env' | 'region' | 'profile' | 'proxy' | 'caBundlePath'>;
|
|
9
10
|
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,sBAAsB,CAUzE;AAED,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,cAAc,CAAC,CAAC"}
|
package/lib/runner/engine.js
CHANGED
|
@@ -18,4 +18,4 @@ function makeEngine(options) {
|
|
|
18
18
|
caBundlePath: options.caBundlePath,
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZW5naW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsZ0NBVUM7QUFqQkQsd0RBQWdFO0FBRWhFOzs7O0dBSUc7QUFDSCxTQUFnQixVQUFVLENBQUMsT0FBc0I7SUFDL0MsT0FBTyxJQUFJLG9DQUFzQixDQUFDO1FBQ2hDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUztRQUN4QyxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7UUFDOUIsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO1FBQ2hCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtRQUN0QixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87UUFDeEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1FBQ3BCLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtLQUNuQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDZGtJbnRlZ0hlbHBlck9wdGlvbnMgfSBmcm9tICcuL2Nkay1pbnRlZy1oZWxwZXInO1xuaW1wb3J0IHsgVG9vbGtpdExpYlJ1bm5lckVuZ2luZSB9IGZyb20gJy4uL2VuZ2luZXMvdG9vbGtpdC1saWInO1xuXG4vKipcbiAqIENyZWF0ZXMgdGhlIGVuZ2luZSBmb3IgcnVubmluZyBpbnRlZ3JhdGlvbiB0ZXN0cy5cbiAqXG4gKiBPbmx5IHRoZSB0b29sa2l0LWxpYiBlbmdpbmUgaXMgc3VwcG9ydGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFrZUVuZ2luZShvcHRpb25zOiBFbmdpbmVPcHRpb25zKTogVG9vbGtpdExpYlJ1bm5lckVuZ2luZSB7XG4gIHJldHVybiBuZXcgVG9vbGtpdExpYlJ1bm5lckVuZ2luZSh7XG4gICAgd29ya2luZ0RpcmVjdG9yeTogb3B0aW9ucy50ZXN0LmRpcmVjdG9yeSxcbiAgICBzaG93T3V0cHV0OiBvcHRpb25zLnNob3dPdXRwdXQsXG4gICAgZW52OiBvcHRpb25zLmVudixcbiAgICByZWdpb246IG9wdGlvbnMucmVnaW9uLFxuICAgIHByb2ZpbGU6IG9wdGlvbnMucHJvZmlsZSxcbiAgICBwcm94eTogb3B0aW9ucy5wcm94eSxcbiAgICBjYUJ1bmRsZVBhdGg6IG9wdGlvbnMuY2FCdW5kbGVQYXRoLFxuICB9KTtcbn1cblxuZXhwb3J0IHR5cGUgRW5naW5lT3B0aW9ucyA9IFBpY2s8Q2RrSW50ZWdIZWxwZXJPcHRpb25zLCAndGVzdCcgfCAnc2hvd091dHB1dCcgfCAnZW52JyB8ICdyZWdpb24nIHwgJ3Byb2ZpbGUnIHwgJ3Byb3h5JyB8ICdjYUJ1bmRsZVBhdGgnPjtcbiJdfQ==
|
package/lib/runner/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC"}
|
package/lib/runner/index.js
CHANGED
|
@@ -14,9 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./cdk-integ-helper"), exports);
|
|
18
18
|
__exportStar(require("./integ-test-suite"), exports);
|
|
19
19
|
__exportStar(require("./integ-test-runner"), exports);
|
|
20
20
|
__exportStar(require("./snapshot-test-runner"), exports);
|
|
21
21
|
__exportStar(require("./integration-tests"), exports);
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQW1DO0FBQ25DLHFEQUFtQztBQUNuQyxzREFBb0M7QUFDcEMseURBQXVDO0FBQ3ZDLHNEQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2RrLWludGVnLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2ludGVnLXRlc3Qtc3VpdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlZy10ZXN0LXJ1bm5lcic7XG5leHBvcnQgKiBmcm9tICcuL3NuYXBzaG90LXRlc3QtcnVubmVyJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZWdyYXRpb24tdGVzdHMnO1xuIl19
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { TestCase } from '@aws-cdk/cloud-assembly-schema';
|
|
2
|
-
import type {
|
|
3
|
-
import { IntegRunner } from './runner-base';
|
|
2
|
+
import type { CdkIntegHelperOptions } from './cdk-integ-helper';
|
|
4
3
|
import type { DestructiveChange, AssertionResults } from '../workers/common';
|
|
5
4
|
export interface CommonOptions {
|
|
6
5
|
/**
|
|
@@ -83,8 +82,17 @@ export interface RunOptions extends CommonOptions {
|
|
|
83
82
|
* An integration test runner that orchestrates executing
|
|
84
83
|
* integration tests
|
|
85
84
|
*/
|
|
86
|
-
export declare class IntegTestRunner
|
|
87
|
-
|
|
85
|
+
export declare class IntegTestRunner {
|
|
86
|
+
private readonly helper;
|
|
87
|
+
constructor(options: CdkIntegHelperOptions, destructiveChanges?: DestructiveChange[]);
|
|
88
|
+
/**
|
|
89
|
+
* Compatibility shim with old API
|
|
90
|
+
*/
|
|
91
|
+
get testName(): string;
|
|
92
|
+
/**
|
|
93
|
+
* Compatibility shim with old API
|
|
94
|
+
*/
|
|
95
|
+
private actualTestSuite;
|
|
88
96
|
actualTests(): Promise<{
|
|
89
97
|
[testName: string]: TestCase;
|
|
90
98
|
} | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integ-test-runner.d.ts","sourceRoot":"","sources":["integ-test-runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAM/E,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"integ-test-runner.d.ts","sourceRoot":"","sources":["integ-test-runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAM/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAKhE,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAmB,MAAM,mBAAmB,CAAC;AAkB9F,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,aAAa;IAC/C;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;;;;;OAQG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAElC;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;;;OAOG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACxC;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAC5B,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,EAAE,iBAAiB,EAAE;IAepF;;OAEG;IACH,IAAW,QAAQ,WAElB;IAED;;OAEG;YACW,eAAe;IAIhB,WAAW,IAAI,OAAO,CAAC;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAA;KAAE,GAAG,SAAS,CAAC;IAe1E,oBAAoB,IAAI,IAAI;IAQnC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAgB7B;;;OAGG;YACW,cAAc;IAgD5B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,gBAAgB;IAgDxB;;;;OAIG;IACU,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCjE;;;;;;;;;;OAUG;IACU,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IA0EzF;;OAEG;YACW,OAAO;YA6BP,KAAK;IA0InB;;;OAGG;YACW,MAAM;IA8GpB;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAiC/B;;OAEG;IACH,OAAO,CAAC,UAAU;CAYnB"}
|