saleor-dashboard/src/apps/components/AppPermissionsDialog/getPermissionsDiff.test.ts
Lukasz Ostrowski 1cb6e8b5fc
Manual app permissions setting by the user (#3829)
* Remove react-markdown, render app about section as string

* Add modal with permissions - WIP

* Extract components

* add permissions diff

* add mutation

* add notification

* fix dialog scrolling

* Extract messages in permissions dialog

* test for useGetAvailableAppPermissions.ts

* add test to state

* fix enums

* add changeset and extract root messages

* Update wicked-berries-watch.md

* fix linter

* fix ts

* cr fixes
2023-07-03 14:50:53 +02:00

83 lines
2.4 KiB
TypeScript

import { getPermissionsDiff } from "@dashboard/apps/components/AppPermissionsDialog/getPermissionsDiff";
import { PermissionEnum } from "@dashboard/graphql";
describe("getPermissionsDiff", () => {
describe("Correctly resolves added permissions", () => {
test("From empty to one new", () => {
const { added, removed } = getPermissionsDiff(
[],
[PermissionEnum.HANDLE_CHECKOUTS],
);
expect(added).toEqual([PermissionEnum.HANDLE_CHECKOUTS]);
expect(removed).toEqual([]);
});
test("From 0 to 3 new", () => {
const { added, removed } = getPermissionsDiff(
[],
[
PermissionEnum.IMPERSONATE_USER,
PermissionEnum.HANDLE_PAYMENTS,
PermissionEnum.MANAGE_APPS,
],
);
expect(added).toEqual([
PermissionEnum.IMPERSONATE_USER,
PermissionEnum.HANDLE_PAYMENTS,
PermissionEnum.MANAGE_APPS,
]);
expect(removed).toEqual([]);
});
test("From 1 to 2 new and 1 existing", () => {
const { added, removed } = getPermissionsDiff(
[PermissionEnum.HANDLE_CHECKOUTS],
[
PermissionEnum.HANDLE_CHECKOUTS,
PermissionEnum.HANDLE_PAYMENTS,
PermissionEnum.MANAGE_APPS,
],
);
expect(added).toEqual([
PermissionEnum.HANDLE_PAYMENTS,
PermissionEnum.MANAGE_APPS,
]);
expect(removed).toEqual([]);
});
});
describe("Correctly resolves removed permissions", () => {
test("Doesnt remove anything if the same", () => {
const { added, removed } = getPermissionsDiff(
[PermissionEnum.HANDLE_CHECKOUTS],
[PermissionEnum.HANDLE_CHECKOUTS],
);
expect(added).toEqual([]);
expect(removed).toEqual([]);
});
test("Removes one", () => {
const { added, removed } = getPermissionsDiff(
[PermissionEnum.HANDLE_CHECKOUTS],
[],
);
expect(added).toEqual([]);
expect(removed).toEqual([PermissionEnum.HANDLE_CHECKOUTS]);
});
});
test("Removes one and adds ", () => {
const { added, removed } = getPermissionsDiff(
[PermissionEnum.HANDLE_CHECKOUTS, PermissionEnum.HANDLE_PAYMENTS],
[PermissionEnum.HANDLE_CHECKOUTS, PermissionEnum.HANDLE_TAXES],
);
expect(added).toEqual([PermissionEnum.HANDLE_TAXES]);
expect(removed).toEqual([PermissionEnum.HANDLE_PAYMENTS]);
});
});