新しいProseMirrorエディターでカスタムフィールドが挿入されない

問題の再現に役立つ場合は、QUnit テストを以下に示します。

// plugins/discourse-calendar/test/acceptance/post-event-builder-custom-tags-test.js
import { click, find, visit, fillIn } from "@ember/test-helpers";
import { test } from "qunit";
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
import selectKit from "discourse/tests/helpers/select-kit-helper";
import { i18n } from "discourse-i18n";

acceptance("Discourse Calendar - New event form with custom fields", function (needs) {
  needs.user({ admin: true, can_create_discourse_post_event: true });
  needs.settings({
    discourse_local_dates_enabled: true,
    calendar_enabled: true,
    discourse_post_event_enabled: true,
    discourse_post_event_allowed_on_groups: "",
    discourse_post_event_allowed_custom_fields: "my_custom_field",
    coopaname_integration_enabled: false,
  });

  test("filling the form with MD editor fills the custom fields", async function (assert) {
    await ensureEventTagHasFields(assert, "md");
  });

  test("filling the form with WYSIWYG editor fills the custom fields", async function (assert) {
    await ensureEventTagHasFields(assert, "wysiwyg");
  });
});

async function ensureEventTagHasFields(assert, editorType) {
  await visit("/");
  await click("#create-topic");
  const categoryChooser = selectKit(".category-chooser");
  await categoryChooser.expand();
  await categoryChooser.selectRowByValue(2);

  await switchEditorTo(editorType);

  await click(".toolbar-menu__options-trigger");
  await click(`button[title='${i18n("discourse_post_event.builder_modal.attach")}']`);
  await fillIn("input.custom-field-input", "some value");
  await click(".d-modal__footer > button");

  await switchEditorTo("md");

  const fields = ["start", "status", "timezone", "myCustomField"];
  const content = await find(".d-editor-input").value;

  fields.forEach((field) => {
    assert.true(content.includes(`${field}="`), `${field} is present in event tag`);
  });
}

async function switchEditorTo(type) {
  const editorSwitch = find("button.composer-toggle-switch");
  const isInMarkdown = editorSwitch.attributes["aria-checked"].value === "false";
  if ((isInMarkdown && type === "wysiwyg") || (!isInMarkdown && type === "md")) {
    await click(editorSwitch);
  }
}