# frozen_string_literal: true describe "Theme qunit testing", type: :system do let!(:theme_without_tests) { Fabricate(:theme, name: "no-tests-guy") } let!(:theme_with_test) do t = Fabricate(:theme, name: "Theme With Tests") t.set_field(target: :tests_js, type: :js, name: "acceptance/some-test.js", value: <<~JS) import { module, test } from "qunit"; module("theme test", function () { test("it works", function (assert) { assert.true(true) }); }); JS t.build_remote_theme(remote_url: "https://example.com/mytheme") t.save! t end it "lists themes and can run tests by id, name and url" do visit "/theme-qunit" expect(page).to have_css("a[href^='/theme-qunit?id=']", count: 1) find("a[href=\"/theme-qunit?id=#{theme_with_test.id}\"]").click success_count = find("#qunit-testresult-display .passed").text expect(success_count).to eq("1") visit "/theme-qunit?name=#{theme_with_test.name}" success_count = find("#qunit-testresult-display .passed").text expect(success_count).to eq("1") visit "/theme-qunit?url=#{theme_with_test.remote_theme.remote_url}" success_count = find("#qunit-testresult-display .passed").text expect(success_count).to eq("1") end end