import Theme from "admin/models/theme"; import { discourseModule } from "discourse/tests/helpers/qunit-helpers"; import { test } from "qunit"; discourseModule("Unit | Controller | admin-customize-themes", function () { 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.getController("admin-customize-themes", { 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" ); }); });