mirror of
https://github.com/Unleash/unleash.git
synced 2025-11-10 01:19:53 +01:00
69 lines
1.9 KiB
TypeScript
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']);
|
|
});
|