fix(build): Page auth config fixes.

This commit is contained in:
SamTolmay 2021-03-11 10:14:27 +02:00
parent cea898252d
commit 601c942e4f
4 changed files with 51 additions and 2 deletions

View File

@ -41,6 +41,12 @@ async function buildConfig({ components }) {
'Protected and public pages are mutually exclusive. When protected pages are listed, all unlisted pages are public by default and visa versa.'
);
}
if (components.config.auth.pages.protected === false) {
throw new Error('Protected pages can not be set to false.');
}
if (components.config.auth.pages.public === false) {
throw new Error('Public pages can not be set to false.');
}
components.auth = {};
if (
type.isArray(components.config.auth.pages.public) ||

View File

@ -58,6 +58,33 @@ test('buildConfig config error when both protected and public pages are true', a
);
});
test('buildConfig config error when both protected or public are false.', async () => {
let components = {
config: {
auth: {
pages: {
protected: false,
},
},
},
};
await expect(buildConfig({ components, context })).rejects.toThrow(
'Protected pages can not be set to false.'
);
components = {
config: {
auth: {
pages: {
public: false,
},
},
},
};
await expect(buildConfig({ components, context })).rejects.toThrow(
'Public pages can not be set to false.'
);
});
test('buildConfig default', async () => {
const components = {};
const res = await buildConfig({ components, context });

View File

@ -37,6 +37,22 @@ test('empty components', async () => {
expect().toBe();
});
test('page auth config', async () => {
const components = {
version: '1.0.0',
config: {
auth: {
pages: {
protected: true,
public: ['page1'],
},
},
},
};
await testSchema({ components, context });
expect().toBe();
});
test('app schema', async () => {
const components = {
version: '1.0.0',

View File

@ -446,7 +446,7 @@
},
"properties": {
"protected": {
"type": "array",
"type": ["array", "boolean"],
"errorMessage": {
"type": "App \"config.auth.pages.protected.$\" should be an array of strings."
},
@ -459,7 +459,7 @@
}
},
"public": {
"type": "array",
"type": ["array", "boolean"],
"errorMessage": {
"type": "App \"config.auth.pages.public.$\" should be an array of strings."
},