passbolt-styleguide
Version:
Passbolt styleguide contains common styling assets used by the different sites, plugin, etc.
90 lines (80 loc) • 3.33 kB
JavaScript
/**
* 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.8.0
*/
import React from "react";
import DisplayEmailNotificationsAdministration from "./DisplayEmailNotificationsAdministration";
import { mockApiResponse } from "../../../../../test/mocks/mockApiResponse";
import MockFetch from "../../../test/mock/MockFetch";
import {
defaultEmailNotificationSettings,
defaultProps,
defaultPropsCE,
withFileSourceSettings,
withoutDatabaseSourceSettings,
} from "./DisplayEmailNotificationsAdministration.test.data";
import { AdminEmailNotificationContextProvider } from "../../../contexts/Administration/AdministrationEmailNotification/AdministrationEmailNotificationContext";
import RbacContextProvider from "../../../../shared/context/Rbac/RbacContext";
export default {
title: "Components/Administration/DisplayEmailNotificationsAdministration",
component: DisplayEmailNotificationsAdministration,
};
let currentStory = null;
const mockFetch = new MockFetch();
mockFetch.addGetFetchRequest(/settings\/emails\/notifications\.json/, async () => {
switch (currentStory) {
case "components-administration-displayemailnotificationsadministration--all-notifications":
case "components-administration-displayemailnotificationsadministration--all-notifications-for-ce": {
return mockApiResponse(defaultEmailNotificationSettings());
}
case "components-administration-displayemailnotificationsadministration--both-sources-exist": {
return mockApiResponse(withFileSourceSettings());
}
case "components-administration-displayemailnotificationsadministration--only-file-setting-exist": {
return mockApiResponse(withoutDatabaseSourceSettings());
}
}
throw new Error("Unsupported story");
});
const decorators = [
(Story, context) => {
currentStory = context.id;
return (
<>
<Story />
</>
);
},
];
const Template = (args) => (
<AdminEmailNotificationContextProvider {...args}>
<RbacContextProvider>
<div className="panel middle">
<div className="grid grid-responsive-12">
<DisplayEmailNotificationsAdministration {...args} />
</div>
</div>
</RbacContextProvider>
</AdminEmailNotificationContextProvider>
);
export const AllNotifications = Template.bind({});
AllNotifications.args = defaultProps();
AllNotifications.decorators = decorators;
export const BothSourcesExist = Template.bind({});
BothSourcesExist.args = defaultProps();
BothSourcesExist.decorators = decorators;
export const OnlyFileSettingExist = Template.bind({});
OnlyFileSettingExist.args = defaultProps();
OnlyFileSettingExist.decorators = decorators;
export const AllNotificationsForCE = Template.bind({});
AllNotificationsForCE.args = defaultPropsCE();
AllNotificationsForCE.decorators = decorators;