Ensure consistency
This commit is contained in:
parent
9bac192cf9
commit
041f85886c
|
@ -294,6 +294,7 @@ describe.each([
|
||||||
readonly: true,
|
readonly: true,
|
||||||
},
|
},
|
||||||
description: {
|
description: {
|
||||||
|
visible: true,
|
||||||
readonly: true,
|
readonly: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -306,6 +307,7 @@ describe.each([
|
||||||
readonly: true,
|
readonly: true,
|
||||||
},
|
},
|
||||||
description: {
|
description: {
|
||||||
|
visible: true,
|
||||||
readonly: true,
|
readonly: true,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
@ -348,6 +350,42 @@ describe.each([
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it("readonly fields must be visible", async () => {
|
||||||
|
const table = await config.api.table.save(
|
||||||
|
saveTableRequest({
|
||||||
|
schema: {
|
||||||
|
name: {
|
||||||
|
name: "name",
|
||||||
|
type: FieldType.STRING,
|
||||||
|
},
|
||||||
|
description: {
|
||||||
|
name: "description",
|
||||||
|
type: FieldType.STRING,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
)
|
||||||
|
|
||||||
|
const newView: CreateViewRequest = {
|
||||||
|
name: generator.name(),
|
||||||
|
tableId: table._id!,
|
||||||
|
schema: {
|
||||||
|
name: {
|
||||||
|
visible: false,
|
||||||
|
readonly: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
await config.api.viewV2.create(newView, {
|
||||||
|
status: 400,
|
||||||
|
body: {
|
||||||
|
message: 'Field "name" cannot be readonly and not visible',
|
||||||
|
status: 400,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe("update", () => {
|
describe("update", () => {
|
||||||
|
|
|
@ -52,15 +52,21 @@ async function guardViewSchema(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (viewSchema[field].readonly) {
|
||||||
viewSchema[field].readonly &&
|
if (isRequired(tableSchemaField.constraints)) {
|
||||||
isRequired(tableSchemaField.constraints)
|
|
||||||
) {
|
|
||||||
throw new HTTPError(
|
throw new HTTPError(
|
||||||
`Field "${field}" cannot be readonly as it is a required field`,
|
`Field "${field}" cannot be readonly as it is a required field`,
|
||||||
400
|
400
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!viewSchema[field].visible) {
|
||||||
|
throw new HTTPError(
|
||||||
|
`Field "${field}" cannot be readonly and not visible`,
|
||||||
|
400
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue