mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2026-08-07 07:14:49 +00:00
test(noteConfig): test the special permissions interactions
As those interaction are quite special at times we should test them individually Signed-off-by: Philip Molares <philip.molares@udo.edu>
This commit is contained in:
committed by
Erik Michelson
parent
8fe3821312
commit
85fccc4e15
@@ -29,9 +29,9 @@ describe('noteConfig', () => {
|
||||
HD_NOTE_FORBIDDEN_ALIASES: forbiddenAliases.join(' , '),
|
||||
HD_NOTE_MAX_LENGTH: maxLength.toString(),
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE:
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
PermissionLevelNames[PermissionLevel.WRITE],
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_LOGGED_IN:
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
PermissionLevelNames[PermissionLevel.WRITE],
|
||||
HD_NOTE_REVISION_RETENTION_DAYS: retentionDays.toString(),
|
||||
HD_NOTE_PERSIST_INTERVAL: persistInteval.toString(),
|
||||
/* eslint-enable @typescript-eslint/naming-convention */
|
||||
@@ -44,8 +44,12 @@ describe('noteConfig', () => {
|
||||
expect(config.forbiddenAliases).toHaveLength(forbiddenAliases.length);
|
||||
expect(config.forbiddenAliases).toEqual(forbiddenAliases);
|
||||
expect(config.maxLength).toEqual(maxLength);
|
||||
expect(config.permissions.default.everyone).toEqual(PermissionLevel.READ);
|
||||
expect(config.permissions.default.loggedIn).toEqual(PermissionLevel.READ);
|
||||
expect(config.permissions.default.everyone).toEqual(
|
||||
PermissionLevel.WRITE,
|
||||
);
|
||||
expect(config.permissions.default.loggedIn).toEqual(
|
||||
PermissionLevel.WRITE,
|
||||
);
|
||||
expect(config.permissions.maxGuestLevel).toEqual(guestAccess);
|
||||
expect(config.revisionRetentionDays).toEqual(retentionDays);
|
||||
expect(config.persistInterval).toEqual(persistInteval);
|
||||
@@ -58,9 +62,9 @@ describe('noteConfig', () => {
|
||||
/* eslint-disable @typescript-eslint/naming-convention */
|
||||
HD_NOTE_MAX_LENGTH: maxLength.toString(),
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE:
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
PermissionLevelNames[PermissionLevel.WRITE],
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_LOGGED_IN:
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
PermissionLevelNames[PermissionLevel.WRITE],
|
||||
/* eslint-enable @typescript-eslint/naming-convention */
|
||||
},
|
||||
{
|
||||
@@ -70,8 +74,12 @@ describe('noteConfig', () => {
|
||||
const config = noteConfig();
|
||||
expect(config.forbiddenAliases).toHaveLength(0);
|
||||
expect(config.maxLength).toEqual(maxLength);
|
||||
expect(config.permissions.default.everyone).toEqual(PermissionLevel.READ);
|
||||
expect(config.permissions.default.loggedIn).toEqual(PermissionLevel.READ);
|
||||
expect(config.permissions.default.everyone).toEqual(
|
||||
PermissionLevel.WRITE,
|
||||
);
|
||||
expect(config.permissions.default.loggedIn).toEqual(
|
||||
PermissionLevel.WRITE,
|
||||
);
|
||||
expect(config.permissions.maxGuestLevel).toEqual(guestAccess);
|
||||
restore();
|
||||
});
|
||||
@@ -83,9 +91,9 @@ describe('noteConfig', () => {
|
||||
HD_NOTE_FORBIDDEN_ALIASES: forbiddenAlias,
|
||||
HD_NOTE_MAX_LENGTH: maxLength.toString(),
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE:
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
PermissionLevelNames[PermissionLevel.WRITE],
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_LOGGED_IN:
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
PermissionLevelNames[PermissionLevel.WRITE],
|
||||
/* eslint-enable @typescript-eslint/naming-convention */
|
||||
},
|
||||
{
|
||||
@@ -96,8 +104,12 @@ describe('noteConfig', () => {
|
||||
expect(config.forbiddenAliases).toHaveLength(1);
|
||||
expect(config.forbiddenAliases[0]).toEqual(forbiddenAlias);
|
||||
expect(config.maxLength).toEqual(maxLength);
|
||||
expect(config.permissions.default.everyone).toEqual(PermissionLevel.READ);
|
||||
expect(config.permissions.default.loggedIn).toEqual(PermissionLevel.READ);
|
||||
expect(config.permissions.default.everyone).toEqual(
|
||||
PermissionLevel.WRITE,
|
||||
);
|
||||
expect(config.permissions.default.loggedIn).toEqual(
|
||||
PermissionLevel.WRITE,
|
||||
);
|
||||
|
||||
expect(config.permissions.maxGuestLevel).toEqual(guestAccess);
|
||||
restore();
|
||||
@@ -109,9 +121,9 @@ describe('noteConfig', () => {
|
||||
/* eslint-disable @typescript-eslint/naming-convention */
|
||||
HD_NOTE_FORBIDDEN_ALIASES: forbiddenAliases.join(' , '),
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE:
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
PermissionLevelNames[PermissionLevel.WRITE],
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_LOGGED_IN:
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
PermissionLevelNames[PermissionLevel.WRITE],
|
||||
/* eslint-enable @typescript-eslint/naming-convention */
|
||||
},
|
||||
{
|
||||
@@ -122,8 +134,12 @@ describe('noteConfig', () => {
|
||||
expect(config.forbiddenAliases).toHaveLength(forbiddenAliases.length);
|
||||
expect(config.forbiddenAliases).toEqual(forbiddenAliases);
|
||||
expect(config.maxLength).toEqual(100000);
|
||||
expect(config.permissions.default.everyone).toEqual(PermissionLevel.READ);
|
||||
expect(config.permissions.default.loggedIn).toEqual(PermissionLevel.READ);
|
||||
expect(config.permissions.default.everyone).toEqual(
|
||||
PermissionLevel.WRITE,
|
||||
);
|
||||
expect(config.permissions.default.loggedIn).toEqual(
|
||||
PermissionLevel.WRITE,
|
||||
);
|
||||
|
||||
expect(config.permissions.maxGuestLevel).toEqual(guestAccess);
|
||||
restore();
|
||||
@@ -135,6 +151,8 @@ describe('noteConfig', () => {
|
||||
/* eslint-disable @typescript-eslint/naming-convention */
|
||||
HD_NOTE_FORBIDDEN_ALIASES: forbiddenAliases.join(' , '),
|
||||
HD_NOTE_MAX_LENGTH: maxLength.toString(),
|
||||
HD_NOTE_PERMISSIONS_MAX_GUEST_LEVEL:
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_LOGGED_IN:
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
/* eslint-enable @typescript-eslint/naming-convention */
|
||||
@@ -150,7 +168,7 @@ describe('noteConfig', () => {
|
||||
expect(config.permissions.default.everyone).toEqual(PermissionLevel.READ);
|
||||
expect(config.permissions.default.loggedIn).toEqual(PermissionLevel.READ);
|
||||
|
||||
expect(config.permissions.maxGuestLevel).toEqual(guestAccess);
|
||||
expect(config.permissions.maxGuestLevel).toEqual(PermissionLevel.READ);
|
||||
restore();
|
||||
});
|
||||
|
||||
@@ -161,7 +179,7 @@ describe('noteConfig', () => {
|
||||
HD_NOTE_FORBIDDEN_ALIASES: forbiddenAliases.join(' , '),
|
||||
HD_NOTE_MAX_LENGTH: maxLength.toString(),
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE:
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
PermissionLevelNames[PermissionLevel.WRITE],
|
||||
/* eslint-enable @typescript-eslint/naming-convention */
|
||||
},
|
||||
{
|
||||
@@ -172,7 +190,9 @@ describe('noteConfig', () => {
|
||||
expect(config.forbiddenAliases).toHaveLength(forbiddenAliases.length);
|
||||
expect(config.forbiddenAliases).toEqual(forbiddenAliases);
|
||||
expect(config.maxLength).toEqual(maxLength);
|
||||
expect(config.permissions.default.everyone).toEqual(PermissionLevel.READ);
|
||||
expect(config.permissions.default.everyone).toEqual(
|
||||
PermissionLevel.WRITE,
|
||||
);
|
||||
expect(config.permissions.default.loggedIn).toEqual(
|
||||
PermissionLevel.WRITE,
|
||||
);
|
||||
@@ -188,7 +208,7 @@ describe('noteConfig', () => {
|
||||
HD_NOTE_FORBIDDEN_ALIASES: forbiddenAliases.join(' , '),
|
||||
HD_NOTE_MAX_LENGTH: maxLength.toString(),
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE:
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
PermissionLevelNames[PermissionLevel.WRITE],
|
||||
/* eslint-enable @typescript-eslint/naming-convention */
|
||||
},
|
||||
{
|
||||
@@ -199,7 +219,9 @@ describe('noteConfig', () => {
|
||||
expect(config.forbiddenAliases).toHaveLength(forbiddenAliases.length);
|
||||
expect(config.forbiddenAliases).toEqual(forbiddenAliases);
|
||||
expect(config.maxLength).toEqual(maxLength);
|
||||
expect(config.permissions.default.everyone).toEqual(PermissionLevel.READ);
|
||||
expect(config.permissions.default.everyone).toEqual(
|
||||
PermissionLevel.WRITE,
|
||||
);
|
||||
expect(config.permissions.default.loggedIn).toEqual(
|
||||
PermissionLevel.WRITE,
|
||||
);
|
||||
@@ -214,9 +236,9 @@ describe('noteConfig', () => {
|
||||
HD_NOTE_FORBIDDEN_ALIASES: forbiddenAliases.join(' , '),
|
||||
HD_NOTE_MAX_LENGTH: maxLength.toString(),
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE:
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
PermissionLevelNames[PermissionLevel.WRITE],
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_LOGGED_IN:
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
PermissionLevelNames[PermissionLevel.WRITE],
|
||||
/* eslint-enable @typescript-eslint/naming-convention */
|
||||
},
|
||||
{
|
||||
@@ -227,8 +249,12 @@ describe('noteConfig', () => {
|
||||
expect(config.forbiddenAliases).toHaveLength(forbiddenAliases.length);
|
||||
expect(config.forbiddenAliases).toEqual(forbiddenAliases);
|
||||
expect(config.maxLength).toEqual(maxLength);
|
||||
expect(config.permissions.default.everyone).toEqual(PermissionLevel.READ);
|
||||
expect(config.permissions.default.loggedIn).toEqual(PermissionLevel.READ);
|
||||
expect(config.permissions.default.everyone).toEqual(
|
||||
PermissionLevel.WRITE,
|
||||
);
|
||||
expect(config.permissions.default.loggedIn).toEqual(
|
||||
PermissionLevel.WRITE,
|
||||
);
|
||||
expect(config.permissions.maxGuestLevel).toEqual(guestAccess);
|
||||
expect(config.revisionRetentionDays).toEqual(0);
|
||||
restore();
|
||||
@@ -241,9 +267,9 @@ describe('noteConfig', () => {
|
||||
HD_NOTE_FORBIDDEN_ALIASES: forbiddenAliases.join(' , '),
|
||||
HD_NOTE_MAX_LENGTH: maxLength.toString(),
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE:
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
PermissionLevelNames[PermissionLevel.WRITE],
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_LOGGED_IN:
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
PermissionLevelNames[PermissionLevel.WRITE],
|
||||
/* eslint-enable @typescript-eslint/naming-convention */
|
||||
},
|
||||
{
|
||||
@@ -254,8 +280,12 @@ describe('noteConfig', () => {
|
||||
expect(config.forbiddenAliases).toHaveLength(forbiddenAliases.length);
|
||||
expect(config.forbiddenAliases).toEqual(forbiddenAliases);
|
||||
expect(config.maxLength).toEqual(maxLength);
|
||||
expect(config.permissions.default.everyone).toEqual(PermissionLevel.READ);
|
||||
expect(config.permissions.default.loggedIn).toEqual(PermissionLevel.READ);
|
||||
expect(config.permissions.default.everyone).toEqual(
|
||||
PermissionLevel.WRITE,
|
||||
);
|
||||
expect(config.permissions.default.loggedIn).toEqual(
|
||||
PermissionLevel.WRITE,
|
||||
);
|
||||
expect(config.persistInterval).toEqual(10);
|
||||
restore();
|
||||
});
|
||||
@@ -468,76 +498,124 @@ describe('noteConfig', () => {
|
||||
clear: true,
|
||||
},
|
||||
);
|
||||
expect(() => noteConfig()).toThrow(
|
||||
`'HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE' is set to '${PermissionLevelNames[PermissionLevel.READ]}', but 'HD_NOTE_PERMISSIONS_MAX_GUEST_LEVEL' is set to '${PermissionLevelNames[PermissionLevel.DENY]}'. This does not work since the default level may not be higher than the maximum guest level.`,
|
||||
noteConfig();
|
||||
expect(spyConsoleError.mock.calls[0][0]).toContain(
|
||||
`HD_NOTE: 'HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE' is set to '${PermissionLevelNames[PermissionLevel.READ]}', but 'HD_NOTE_PERMISSIONS_MAX_GUEST_LEVEL' is set to '${PermissionLevelNames[PermissionLevel.DENY]}'. This does not work since the default level may not be higher than the maximum guest level.`,
|
||||
);
|
||||
expect(spyProcessExit).toHaveBeenCalledWith(1);
|
||||
restore();
|
||||
});
|
||||
|
||||
it('when HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE is set to write, but HD_PERMISSION_DEFAULT_LOGGED_IN is set to read', async () => {
|
||||
const restore = mockedEnv(
|
||||
{
|
||||
/* eslint-disable @typescript-eslint/naming-convention */
|
||||
HD_NOTE_FORBIDDEN_ALIASES: forbiddenAliases.join(' , '),
|
||||
HD_NOTE_MAX_LENGTH: maxLength.toString(),
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE:
|
||||
PermissionLevelNames[PermissionLevel.WRITE],
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_LOGGED_IN:
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
/* eslint-enable @typescript-eslint/naming-convention */
|
||||
},
|
||||
{
|
||||
clear: true,
|
||||
describe('more complex permissions', () => {
|
||||
describe.each([
|
||||
[
|
||||
PermissionLevelNames[PermissionLevel.WRITE],
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
],
|
||||
[
|
||||
PermissionLevelNames[PermissionLevel.WRITE],
|
||||
PermissionLevelNames[PermissionLevel.DENY],
|
||||
],
|
||||
[
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
PermissionLevelNames[PermissionLevel.DENY],
|
||||
],
|
||||
])(
|
||||
'check default everyone and logged-in interaction',
|
||||
(everyonePermission, loggedInPermission) => {
|
||||
it(`when HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE is set to ${everyonePermission}, but HD_PERMISSION_DEFAULT_LOGGED_IN is set to ${loggedInPermission}`, async () => {
|
||||
const restore = mockedEnv(
|
||||
{
|
||||
/* eslint-disable @typescript-eslint/naming-convention */
|
||||
HD_NOTE_FORBIDDEN_ALIASES: forbiddenAliases.join(' , '),
|
||||
HD_NOTE_MAX_LENGTH: maxLength.toString(),
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE: everyonePermission,
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_LOGGED_IN: loggedInPermission,
|
||||
/* eslint-enable @typescript-eslint/naming-convention */
|
||||
},
|
||||
{
|
||||
clear: true,
|
||||
},
|
||||
);
|
||||
noteConfig();
|
||||
expect(spyConsoleError.mock.calls[0][0]).toContain(
|
||||
`HD_NOTE: 'HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE' is set to '${everyonePermission}', but 'HD_NOTE_PERMISSIONS_DEFAULT_LOGGED_IN' is set to '${loggedInPermission}'. This would give everyone greater permissions than logged-in users, and is not allowed since it doesn't make sense.`,
|
||||
);
|
||||
restore();
|
||||
});
|
||||
},
|
||||
);
|
||||
expect(() => noteConfig()).toThrow(
|
||||
`'HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE' is set to '${PermissionLevelNames[PermissionLevel.WRITE]}', but 'HD_NOTE_PERMISSIONS_DEFAULT_LOGGED_IN' is set to '${PermissionLevelNames[PermissionLevel.READ]}'. This would give everyone greater permissions than logged-in users, and is not allowed since it doesn't make sense.`,
|
||||
);
|
||||
restore();
|
||||
});
|
||||
|
||||
it('when HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE is set to write, but HD_PERMISSION_DEFAULT_LOGGED_IN is set to none', async () => {
|
||||
const restore = mockedEnv(
|
||||
{
|
||||
/* eslint-disable @typescript-eslint/naming-convention */
|
||||
HD_NOTE_FORBIDDEN_ALIASES: forbiddenAliases.join(' , '),
|
||||
HD_NOTE_MAX_LENGTH: maxLength.toString(),
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE:
|
||||
PermissionLevelNames[PermissionLevel.WRITE],
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_LOGGED_IN:
|
||||
PermissionLevelNames[PermissionLevel.DENY],
|
||||
/* eslint-enable @typescript-eslint/naming-convention */
|
||||
},
|
||||
{
|
||||
clear: true,
|
||||
describe.each([
|
||||
[
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
PermissionLevelNames[PermissionLevel.DENY],
|
||||
],
|
||||
])(
|
||||
'check default everyone and max guest level full',
|
||||
(defaultEveryone) => {
|
||||
it(`when HD_NOTE_PERMISSIONS_MAX_GUEST_LEVEL is set to ${PermissionLevelNames[PermissionLevel.FULL]} and HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE is set to ${defaultEveryone}`, async () => {
|
||||
const restore = mockedEnv(
|
||||
{
|
||||
/* eslint-disable @typescript-eslint/naming-convention */
|
||||
HD_NOTE_FORBIDDEN_ALIASES: forbiddenAliases.join(' , '),
|
||||
HD_NOTE_MAX_LENGTH: maxLength.toString(),
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE: defaultEveryone,
|
||||
HD_NOTE_PERMISSIONS_MAX_GUEST_LEVEL:
|
||||
PermissionLevelNames[PermissionLevel.FULL],
|
||||
/* eslint-enable @typescript-eslint/naming-convention */
|
||||
},
|
||||
{
|
||||
clear: true,
|
||||
},
|
||||
);
|
||||
noteConfig();
|
||||
expect(spyConsoleError.mock.calls[0][0]).toContain(
|
||||
`'HD_NOTE_PERMISSIONS_MAX_GUEST_LEVEL' is set to '${PermissionLevelNames[PermissionLevel.FULL]}', but 'HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE' is set to '${defaultEveryone}'. This does not allow the guest users to write in the notes they can create.`,
|
||||
);
|
||||
expect(spyProcessExit).toHaveBeenCalledWith(1);
|
||||
restore();
|
||||
});
|
||||
},
|
||||
);
|
||||
expect(() => noteConfig()).toThrow(
|
||||
`'HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE' is set to '${PermissionLevelNames[PermissionLevel.WRITE]}', but 'HD_NOTE_PERMISSIONS_DEFAULT_LOGGED_IN' is set to '${PermissionLevelNames[PermissionLevel.DENY]}'. This would give everyone greater permissions than logged-in users, and is not allowed since it doesn't make sense.`,
|
||||
);
|
||||
restore();
|
||||
});
|
||||
|
||||
it('when HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE is set to read, but HD_NOTE_PERMISSIONS_DEFAULT_LOGGED_IN is set to none', async () => {
|
||||
const restore = mockedEnv(
|
||||
{
|
||||
/* eslint-disable @typescript-eslint/naming-convention */
|
||||
HD_NOTE_FORBIDDEN_ALIASES: forbiddenAliases.join(' , '),
|
||||
HD_NOTE_MAX_LENGTH: maxLength.toString(),
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE:
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_LOGGED_IN:
|
||||
PermissionLevelNames[PermissionLevel.DENY],
|
||||
/* eslint-enable @typescript-eslint/naming-convention */
|
||||
},
|
||||
{
|
||||
clear: true,
|
||||
describe.each([
|
||||
[
|
||||
PermissionLevelNames[PermissionLevel.WRITE],
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
],
|
||||
[
|
||||
PermissionLevelNames[PermissionLevel.WRITE],
|
||||
PermissionLevelNames[PermissionLevel.DENY],
|
||||
],
|
||||
[
|
||||
PermissionLevelNames[PermissionLevel.READ],
|
||||
PermissionLevelNames[PermissionLevel.DENY],
|
||||
],
|
||||
])(
|
||||
'check default everyone and max guest level full',
|
||||
(defaultEveryone, maxGuestLevel) => {
|
||||
it(`when 'HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE' is set to '${defaultEveryone}', but 'HD_NOTE_PERMISSIONS_MAX_GUEST_LEVEL' is set to '${maxGuestLevel}'`, async () => {
|
||||
const restore = mockedEnv(
|
||||
{
|
||||
/* eslint-disable @typescript-eslint/naming-convention */
|
||||
HD_NOTE_FORBIDDEN_ALIASES: forbiddenAliases.join(' , '),
|
||||
HD_NOTE_MAX_LENGTH: maxLength.toString(),
|
||||
HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE: defaultEveryone,
|
||||
HD_NOTE_PERMISSIONS_MAX_GUEST_LEVEL: maxGuestLevel,
|
||||
/* eslint-enable @typescript-eslint/naming-convention */
|
||||
},
|
||||
{
|
||||
clear: true,
|
||||
},
|
||||
);
|
||||
noteConfig();
|
||||
expect(spyConsoleError.mock.calls[0][0]).toContain(
|
||||
`HD_NOTE: 'HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE' is set to '${defaultEveryone}', but 'HD_NOTE_PERMISSIONS_MAX_GUEST_LEVEL' is set to '${maxGuestLevel}'. This does not work since the default level may not be higher than the maximum guest level.`,
|
||||
);
|
||||
expect(spyProcessExit).toHaveBeenCalledWith(1);
|
||||
restore();
|
||||
});
|
||||
},
|
||||
);
|
||||
expect(() => noteConfig()).toThrow(
|
||||
`'HD_NOTE_PERMISSIONS_DEFAULT_EVERYONE' is set to '${PermissionLevelNames[PermissionLevel.READ]}', but 'HD_NOTE_PERMISSIONS_DEFAULT_LOGGED_IN' is set to '${PermissionLevelNames[PermissionLevel.DENY]}'. This would give everyone greater permissions than logged-in users, and is not allowed since it doesn't make sense.`,
|
||||
);
|
||||
restore();
|
||||
});
|
||||
|
||||
it('when given a negative retention days', async () => {
|
||||
|
||||
Reference in New Issue
Block a user