import { mapRoutes } from "discourse/mapping-router";
import Theme from "admin/models/theme";

moduleFor("controller:admin-customize-themes", {
  beforeEach() {
    this.registry.register("router:main", mapRoutes());
  },
  needs: ["controller:adminUser"]
});

QUnit.test("can list themes correctly", function(assert) {
  const defaultTheme = Theme.create({ id: 2, default: true, name: "default" });
  const userTheme = Theme.create({
    id: 3,
    user_selectable: true,
    name: "name"
  });
  const strayTheme1 = Theme.create({ id: 4, name: "stray1" });
  const strayTheme2 = Theme.create({ id: 5, name: "stray2" });
  const componentTheme = Theme.create({
    id: 6,
    name: "component",
    component: true
  });

  const controller = this.subject({
    model: [strayTheme2, strayTheme1, userTheme, defaultTheme, componentTheme]
  });

  assert.deepEqual(
    controller.get("fullThemes").map(t => t.get("name")),
    [strayTheme2, strayTheme1, userTheme, defaultTheme].map(t => t.get("name")),
    "returns a list of themes without components"
  );

  assert.deepEqual(
    controller.get("childThemes").map(t => t.get("name")),
    [componentTheme].map(t => t.get("name")),
    "separate components from themes"
  );
});