UNPKG

passbolt-styleguide

Version:

Passbolt styleguide contains common styling assets used by the different sites, plugin, etc.

113 lines (95 loc) 4.3 kB
/** * Passbolt ~ Open source password manager for teams * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com) * * Licensed under GNU Affero General Public License version 3 of the or any later version. * For full copyright and license information, please see the LICENSE.txt * Redistributions of files must retain the above copyright notice. * * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com) * @license https://opensource.org/licenses/AGPL-3.0 AGPL License * @link https://www.passbolt.com Passbolt(tm) * @since 3.6.0 */ import { waitFor } from "@testing-library/dom"; import { activitiesMock, defaultAppContext, defaultProps, lastActivityMock, } from "./DisplayUserDetailsActivity.test.data"; import DisplayUserDetailsActivityPage from "./DisplayUserDetailsActivity.test.page"; beforeEach(() => { jest.resetModules(); }); describe("See user activities", () => { const props = defaultProps(); /** * Given a selected user having 4 activities * When I open the “Activity” section of the secondary sidebar * Then I should see the 4 activities made about the user * And I should be able to identify each activities creator * And I should be able to see each activities timestamps */ it("As LU I can see activities of a user with at least one activity", async () => { const context = defaultAppContext(); context.port.addRequestListener("passbolt.actionlogs.find-all-for", () => activitiesMock); const page = new DisplayUserDetailsActivityPage(context, props); await page.clickOnTitle(); expect.assertions(10); expect(page.displayActivityList).not.toBeNull(); expect(page.displayActivityList.length).toBe(4); expect(page.displayedActivityCreator(0)).toBe("Ada Lovelace"); expect(page.displayedActivityCreator(1)).toBe("Admin admin"); expect(page.displayedActivityCreator(2)).toBe("Ada Lovelace"); expect(page.displayedActivityCreator(3)).toBe("Ada Lovelace"); expect(page.displayedActivityCreationTime(0)).toBeDefined(); expect(page.displayedActivityCreationTime(1)).toBeDefined(); expect(page.displayedActivityCreationTime(2)).toBeDefined(); expect(page.displayedActivityCreationTime(3)).toBeDefined(); }); it("I should be able to see other activities with more button", async () => { const dataSet = [activitiesMock, lastActivityMock]; let currentDataSetIndex = 0; const context = defaultAppContext(); context.port.addRequestListener("passbolt.actionlogs.find-all-for", () => dataSet[currentDataSetIndex++]); const page = new DisplayUserDetailsActivityPage(context, props); await page.clickOnTitle(); expect.assertions(4); expect(page.moreButton).not.toBeNull(); const expectedActivityCount = 5; await page.moreButtonClick(expectedActivityCount); expect(page.displayActivityList.length).toBe(expectedActivityCount); expect(page.displayedActivityCreator(4)).toBe("Admin admin"); const baseUrl = context.userSettings.getTrustedDomain(); const userId = lastActivityMock[0].creator.id; expect(page.link(4).href).toBe(`${baseUrl}/app/users/view/${userId}`); }); /** * Given a selected user having 4 activities * When I open the “Activity” section of the secondary sidebar * And the activity are not loaded yet * Then I should see the loading message “Retrieving activities” */ it("I should see the loading message “Retrieving activities”", async () => { const context = defaultAppContext(); let resolveFindAllForRequest = null; context.port.addRequestListener( "passbolt.actionlogs.find-all-for", () => new Promise((resolve) => (resolveFindAllForRequest = resolve)), ); const page = new DisplayUserDetailsActivityPage(context, props); expect.assertions(3); page.clickOn(page.title); await waitFor(() => {}); expect(page.progressionText.textContent).toBe("Retrieving activities"); resolveFindAllForRequest(activitiesMock); await waitFor(() => { if (page.progressionText !== null) { throw new Error("Activities are still loading"); } }); expect(page.progressionText).toBeNull(); expect(page.displayActivityList.length).toBe(4); }); });