Sha256: 13bdfc90174af8383c6a7011b864f0777912624f5e835bf9a01668acae58ca82

Contents?: true

Size: 1.43 KB

Versions: 6

Compression:

Stored size: 1.43 KB

Contents

import { module, test } from "qunit";
import { setupTest } from "ember-qunit";
import MessageCollection from "client-app/models/message-collection";
import sinon from "sinon";
import * as utilities from "client-app/lib/utilities";

module("Unit | Controller | index", function (hooks) {
  setupTest(hooks);

  test("uses search param to filter results", function (assert) {
    const controller = this.owner.lookup("controller:index");
    const ajaxStub = sinon.stub(utilities, "ajax");
    const messages = MessageCollection.create();
    const row1 = { message: "error tomtom", severity: 2, key: "ce1f53b0cc" };
    const row2 = { message: "error steaky", severity: 3, key: "b083352825" };

    messages.rows.addObjects([row1, row2]);
    controller.set("model", messages);

    assert.strictEqual(controller.searchTerm, null, "initial value is null");
    assert.deepEqual(controller.model.rows, [row1, row2], "all rows");

    ajaxStub.callsFake(async () => ({
      search: "tomtom",
      filter: [5],
      messages: [],
    }));
    controller.set("search", "tomtom");

    assert.strictEqual(
      controller.searchTerm,
      "tomtom",
      "search sets search term"
    );
    assert.strictEqual(
      ajaxStub.firstCall.args[0],
      "/messages.json",
      "get messages"
    );
    assert.deepEqual(
      ajaxStub.firstCall.args[1],
      { data: { filter: "5", search: "tomtom" }, method: "POST" },
      "with correct terms"
    );
  });
});

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
logster-2.15.0 client-app/tests/unit/controllers/index-test.js
logster-2.14.0 client-app/tests/unit/controllers/index-test.js
logster-2.13.1 client-app/tests/unit/controllers/index-test.js
logster-2.13.0 client-app/tests/unit/controllers/index-test.js
logster-2.12.2 client-app/tests/unit/controllers/index-test.js
logster-2.12.1 client-app/tests/unit/controllers/index-test.js