fix(editor): Restrict [empty] in parameter input hint to zero-length string (#6003)

* 🚧 Quick test

*  Adjust to new requirements

*  Account for 2x double quotes

* 🔥 Remove excess single quote

*  Revert per new requirements

*  Undo more changes to minimize diff

*  New requirement changes

* 🐛 Prevent excess whitespace from HTML formatting

* 🚚 Rename computed property

* 🧪 Set up e2e tests for parameter input hint

* 🚧 Experiments with unit tests

Pinia stores setup process WIP.

* 🔥 Remove e2e test

*  Restore `test` command

* 🔥 Remove unit test stub

* 🔥 Remove logging

* 🔥 Remove test ID

* 🧪 Fix e2e test

* 🧪 Tighten text check
This commit is contained in:
Iván Ovejero 2023-05-03 09:41:40 +02:00 committed by GitHub
parent 8aedc03dda
commit 8862e1e7df
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 9 deletions

View file

@ -205,7 +205,7 @@ describe('Data mapping', () => {
'have.text', 'have.text',
`{{ $node['${SCHEDULE_TRIGGER_NODE_NAME}'].json.input[0].count }} {{ $node['${SCHEDULE_TRIGGER_NODE_NAME}'].json.input }}`, `{{ $node['${SCHEDULE_TRIGGER_NODE_NAME}'].json.input[0].count }} {{ $node['${SCHEDULE_TRIGGER_NODE_NAME}'].json.input }}`,
); );
ndv.getters.parameterExpressionPreview('value').should('include.text', '[empty]'); ndv.getters.parameterExpressionPreview('value').should('have.text', ' ');
ndv.actions.selectInputNode('Set'); ndv.actions.selectInputNode('Set');

View file

@ -1,11 +1,6 @@
<template> <template>
<n8n-text size="small" color="text-base" tag="div" v-if="hint"> <n8n-text size="small" color="text-base" tag="div" v-if="hint">
<div <div v-if="!renderHTML" :class="classes">{{ hint }}</div>
v-if="!renderHTML"
:class="{ [$style.singleline]: singleLine, [$style.highlight]: highlight }"
>
{{ hint }}
</div>
<div <div
v-else v-else
ref="hint" ref="hint"
@ -39,6 +34,15 @@ export default defineComponent({
methods: { methods: {
sanitizeHtml, sanitizeHtml,
}, },
computed: {
classes() {
return {
[this.$style.singleline]: this.singleLine,
[this.$style.highlight]: this.highlight,
[this.$style['preserve-whitespace']]: true,
};
},
},
mounted() { mounted() {
if (this.$refs.hint) { if (this.$refs.hint) {
(this.$refs.hint as Element).querySelectorAll('a').forEach((a) => (a.target = '_blank')); (this.$refs.hint as Element).querySelectorAll('a').forEach((a) => (a.target = '_blank'));
@ -56,4 +60,7 @@ export default defineComponent({
.highlight { .highlight {
color: var(--color-secondary); color: var(--color-secondary);
} }
.preserve-whitespace {
white-space: pre;
}
</style> </style>

View file

@ -181,8 +181,8 @@ export default mixins(showMessage, workflowHelpers).extend({
return null; return null;
} }
if (typeof computedValue === 'string' && computedValue.trim().length === 0) { if (typeof computedValue === 'string' && computedValue.length === 0) {
computedValue = this.$locale.baseText('parameterInput.emptyString'); return this.$locale.baseText('parameterInput.emptyString');
} }
} catch (error) { } catch (error) {
computedValue = `[${this.$locale.baseText('parameterInput.error')}: ${error.message}]`; computedValue = `[${this.$locale.baseText('parameterInput.error')}: ${error.message}]`;