docker_manager/test/javascripts/acceptance/docker-manager-test.js

87 lines
2.7 KiB
JavaScript

import { click, currentURL, visit } from "@ember/test-helpers";
import { test } from "qunit";
import pretender, { response } from "discourse/tests/helpers/create-pretender";
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
acceptance("docker_manager", function (needs) {
needs.user({ admin: true });
test("basic navigation", async function (assert) {
await visit("/admin");
assert.dom(".upgrades-banner").exists();
pretender.get("/admin/docker/repos", () =>
response({
repos: [
{
name: "discourse",
path: "/home/user/discourse/discourse",
branch: "origin/main",
official: false,
id: "discourse",
version: "010370f8b1cfa56cea3736059c96d0578e7918e2",
pretty_version: "v3.1.0.beta2 +236",
url: "https://github.com/discourse/discourse.git",
},
{
name: "docker_manager",
path: "/home/user/discourse/discourse/plugins/docker_manager",
branch: "origin/v2",
official: true,
id: "docker_manager",
version: "c8bca160d5c04a569217ede084bbf844ecd21644",
pretty_version: null,
url: "https://github.com/discourse/docker_manager",
},
],
})
);
pretender.get("/admin/docker/latest", ({ queryParams }) => {
if (queryParams.path === "/home/user/discourse/discourse") {
return response({
latest: {
path: "/home/user/discourse/discourse",
version: "8efb787d8758cbe2ddc6a42b79cbdfa0e0b1909a",
pretty_version: "v3.1.0.beta2 +241",
commits_behind: 0,
date: "2023-02-13T10:43:16.000+01:00",
},
});
} else {
return response({
latest: {
path: "/home/user/discourse/discourse/plugins/docker_manager",
version: "c8bca160d5c04a569217ede084bbf844ecd21644",
pretty_version: null,
commits_behind: 0,
date: "2023-02-13T11:25:49.000+01:00",
},
});
}
});
await click(".upgrades-banner a");
assert.strictEqual(currentURL(), "/admin/upgrade");
assert.dom(".docker-manager table#repos tbody tr").exists({ count: 2 });
assert.dom(".new.commit-hash").hasText("v3.1.0.beta2 +241");
pretender.get("/admin/docker/progress", () =>
response({
progress: {
logs: "",
percentage: 0,
status: null,
repos: ["discourse"],
},
})
);
await click(".upgrade-button");
assert.dom("h1").hasText("Upgrade discourse");
assert.dom("button.start-upgrade").exists();
});
});