saleor-dashboard/cypress/integration/staffMembers.js
Karolina Rakoczy e7a06281f1
fix failing tests (#1302)
* fix failing tests

* no retries

* add waiting for confirmation msg

* remove unused import

* fix test for staff

* fix test for staff

* fix tests for orders

* fix tests for channels

* fix autocomplete

* fix filters

* fix filters

* fix create shipping method
2021-09-10 10:59:46 +02:00

117 lines
4 KiB
JavaScript

import faker from "faker";
import {
deleteStaffMembersStartsWith,
updateStaffMember
} from "../apiRequests/StaffMembers";
import { LEFT_MENU_SELECTORS } from "../elements/account/left-menu/left-menu-selectors";
import { BUTTON_SELECTORS } from "../elements/shared/button-selectors";
import { STAFF_MEMBER_DETAILS } from "../elements/staffMembers/staffMemberDetails";
import { STAFF_MEMBERS_LIST } from "../elements/staffMembers/staffMembersList";
import { expectWelcomeMessageIncludes } from "../steps/homePageSteps";
import { getDisplayedSelectors } from "../steps/permissions";
import { confirmationMessageShouldDisappear } from "../steps/shared/confirmationMessages";
import {
fillUpSetPassword,
fillUpUserDetails,
updateUserActiveFlag
} from "../steps/user";
import filterTests from "../support/filterTests";
import { urlList, userDetailsUrl } from "../url/urlList";
import {
getMailActivationLinkForUser,
inviteStaffMemberWithFirstPermission
} from "../utils/users";
filterTests(["stagedOnly"], () => {
describe("Staff members", () => {
const startsWith = "StaffMembers";
const password = Cypress.env("USER_PASSWORD");
const lastName = faker.name.lastName();
const email = `${startsWith}${lastName}@example.com`;
let user;
before(() => {
cy.clearSessionData().loginUserViaRequest();
deleteStaffMembersStartsWith(startsWith);
inviteStaffMemberWithFirstPermission({ email })
.then(({ user: userResp }) => {
user = userResp;
getMailActivationLinkForUser(email);
})
.then(urlLink => {
cy.clearSessionData().visit(urlLink);
fillUpSetPassword(password);
cy.clearSessionData();
});
});
beforeEach(() => {
cy.clearSessionData().loginUserViaRequest();
});
it("should invite user", () => {
const firstName = faker.name.firstName();
const emailInvite = `${startsWith}${firstName}@example.com`;
cy.visit(urlList.staffMembers)
.softExpectSkeletonIsVisible()
.get(STAFF_MEMBERS_LIST.inviteStaffMemberButton)
.click();
fillUpUserDetails(firstName, lastName, emailInvite);
getMailActivationLinkForUser(emailInvite).then(urlLink => {
cy.clearSessionData().visit(urlLink);
fillUpSetPassword(password);
expectWelcomeMessageIncludes(`${firstName} ${lastName}`);
});
});
it("should deactivate user", () => {
updateStaffMember({ userId: user.id, isActive: true });
updateUserActiveFlag(user.id);
cy.clearSessionData()
.loginUserViaRequest("auth", { email, password })
.its("body.data.tokenCreate")
.then(tokenCreate => {
chai
.softExpect(
tokenCreate.errors[0].code,
"logging in should return error"
)
.to.be.eq("INVALID_CREDENTIALS");
expect(tokenCreate.token).to.be.not.ok;
});
});
it("should activate user", () => {
updateStaffMember({ userId: user.id, isActive: false });
updateUserActiveFlag(user.id);
cy.clearSessionData()
.loginUserViaRequest("auth", { email, password })
.visit(urlList.homePage);
expectWelcomeMessageIncludes(email);
});
it("should remove user permissions", () => {
cy.visit(userDetailsUrl(user.id))
.get(STAFF_MEMBER_DETAILS.removePermissionButton)
.click()
.addAliasToGraphRequest("StaffMemberUpdate")
.get(BUTTON_SELECTORS.confirm)
.click();
confirmationMessageShouldDisappear();
cy.wait("@StaffMemberUpdate")
.clearSessionData()
.loginUserViaRequest("auth", { email, password })
.visit(urlList.homePage);
expectWelcomeMessageIncludes(email);
getDisplayedSelectors().then(displayedSelectors => {
expect(Object.values(displayedSelectors)).to.have.length(1);
expect(Object.values(displayedSelectors)[0]).to.eq(
LEFT_MENU_SELECTORS.home
);
});
});
});
});