import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import { click, render } from "@ember/test-helpers";
import hbs from "htmlbars-inline-precompile";
import { exists, visible } from "discourse/tests/helpers/qunit-helpers";
import { module, test } from "qunit";
import { htmlSafe } from "@ember/template";

module("Discourse Chat | Component | collapser", function (hooks) {
  setupRenderingTest(hooks);

  test("renders header", async function (assert) {
    this.set("header", htmlSafe(`<div class="cat">tomtom</div>`));

    await render(hbs`<Collapser @header={{this.header}} />`);

    assert.true(exists(".cat"));
  });

  test("collapses and expands yielded body", async function (assert) {
    await render(hbs`
      <Collapser>
        <div class="cat">body text</div>
      </Collapser>
    `);

    const openButton = ".chat-message-collapser-closed";
    const closeButton = ".chat-message-collapser-opened";
    const body = ".cat";

    assert.true(visible(body));

    await click(closeButton);
    assert.false(visible(body));

    await click(openButton);
    assert.true(visible(body));
  });
});