keycloak-scim/js/apps/admin-ui/cypress/e2e/users_enable_disable.spec.ts

80 lines
2.7 KiB
TypeScript
Raw Normal View History

import { v4 as uuid } from "uuid";
import UserRepresentation from "@keycloak/keycloak-admin-client/lib/defs/userRepresentation";
import LoginPage from "../support/pages/LoginPage";
import Masthead from "../support/pages/admin-ui/Masthead";
import SidebarPage from "../support/pages/admin-ui/SidebarPage";
import UsersPage from "../support/pages/admin-ui/manage/users/UsersPage";
import UserDetailsPage from "../support/pages/admin-ui/manage/users/user_details/UserDetailsPage";
import adminClient from "../support/util/AdminClient";
import { keycloakBefore } from "../support/util/keycloak_hooks";
const loginPage = new LoginPage();
const sidebarPage = new SidebarPage();
const usersPage = new UsersPage();
const userDetailsPage = new UserDetailsPage();
const masthead = new Masthead();
const createUser = (fields: UserRepresentation) =>
cy
.wrap(null)
.then(() => adminClient.createUser({ username: uuid(), ...fields }));
const deleteUser = (username: string) =>
cy.wrap(null).then(() => adminClient.deleteUser(username));
describe("User enable/disable", () => {
beforeEach(() => {
loginPage.logIn();
keycloakBefore();
sidebarPage.goToUsers();
});
it("disables a user", () => {
createUser({ enabled: true }).then(({ username }) => {
usersPage.goToUserDetailsPage(username!);
userDetailsPage.assertEnabled(username!);
userDetailsPage.toggleEnabled(username!);
masthead.checkNotificationMessage("The user has been saved");
cy.wait(1000);
userDetailsPage.assertDisabled(username!);
return deleteUser(username!);
});
});
it("enables a user", () => {
createUser({ enabled: false }).then(({ username }) => {
usersPage.goToUserDetailsPage(username!);
userDetailsPage.assertDisabled(username!);
userDetailsPage.toggleEnabled(username!);
masthead.checkNotificationMessage("The user has been saved");
cy.wait(1000);
userDetailsPage.assertEnabled(username!);
return deleteUser(username!);
});
});
// See: https://github.com/keycloak/keycloak/issues/19647
it("ensures submitting doesn't reset the enabled state", () => {
createUser({ enabled: true }).then(({ username }) => {
usersPage.goToUserDetailsPage(username!);
userDetailsPage.assertEnabled(username!);
userDetailsPage.toggleEnabled(username!);
masthead.checkNotificationMessage("The user has been saved");
cy.wait(1000);
userDetailsPage.assertDisabled(username!);
userDetailsPage.save();
masthead.checkNotificationMessage("The user has been saved");
cy.wait(1000);
userDetailsPage.assertDisabled(username!);
return deleteUser(username!);
});
});
});