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" ); });