@aws-cdk-testing/cli-integ
Version:
Integration tests for the AWS CDK CLI
29 lines • 4.24 kB
JavaScript
;
/**
* Custom Jest matchers for CLI integration tests.
*/
Object.defineProperty(exports, "__esModule", { value: true });
function matches(line, pattern) {
return typeof pattern === 'string' ? line.includes(pattern) : pattern.test(line);
}
expect.extend({
toHaveNextLineMatching(received, linePattern, expected) {
const lines = received.split('\n');
const idx = lines.findIndex(l => matches(l, linePattern));
if (idx < 0) {
return {
pass: false,
message: () => `Expected output to contain a line matching ${linePattern}, but none was found`,
};
}
const nextLine = lines[idx + 1] ?? '';
const pass = matches(nextLine, expected);
return {
pass,
message: () => pass
? `Expected line after ${linePattern} not to match ${expected}, but it did:\n ${nextLine}`
: `Expected line after ${linePattern} to match ${expected}, but got:\n ${nextLine}`,
};
},
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFzc2VydGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOztBQWNILFNBQVMsT0FBTyxDQUFDLElBQVksRUFBRSxPQUF3QjtJQUNyRCxPQUFPLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNuRixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNaLHNCQUFzQixDQUFDLFFBQWdCLEVBQUUsV0FBNEIsRUFBRSxRQUF5QjtRQUM5RixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFFMUQsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDWixPQUFPO2dCQUNMLElBQUksRUFBRSxLQUFLO2dCQUNYLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyw4Q0FBOEMsV0FBVyxzQkFBc0I7YUFDL0YsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXpDLE9BQU87WUFDTCxJQUFJO1lBQ0osT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUk7Z0JBQ2pCLENBQUMsQ0FBQyx1QkFBdUIsV0FBVyxpQkFBaUIsUUFBUSxvQkFBb0IsUUFBUSxFQUFFO2dCQUMzRixDQUFDLENBQUMsdUJBQXVCLFdBQVcsYUFBYSxRQUFRLGlCQUFpQixRQUFRLEVBQUU7U0FDdkYsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEN1c3RvbSBKZXN0IG1hdGNoZXJzIGZvciBDTEkgaW50ZWdyYXRpb24gdGVzdHMuXG4gKi9cblxuZGVjbGFyZSBnbG9iYWwge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZVxuICBuYW1lc3BhY2UgamVzdCB7XG4gICAgaW50ZXJmYWNlIE1hdGNoZXJzPFI+IHtcbiAgICAgIC8qKlxuICAgICAgICogQXNzZXJ0IHRoYXQgdGhlIGxpbmUgZm9sbG93aW5nIGEgbWF0Y2hpbmcgbGluZSBtYXRjaGVzIHRoZSBleHBlY3RlZCBwYXR0ZXJuLlxuICAgICAgICovXG4gICAgICB0b0hhdmVOZXh0TGluZU1hdGNoaW5nKGxpbmVQYXR0ZXJuOiBzdHJpbmcgfCBSZWdFeHAsIGV4cGVjdGVkOiBzdHJpbmcgfCBSZWdFeHApOiBSO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBtYXRjaGVzKGxpbmU6IHN0cmluZywgcGF0dGVybjogc3RyaW5nIHwgUmVnRXhwKTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlb2YgcGF0dGVybiA9PT0gJ3N0cmluZycgPyBsaW5lLmluY2x1ZGVzKHBhdHRlcm4pIDogcGF0dGVybi50ZXN0KGxpbmUpO1xufVxuXG5leHBlY3QuZXh0ZW5kKHtcbiAgdG9IYXZlTmV4dExpbmVNYXRjaGluZyhyZWNlaXZlZDogc3RyaW5nLCBsaW5lUGF0dGVybjogc3RyaW5nIHwgUmVnRXhwLCBleHBlY3RlZDogc3RyaW5nIHwgUmVnRXhwKSB7XG4gICAgY29uc3QgbGluZXMgPSByZWNlaXZlZC5zcGxpdCgnXFxuJyk7XG4gICAgY29uc3QgaWR4ID0gbGluZXMuZmluZEluZGV4KGwgPT4gbWF0Y2hlcyhsLCBsaW5lUGF0dGVybikpO1xuXG4gICAgaWYgKGlkeCA8IDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhc3M6IGZhbHNlLFxuICAgICAgICBtZXNzYWdlOiAoKSA9PiBgRXhwZWN0ZWQgb3V0cHV0IHRvIGNvbnRhaW4gYSBsaW5lIG1hdGNoaW5nICR7bGluZVBhdHRlcm59LCBidXQgbm9uZSB3YXMgZm91bmRgLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXh0TGluZSA9IGxpbmVzW2lkeCArIDFdID8/ICcnO1xuICAgIGNvbnN0IHBhc3MgPSBtYXRjaGVzKG5leHRMaW5lLCBleHBlY3RlZCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGFzcyxcbiAgICAgIG1lc3NhZ2U6ICgpID0+IHBhc3NcbiAgICAgICAgPyBgRXhwZWN0ZWQgbGluZSBhZnRlciAke2xpbmVQYXR0ZXJufSBub3QgdG8gbWF0Y2ggJHtleHBlY3RlZH0sIGJ1dCBpdCBkaWQ6XFxuICAke25leHRMaW5lfWBcbiAgICAgICAgOiBgRXhwZWN0ZWQgbGluZSBhZnRlciAke2xpbmVQYXR0ZXJufSB0byBtYXRjaCAke2V4cGVjdGVkfSwgYnV0IGdvdDpcXG4gICR7bmV4dExpbmV9YCxcbiAgICB9O1xuICB9LFxufSk7XG4iXX0=