mirror of
https://github.com/Unleash/unleash.git
synced 2024-12-22 19:07:54 +01:00
84 lines
2.0 KiB
TypeScript
84 lines
2.0 KiB
TypeScript
|
import { roleSchema } from './role-schema';
|
||
|
|
||
|
test('role schema rejects a role without a name', async () => {
|
||
|
expect.assertions(1);
|
||
|
const role = {
|
||
|
permissions: [],
|
||
|
};
|
||
|
|
||
|
try {
|
||
|
await roleSchema.validateAsync(role);
|
||
|
} catch (error) {
|
||
|
expect(error.details[0].message).toBe('"name" is required');
|
||
|
}
|
||
|
});
|
||
|
|
||
|
test('role schema allows a role with an empty description', async () => {
|
||
|
const role = {
|
||
|
name: 'Brønsted',
|
||
|
description: '',
|
||
|
};
|
||
|
|
||
|
const value = await roleSchema.validateAsync(role);
|
||
|
expect(value.description).toEqual('');
|
||
|
});
|
||
|
|
||
|
test('role schema rejects a role with a broken permission list', async () => {
|
||
|
expect.assertions(1);
|
||
|
const role = {
|
||
|
name: 'Mendeleev',
|
||
|
permissions: [
|
||
|
{
|
||
|
aPropertyThatIsAproposToNothing: true,
|
||
|
},
|
||
|
],
|
||
|
};
|
||
|
|
||
|
try {
|
||
|
await roleSchema.validateAsync(role);
|
||
|
} catch (error) {
|
||
|
expect(error.details[0].message).toBe(
|
||
|
'"permissions[0].id" is required',
|
||
|
);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
test('role schema allows a role with an empty permission list', async () => {
|
||
|
const role = {
|
||
|
name: 'Avogadro',
|
||
|
permissions: [],
|
||
|
};
|
||
|
|
||
|
const value = await roleSchema.validateAsync(role);
|
||
|
expect(value.permissions).toEqual([]);
|
||
|
});
|
||
|
|
||
|
test('role schema allows a role with a null list', async () => {
|
||
|
const role = {
|
||
|
name: 'Curie',
|
||
|
permissions: null,
|
||
|
};
|
||
|
|
||
|
const value = await roleSchema.validateAsync(role);
|
||
|
expect(value.permissions).toEqual(null);
|
||
|
});
|
||
|
|
||
|
test('role schema allows an undefined with a null list', async () => {
|
||
|
const role = {
|
||
|
name: 'Fischer',
|
||
|
};
|
||
|
|
||
|
const value = await roleSchema.validateAsync(role);
|
||
|
expect(value.permissions).toEqual(undefined);
|
||
|
});
|
||
|
|
||
|
test('role schema strips roleType if present', async () => {
|
||
|
const role = {
|
||
|
name: 'Grignard',
|
||
|
roleType: 'Organic Chemistry',
|
||
|
};
|
||
|
|
||
|
const value = await roleSchema.validateAsync(role);
|
||
|
expect(value.roleType).toEqual(undefined);
|
||
|
});
|