UNPKG

passbolt-styleguide

Version:

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

107 lines (89 loc) 4.08 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(3); 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'); }); /** * 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); }); });