aws-cdk
Version:
CDK Toolkit, the command line tool for CDK apps
56 lines • 7.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/* eslint-disable import/order */
const serialize_1 = require("../lib/serialize");
// Preferred quote of the YAML library
const q = '"';
test('quote the word "ON"', () => {
// NON NEGOTIABLE! If not quoted, will be interpreted as the boolean TRUE
// eslint-disable-next-line no-console
const output = (0, serialize_1.toYAML)({
notABoolean: 'ON',
});
expect(output.trim()).toEqual(`notABoolean: ${q}ON${q}`);
});
test('quote number-like strings with a leading 0', () => {
const output = (0, serialize_1.toYAML)({
leadingZero: '012345',
});
expect(output.trim()).toEqual(`leadingZero: ${q}012345${q}`);
});
test('do not quote octal numbers that arent really octal', () => {
// This is a contentious one, and something that might have changed in YAML1.2 vs YAML1.1
//
// One could make the argument that a sequence of characters that couldn't ever
// be an octal value doesn't need to be quoted, and pyyaml parses it correctly.
//
// However, CloudFormation's parser interprets it as a decimal number (eating the
// leading 0) if it's unquoted, so that's the behavior we're testing for.
const output = (0, serialize_1.toYAML)({
leadingZero: '0123456789',
});
expect(output.trim()).toEqual(`leadingZero: ${q}0123456789${q}`);
});
test('validate that our YAML correctly emits quoted colons in a list', () => {
// Must be quoted otherwise it's not valid YAML.
//
// 'yaml' fails this.
const output = (0, serialize_1.toYAML)({
colons: ['arn', ':', 'aws'],
});
expect(output.trim()).toEqual([
'colons:',
' - arn',
` - ${q}:${q}`,
' - aws',
].join('\n'));
});
test('validate emission of very long lines', () => {
const template = {
Field: ' very long line that starts with a space. very long line that starts with a space. start on a new line',
};
const output = (0, serialize_1.toYAML)(template);
const parsed = (0, serialize_1.deserializeStructure)(output);
expect(template).toEqual(parsed);
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWFtbC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsieWFtbC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUNBQWlDO0FBQ2pDLGdEQUFnRTtBQUVoRSxzQ0FBc0M7QUFDdEMsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBRWQsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRTtJQUMvQix5RUFBeUU7SUFFekUsc0NBQXNDO0lBQ3RDLE1BQU0sTUFBTSxHQUFHLElBQUEsa0JBQU0sRUFBQztRQUNwQixXQUFXLEVBQUUsSUFBSTtLQUNsQixDQUFDLENBQUM7SUFFSCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyw0Q0FBNEMsRUFBRSxHQUFHLEVBQUU7SUFDdEQsTUFBTSxNQUFNLEdBQUcsSUFBQSxrQkFBTSxFQUFDO1FBQ3BCLFdBQVcsRUFBRSxRQUFRO0tBQ3RCLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQy9ELENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLG9EQUFvRCxFQUFFLEdBQUcsRUFBRTtJQUM5RCx5RkFBeUY7SUFDekYsRUFBRTtJQUNGLCtFQUErRTtJQUMvRSwrRUFBK0U7SUFDL0UsRUFBRTtJQUNGLGlGQUFpRjtJQUNqRix5RUFBeUU7SUFFekUsTUFBTSxNQUFNLEdBQUcsSUFBQSxrQkFBTSxFQUFDO1FBQ3BCLFdBQVcsRUFBRSxZQUFZO0tBQzFCLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ25FLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLGdFQUFnRSxFQUFFLEdBQUcsRUFBRTtJQUMxRSxnREFBZ0Q7SUFDaEQsRUFBRTtJQUNGLHFCQUFxQjtJQUVyQixNQUFNLE1BQU0sR0FBRyxJQUFBLGtCQUFNLEVBQUM7UUFDcEIsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUM7S0FDNUIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUM1QixTQUFTO1FBQ1QsU0FBUztRQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNmLFNBQVM7S0FDVixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2hCLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLHNDQUFzQyxFQUFFLEdBQUcsRUFBRTtJQUNoRCxNQUFNLFFBQVEsR0FBRztRQUNmLEtBQUssRUFBRSx3R0FBd0c7S0FDaEgsQ0FBQztJQUVGLE1BQU0sTUFBTSxHQUFHLElBQUEsa0JBQU0sRUFBQyxRQUFRLENBQUMsQ0FBQztJQUVoQyxNQUFNLE1BQU0sR0FBRyxJQUFBLGdDQUFvQixFQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTVDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDbkMsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvb3JkZXIgKi9cbmltcG9ydCB7IGRlc2VyaWFsaXplU3RydWN0dXJlLCB0b1lBTUwgfSBmcm9tICcuLi9saWIvc2VyaWFsaXplJztcblxuLy8gUHJlZmVycmVkIHF1b3RlIG9mIHRoZSBZQU1MIGxpYnJhcnlcbmNvbnN0IHEgPSAnXCInO1xuXG50ZXN0KCdxdW90ZSB0aGUgd29yZCBcIk9OXCInLCAoKSA9PiB7XG4gIC8vIE5PTiBORUdPVElBQkxFISBJZiBub3QgcXVvdGVkLCB3aWxsIGJlIGludGVycHJldGVkIGFzIHRoZSBib29sZWFuIFRSVUVcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICBjb25zdCBvdXRwdXQgPSB0b1lBTUwoe1xuICAgIG5vdEFCb29sZWFuOiAnT04nLFxuICB9KTtcblxuICBleHBlY3Qob3V0cHV0LnRyaW0oKSkudG9FcXVhbChgbm90QUJvb2xlYW46ICR7cX1PTiR7cX1gKTtcbn0pO1xuXG50ZXN0KCdxdW90ZSBudW1iZXItbGlrZSBzdHJpbmdzIHdpdGggYSBsZWFkaW5nIDAnLCAoKSA9PiB7XG4gIGNvbnN0IG91dHB1dCA9IHRvWUFNTCh7XG4gICAgbGVhZGluZ1plcm86ICcwMTIzNDUnLFxuICB9KTtcblxuICBleHBlY3Qob3V0cHV0LnRyaW0oKSkudG9FcXVhbChgbGVhZGluZ1plcm86ICR7cX0wMTIzNDUke3F9YCk7XG59KTtcblxudGVzdCgnZG8gbm90IHF1b3RlIG9jdGFsIG51bWJlcnMgdGhhdCBhcmVudCByZWFsbHkgb2N0YWwnLCAoKSA9PiB7XG4gIC8vIFRoaXMgaXMgYSBjb250ZW50aW91cyBvbmUsIGFuZCBzb21ldGhpbmcgdGhhdCBtaWdodCBoYXZlIGNoYW5nZWQgaW4gWUFNTDEuMiB2cyBZQU1MMS4xXG4gIC8vXG4gIC8vIE9uZSBjb3VsZCBtYWtlIHRoZSBhcmd1bWVudCB0aGF0IGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGNvdWxkbid0IGV2ZXJcbiAgLy8gYmUgYW4gb2N0YWwgdmFsdWUgZG9lc24ndCBuZWVkIHRvIGJlIHF1b3RlZCwgYW5kIHB5eWFtbCBwYXJzZXMgaXQgY29ycmVjdGx5LlxuICAvL1xuICAvLyBIb3dldmVyLCBDbG91ZEZvcm1hdGlvbidzIHBhcnNlciBpbnRlcnByZXRzIGl0IGFzIGEgZGVjaW1hbCBudW1iZXIgKGVhdGluZyB0aGVcbiAgLy8gbGVhZGluZyAwKSBpZiBpdCdzIHVucXVvdGVkLCBzbyB0aGF0J3MgdGhlIGJlaGF2aW9yIHdlJ3JlIHRlc3RpbmcgZm9yLlxuXG4gIGNvbnN0IG91dHB1dCA9IHRvWUFNTCh7XG4gICAgbGVhZGluZ1plcm86ICcwMTIzNDU2Nzg5JyxcbiAgfSk7XG5cbiAgZXhwZWN0KG91dHB1dC50cmltKCkpLnRvRXF1YWwoYGxlYWRpbmdaZXJvOiAke3F9MDEyMzQ1Njc4OSR7cX1gKTtcbn0pO1xuXG50ZXN0KCd2YWxpZGF0ZSB0aGF0IG91ciBZQU1MIGNvcnJlY3RseSBlbWl0cyBxdW90ZWQgY29sb25zIGluIGEgbGlzdCcsICgpID0+IHtcbiAgLy8gTXVzdCBiZSBxdW90ZWQgb3RoZXJ3aXNlIGl0J3Mgbm90IHZhbGlkIFlBTUwuXG4gIC8vXG4gIC8vICd5YW1sJyBmYWlscyB0aGlzLlxuXG4gIGNvbnN0IG91dHB1dCA9IHRvWUFNTCh7XG4gICAgY29sb25zOiBbJ2FybicsICc6JywgJ2F3cyddLFxuICB9KTtcblxuICBleHBlY3Qob3V0cHV0LnRyaW0oKSkudG9FcXVhbChbXG4gICAgJ2NvbG9uczonLFxuICAgICcgIC0gYXJuJyxcbiAgICBgICAtICR7cX06JHtxfWAsXG4gICAgJyAgLSBhd3MnLFxuICBdLmpvaW4oJ1xcbicpKTtcbn0pO1xuXG50ZXN0KCd2YWxpZGF0ZSBlbWlzc2lvbiBvZiB2ZXJ5IGxvbmcgbGluZXMnLCAoKSA9PiB7XG4gIGNvbnN0IHRlbXBsYXRlID0ge1xuICAgIEZpZWxkOiAnIHZlcnkgbG9uZyBsaW5lIHRoYXQgc3RhcnRzIHdpdGggYSBzcGFjZS4gdmVyeSBsb25nIGxpbmUgdGhhdCBzdGFydHMgd2l0aCBhIHNwYWNlLiBzdGFydCBvbiBhIG5ldyBsaW5lJyxcbiAgfTtcblxuICBjb25zdCBvdXRwdXQgPSB0b1lBTUwodGVtcGxhdGUpO1xuXG4gIGNvbnN0IHBhcnNlZCA9IGRlc2VyaWFsaXplU3RydWN0dXJlKG91dHB1dCk7XG5cbiAgZXhwZWN0KHRlbXBsYXRlKS50b0VxdWFsKHBhcnNlZCk7XG59KTtcbiJdfQ==