diff --git a/frontend/src/__mocks__/api/users/me.js b/frontend/src/__mocks__/api/users/me.js new file mode 100644 index 0000000000..d9caad2891 --- /dev/null +++ b/frontend/src/__mocks__/api/users/me.js @@ -0,0 +1,17 @@ +const mockAPIUser = { + id: "740d7b63-b257-4311-ba3f-adc46a5fafb8", + email: "test-user@example.com", + name: "Test User", + is_verified: false, + is_superuser: false, + orgs: [ + { + id: "e21ab647-2d0e-489d-97d1-88ac91774942", + name: "test org", + slug: "test-org", + role: 10, + }, + ], +}; + +export default mockAPIUser; diff --git a/frontend/src/pages/org/settings/components/general.test.ts b/frontend/src/pages/org/settings/components/general.test.ts new file mode 100644 index 0000000000..6edefbba9c --- /dev/null +++ b/frontend/src/pages/org/settings/components/general.test.ts @@ -0,0 +1,46 @@ +import { expect, fixture } from "@open-wc/testing"; +import { html } from "lit"; +import { restore, stub } from "sinon"; + +import "./general"; + +import type { OrgSettingsGeneral } from "./general"; + +import mockAPIUser from "@/__mocks__/api/users/me.js"; +import { AppStateService } from "@/utils/state"; + +describe("btrix-org-settings-general", () => { + beforeEach(() => { + AppStateService.resetAll(); + window.localStorage.clear(); + window.sessionStorage.clear(); + stub(window.history, "pushState"); + }); + + afterEach(() => { + restore(); + }); + + describe("#renameOrg", () => { + it("redirects to the correct page", async () => { + const el = await fixture( + html``, + ); + + stub(el.navigate, "to"); + stub(el.api, "fetch").callsFake(async (path) => { + if (path === "/users/me") { + return Promise.resolve(mockAPIUser); + } + return Promise.resolve({}); + }); + + // @ts-expect-error renameOrg is private + await el.renameOrg({ name: "Fake Org Name 2", slug: "fake-org-name-2" }); + + expect(el.navigate.to).to.have.been.calledWith( + "/orgs/fake-org-name-2/settings", + ); + }); + }); +}); diff --git a/frontend/src/pages/org/settings/components/general.ts b/frontend/src/pages/org/settings/components/general.ts index dea9cc1007..43b3d0f0db 100644 --- a/frontend/src/pages/org/settings/components/general.ts +++ b/frontend/src/pages/org/settings/components/general.ts @@ -364,8 +364,6 @@ export class OrgSettingsGeneral extends BtrixElement { AppStateService.updateUser(formatAPIUser(user), slug); - await this.updateComplete; - this.navigate.to(`${this.navigate.orgBasePath}/settings`); }