diff --git a/.changeset/hip-dogs-listen.md b/.changeset/hip-dogs-listen.md new file mode 100644 index 000000000..c0690abdc --- /dev/null +++ b/.changeset/hip-dogs-listen.md @@ -0,0 +1,5 @@ +--- +"@marko/runtime-tags": patch +--- + +Fix regression with text only tags (textarea/title) with a spread and no body content. diff --git a/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/.name-cache.json b/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/.name-cache.json new file mode 100644 index 000000000..c842a4dfb --- /dev/null +++ b/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/.name-cache.json @@ -0,0 +1,8 @@ +{ + "vars": { + "props": { + "$_": "r", + "$init": "m" + } + } +} diff --git a/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/csr-sanitized.expected.md b/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/csr-sanitized.expected.md new file mode 100644 index 000000000..064654ad7 --- /dev/null +++ b/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/csr-sanitized.expected.md @@ -0,0 +1,7 @@ +# Render `{"value":"foo"}` + +```html + +``` diff --git a/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/csr.expected.md b/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/csr.expected.md new file mode 100644 index 000000000..2789296cd --- /dev/null +++ b/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/csr.expected.md @@ -0,0 +1,12 @@ +# Render `{"value":"foo"}` + +```html + +``` + +# Mutations +``` +INSERT textarea +``` \ No newline at end of file diff --git a/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/dom.expected/template.hydrate.js b/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/dom.expected/template.hydrate.js new file mode 100644 index 000000000..234d8b58a --- /dev/null +++ b/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/dom.expected/template.hydrate.js @@ -0,0 +1,2 @@ +// size: 46 (min) 50 (brotli) +(_._script("a0", ($scope) => _._attrs_script($scope, "a")), init()); diff --git a/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/dom.expected/template.js b/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/dom.expected/template.js new file mode 100644 index 000000000..9c1bedea1 --- /dev/null +++ b/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/dom.expected/template.js @@ -0,0 +1,10 @@ +export const $template = ""; +export const $walks = /* get, over(1) */" b"; +export const $setup = () => {}; +import * as _ from "@marko/runtime-tags/debug/dom"; +const $input__script = _._script("__tests__/template.marko_0_input", $scope => _._attrs_script($scope, "#textarea/0")); +export const $input = /* @__PURE__ */_._const("input", $scope => { + _._attrs($scope, "#textarea/0", $scope.input); + $input__script($scope); +}); +export default /* @__PURE__ */_._template("__tests__/template.marko", $template, $walks, $setup, $input); \ No newline at end of file diff --git a/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/html.expected/template.js b/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/html.expected/template.js new file mode 100644 index 000000000..c1ffef78d --- /dev/null +++ b/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/html.expected/template.js @@ -0,0 +1,12 @@ +import * as _ from "@marko/runtime-tags/debug/html"; +export default _._template("__tests__/template.marko", input => { + const $scope0_id = _._scope_id(); + const $textarea_input = input; + _._html(`${_._attr_textarea_value($scope0_id, "#textarea/0", $textarea_input.value, $textarea_input.valueChange)}${_._el_resume($scope0_id, "#textarea/0")}`); + _._script($scope0_id, "__tests__/template.marko_0_input"); + _._scope($scope0_id, { + input + }, "__tests__/template.marko", 0, { + input: 0 + }); +}); \ No newline at end of file diff --git a/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/resume-sanitized.expected.md b/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/resume-sanitized.expected.md new file mode 100644 index 000000000..064654ad7 --- /dev/null +++ b/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/resume-sanitized.expected.md @@ -0,0 +1,7 @@ +# Render `{"value":"foo"}` + +```html + +``` diff --git a/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/resume.expected.md b/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/resume.expected.md new file mode 100644 index 000000000..f2447abe1 --- /dev/null +++ b/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/resume.expected.md @@ -0,0 +1,26 @@ +# Render `{"value":"foo"}` + +```html + + + + + + + + +``` diff --git a/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/ssr-sanitized.expected.md b/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/ssr-sanitized.expected.md new file mode 100644 index 000000000..00c0c75d5 --- /dev/null +++ b/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/ssr-sanitized.expected.md @@ -0,0 +1,6 @@ +# Render End +```html + +``` diff --git a/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/ssr.expected.md b/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/ssr.expected.md new file mode 100644 index 000000000..3d6da526b --- /dev/null +++ b/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/__snapshots__/ssr.expected.md @@ -0,0 +1,42 @@ +# Write +```html + +``` + +# Render End +```html + + + + + + + + +``` + +# Mutations +``` +INSERT html +INSERT html/head +INSERT html/body +INSERT html/body/textarea +INSERT html/body/textarea/#text +INSERT html/body/#comment +INSERT html/body/script +INSERT html/body/script/#text +``` \ No newline at end of file diff --git a/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/template.marko b/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/template.marko new file mode 100644 index 000000000..80804f492 --- /dev/null +++ b/packages/runtime-tags/src/__tests__/fixtures/textarea-spread/template.marko @@ -0,0 +1 @@ +