1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-11-10 01:19:53 +01:00
unleash.unleash/src/lib/features/private-project/privateProjectChecker.test.ts
2024-04-04 14:56:21 +02:00

69 lines
1.9 KiB
TypeScript

import { PrivateProjectChecker } from './privateProjectChecker';
import type { IPrivateProjectStore } from './privateProjectStoreType';
test('filter user accessible projects', async () => {
const checker = new PrivateProjectChecker(
{
privateProjectStore: {
async getUserAccessibleProjects() {
return {
mode: 'limited',
projects: ['projectA', 'projectB'],
};
},
} as IPrivateProjectStore,
},
{ isEnterprise: true },
);
const projects = await checker.filterUserAccessibleProjects(123, [
'projectA',
'projectC',
]);
expect(projects).toEqual(['projectA']);
});
test('do not filter for non enterprise', async () => {
const checker = new PrivateProjectChecker(
{
privateProjectStore: {
async getUserAccessibleProjects() {
return {
mode: 'limited',
projects: ['projectA', 'projectB'],
};
},
} as IPrivateProjectStore,
},
{ isEnterprise: false },
);
const projects = await checker.filterUserAccessibleProjects(123, [
'projectA',
'projectC',
]);
expect(projects).toEqual(['projectA', 'projectC']);
});
test('do not filter for all mode', async () => {
const checker = new PrivateProjectChecker(
{
privateProjectStore: {
async getUserAccessibleProjects() {
return { mode: 'all' };
},
} as IPrivateProjectStore,
},
{ isEnterprise: false },
);
const projects = await checker.filterUserAccessibleProjects(123, [
'projectA',
'projectC',
]);
expect(projects).toEqual(['projectA', 'projectC']);
});