@orchestrator/ngx-testing
Version:
Testing utilities for Angular projects
56 lines • 7.46 kB
JavaScript
/**
* @internal
*/
export function genHostCompTpl(tag, io, content = '', bindings) {
const inputsTpl = genInputsTpl(io.inputs);
const outputsTpl = genOutputsTpl(io.outputs);
const bindingsTpl = bindings
? typeof bindings === 'string'
? `let-${bindings}`
: Object.keys(bindings)
.map(key => `let-${key}${bindings[key] ? `="${bindings[key]}"` : ''}`)
.join(' ')
: '';
return `<${tag} ${inputsTpl} ${outputsTpl} ${bindingsTpl}>${content}</${tag}>`;
}
/**
* @internal
*/
export function genHostCompTplStar(binding, tag, io, content = '', bindings) {
const inputsTpl = genInputsTplStar(binding, io.inputs, bindings);
return `<${tag} ${inputsTpl}>${content}</${tag}>`;
}
/**
* @internal
*/
export function genInputsTplStar(binding, inputs, bindings) {
const inputsTpl = inputs
.filter(({ templateName }) => templateName !== binding)
.map(({ templateName, propName }) => `${templateName.replace(binding, '')}: ${propName}`)
.join('; ');
const bindingsTpl = bindings
? typeof bindings === 'string'
? `let ${bindings}`
: Object.keys(bindings)
.map(key => `let ${key}${bindings[key] ? `: ${bindings[key]}` : ''}`)
.join(', ')
: '';
return `*${binding}="${binding}; ${inputsTpl}; ${bindingsTpl}"`;
}
/**
* @internal
*/
export function genInputsTpl(inputs) {
return inputs
.map(({ templateName, propName }) => `[${templateName}]="${propName}"`)
.join(' ');
}
/**
* @internal
*/
export function genOutputsTpl(outputs) {
return outputs
.map(({ templateName, propName }) => `(${templateName})="${propName}($event)"`)
.join(' ');
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtZ2VuLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG9yY2hlc3RyYXRvci9uZ3gtdGVzdGluZy8iLCJzb3VyY2VzIjpbImxpYi90ZW1wbGF0ZS1nZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUM1QixHQUFXLEVBQ1gsRUFBZSxFQUNmLFVBQWtCLEVBQUUsRUFDcEIsUUFBc0I7SUFFdEIsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLE1BQU0sV0FBVyxHQUFHLFFBQVE7UUFDMUIsQ0FBQyxDQUFDLE9BQU8sUUFBUSxLQUFLLFFBQVE7WUFDNUIsQ0FBQyxDQUFDLE9BQU8sUUFBUSxFQUFFO1lBQ25CLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztpQkFDbEIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztpQkFDckUsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNoQixDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1AsT0FBTyxJQUFJLEdBQUcsSUFBSSxTQUFTLElBQUksVUFBVSxJQUFJLFdBQVcsSUFBSSxPQUFPLEtBQUssR0FBRyxHQUFHLENBQUM7QUFDakYsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxPQUFlLEVBQ2YsR0FBVyxFQUNYLEVBQWUsRUFDZixVQUFrQixFQUFFLEVBQ3BCLFFBQXNCO0lBRXRCLE1BQU0sU0FBUyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2pFLE9BQU8sSUFBSSxHQUFHLElBQUksU0FBUyxJQUFJLE9BQU8sS0FBSyxHQUFHLEdBQUcsQ0FBQztBQUNwRCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLE9BQWUsRUFDZixNQUF3QixFQUN4QixRQUFzQjtJQUV0QixNQUFNLFNBQVMsR0FBRyxNQUFNO1NBQ3JCLE1BQU0sQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxDQUFDLFlBQVksS0FBSyxPQUFPLENBQUM7U0FDdEQsR0FBRyxDQUNGLENBQUMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUM3QixHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUN0RDtTQUNBLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVkLE1BQU0sV0FBVyxHQUFHLFFBQVE7UUFDMUIsQ0FBQyxDQUFDLE9BQU8sUUFBUSxLQUFLLFFBQVE7WUFDNUIsQ0FBQyxDQUFDLE9BQU8sUUFBUSxFQUFFO1lBQ25CLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztpQkFDbEIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztpQkFDcEUsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNqQixDQUFDLENBQUMsRUFBRSxDQUFDO0lBRVAsT0FBTyxJQUFJLE9BQU8sS0FBSyxPQUFPLEtBQUssU0FBUyxLQUFLLFdBQVcsR0FBRyxDQUFDO0FBQ2xFLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBd0I7SUFDbkQsT0FBTyxNQUFNO1NBQ1YsR0FBRyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksWUFBWSxNQUFNLFFBQVEsR0FBRyxDQUFDO1NBQ3RFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNmLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsT0FBeUI7SUFDckQsT0FBTyxPQUFPO1NBQ1gsR0FBRyxDQUNGLENBQUMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksWUFBWSxNQUFNLFFBQVEsV0FBVyxDQUMxRTtTQUNBLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmVJTywgVGVtcGxhdGVCaW5kaW5ncyB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuSG9zdENvbXBUcGwoXG4gIHRhZzogc3RyaW5nLFxuICBpbzogRGlyZWN0aXZlSU8sXG4gIGNvbnRlbnQ6IHN0cmluZyA9ICcnLFxuICBiaW5kaW5ncz86IHN0cmluZyB8IHt9LFxuKTogc3RyaW5nIHtcbiAgY29uc3QgaW5wdXRzVHBsID0gZ2VuSW5wdXRzVHBsKGlvLmlucHV0cyk7XG4gIGNvbnN0IG91dHB1dHNUcGwgPSBnZW5PdXRwdXRzVHBsKGlvLm91dHB1dHMpO1xuICBjb25zdCBiaW5kaW5nc1RwbCA9IGJpbmRpbmdzXG4gICAgPyB0eXBlb2YgYmluZGluZ3MgPT09ICdzdHJpbmcnXG4gICAgICA/IGBsZXQtJHtiaW5kaW5nc31gXG4gICAgICA6IE9iamVjdC5rZXlzKGJpbmRpbmdzKVxuICAgICAgICAgIC5tYXAoa2V5ID0+IGBsZXQtJHtrZXl9JHtiaW5kaW5nc1trZXldID8gYD1cIiR7YmluZGluZ3Nba2V5XX1cImAgOiAnJ31gKVxuICAgICAgICAgIC5qb2luKCcgJylcbiAgICA6ICcnO1xuICByZXR1cm4gYDwke3RhZ30gJHtpbnB1dHNUcGx9ICR7b3V0cHV0c1RwbH0gJHtiaW5kaW5nc1RwbH0+JHtjb250ZW50fTwvJHt0YWd9PmA7XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5Ib3N0Q29tcFRwbFN0YXIoXG4gIGJpbmRpbmc6IHN0cmluZyxcbiAgdGFnOiBzdHJpbmcsXG4gIGlvOiBEaXJlY3RpdmVJTyxcbiAgY29udGVudDogc3RyaW5nID0gJycsXG4gIGJpbmRpbmdzPzogc3RyaW5nIHwge30sXG4pOiBzdHJpbmcge1xuICBjb25zdCBpbnB1dHNUcGwgPSBnZW5JbnB1dHNUcGxTdGFyKGJpbmRpbmcsIGlvLmlucHV0cywgYmluZGluZ3MpO1xuICByZXR1cm4gYDwke3RhZ30gJHtpbnB1dHNUcGx9PiR7Y29udGVudH08LyR7dGFnfT5gO1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuSW5wdXRzVHBsU3RhcihcbiAgYmluZGluZzogc3RyaW5nLFxuICBpbnB1dHM6IFRlbXBsYXRlQmluZGluZ3MsXG4gIGJpbmRpbmdzPzogc3RyaW5nIHwge30sXG4pOiBzdHJpbmcge1xuICBjb25zdCBpbnB1dHNUcGwgPSBpbnB1dHNcbiAgICAuZmlsdGVyKCh7IHRlbXBsYXRlTmFtZSB9KSA9PiB0ZW1wbGF0ZU5hbWUgIT09IGJpbmRpbmcpXG4gICAgLm1hcChcbiAgICAgICh7IHRlbXBsYXRlTmFtZSwgcHJvcE5hbWUgfSkgPT5cbiAgICAgICAgYCR7dGVtcGxhdGVOYW1lLnJlcGxhY2UoYmluZGluZywgJycpfTogJHtwcm9wTmFtZX1gLFxuICAgIClcbiAgICAuam9pbignOyAnKTtcblxuICBjb25zdCBiaW5kaW5nc1RwbCA9IGJpbmRpbmdzXG4gICAgPyB0eXBlb2YgYmluZGluZ3MgPT09ICdzdHJpbmcnXG4gICAgICA/IGBsZXQgJHtiaW5kaW5nc31gXG4gICAgICA6IE9iamVjdC5rZXlzKGJpbmRpbmdzKVxuICAgICAgICAgIC5tYXAoa2V5ID0+IGBsZXQgJHtrZXl9JHtiaW5kaW5nc1trZXldID8gYDogJHtiaW5kaW5nc1trZXldfWAgOiAnJ31gKVxuICAgICAgICAgIC5qb2luKCcsICcpXG4gICAgOiAnJztcblxuICByZXR1cm4gYCoke2JpbmRpbmd9PVwiJHtiaW5kaW5nfTsgJHtpbnB1dHNUcGx9OyAke2JpbmRpbmdzVHBsfVwiYDtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbklucHV0c1RwbChpbnB1dHM6IFRlbXBsYXRlQmluZGluZ3MpOiBzdHJpbmcge1xuICByZXR1cm4gaW5wdXRzXG4gICAgLm1hcCgoeyB0ZW1wbGF0ZU5hbWUsIHByb3BOYW1lIH0pID0+IGBbJHt0ZW1wbGF0ZU5hbWV9XT1cIiR7cHJvcE5hbWV9XCJgKVxuICAgIC5qb2luKCcgJyk7XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5PdXRwdXRzVHBsKG91dHB1dHM6IFRlbXBsYXRlQmluZGluZ3MpOiBzdHJpbmcge1xuICByZXR1cm4gb3V0cHV0c1xuICAgIC5tYXAoXG4gICAgICAoeyB0ZW1wbGF0ZU5hbWUsIHByb3BOYW1lIH0pID0+IGAoJHt0ZW1wbGF0ZU5hbWV9KT1cIiR7cHJvcE5hbWV9KCRldmVudClcImAsXG4gICAgKVxuICAgIC5qb2luKCcgJyk7XG59XG4iXX0=