1
0
Fork 0
mirror of synced 2024-09-20 19:33:10 +12:00

More validations

This commit is contained in:
Adria Navarro 2024-07-31 17:40:30 +02:00
parent ad74eca709
commit 8f741ffe6a
2 changed files with 67 additions and 31 deletions

View file

@ -1118,7 +1118,7 @@ describe.each([
it.each(
isInternal ? PROTECTED_INTERNAL_COLUMNS : PROTECTED_EXTERNAL_COLUMNS
)("don't allow protected names (%s)", async columnName => {
)("don't allow protected names in schema (%s)", async columnName => {
const result = await config.api.table.validateNewTableImport(
[
{
@ -1127,6 +1127,36 @@ describe.each([
[columnName]: generator.word(),
},
],
{
...basicSchema,
}
)
expect(result).toEqual({
allValid: false,
errors: {
[columnName]: `${columnName} is a protected column name`,
},
invalidColumns: [],
schemaValidation: {
id: true,
name: true,
[columnName]: false,
},
})
})
isInternal &&
it.each(
isInternal ? PROTECTED_INTERNAL_COLUMNS : PROTECTED_EXTERNAL_COLUMNS
)("don't allow protected names in the rows (%s)", async columnName => {
const result = await config.api.table.validateNewTableImport(
[
{
id: generator.natural(),
name: generator.first(),
},
],
{
...basicSchema,
[columnName]: {
@ -1139,7 +1169,7 @@ describe.each([
expect(result).toEqual({
allValid: false,
errors: {
[columnName]: `${columnName} is a protected name`,
[columnName]: `${columnName} is a protected column name`,
},
invalidColumns: [],
schemaValidation: {
@ -1148,8 +1178,7 @@ describe.each([
[columnName]: false,
},
})
}
)
})
})
describe("validateExistingTableImport", () => {

View file

@ -71,7 +71,7 @@ export function validate(
if (protectedColumnNames.includes(columnName.toLowerCase())) {
results.schemaValidation[columnName] = false
results.errors[columnName] = `${columnName} is a protected name`
results.errors[columnName] = `${columnName} is a protected column name`
return
}
@ -121,6 +121,13 @@ export function validate(
})
})
for (const schemaField of Object.keys(schema)) {
if (protectedColumnNames.includes(schemaField.toLowerCase())) {
results.schemaValidation[schemaField] = false
results.errors[schemaField] = `${schemaField} is a protected column name`
}
}
results.allValid =
Object.values(results.schemaValidation).length > 0 &&
Object.values(results.schemaValidation).every(column => column)