passbolt-styleguide
Version:
Passbolt styleguide contains common styling assets used by the different sites, plugin, etc.
72 lines (64 loc) • 1.86 kB
JavaScript
/**
* Passbolt ~ Open source password manager for teams
* Copyright (c) 2021 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) 2021 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.3.0
*/
import React from "react";
import { render } from "@testing-library/react";
import AskInFormMenuDisplay from "./AskInFormMenuDisplay";
import AppContext from "../../../shared/context/AppContext/AppContext";
/**
* The AskInFormMenuDisplayTest component represented as a page
*/
export default class AskInFormMenuDisplayTestPage {
/**
* Default constructor
* @param appContext An app context
*/
constructor(appContext) {
this._page = render(
<AppContext.Provider value={appContext}>
<AskInFormMenuDisplay />
</AppContext.Provider>,
);
}
/**
* Returns the Passbolt logo icon
*/
get icon() {
return this._page.container.querySelector(".in-form-icon-logo");
}
/**
* Returns the Passbolt logo icon
*/
get iconCount() {
return this.icon.dataset.count ?? null;
}
/**
* Returns true if the page container
*/
get hasChildren() {
return this._page.container.hasChildNodes();
}
/**
* Returns true if the in-form icon is in an active mode
*/
get isActive() {
return this.icon ? !this.icon.classList.contains("inactive") : false;
}
/**
* Clicks on the icon
*/
clickIcon() {
const link = this._page.container.querySelector("a");
link.click();
}
}