feat(schema): one migration + domain model for import/precision/identity (Phase 2, #671) #673
@@ -562,6 +562,25 @@ class MigrationIntegrationTest {
|
|||||||
assertThat(rows).isEqualTo(1);
|
assertThat(rows).isEqualTo(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void v69_metaDateEndCheck_allowsRangeWithBothEndpointsNull() {
|
||||||
|
// Fully-open RANGE: neither start (meta_date) nor end (meta_date_end) is set.
|
||||||
|
// Both CHECKs hold (end IS NULL passes chk_meta_date_end_only_for_range; both-null
|
||||||
|
// passes chk_meta_date_end_after_start), so the row survives. This locks the actual
|
||||||
|
// DB behavior so a future tightening to a biconditional rule is a deliberate change.
|
||||||
|
UUID docId = createDocument(); // null meta_date
|
||||||
|
|
||||||
|
int rows = jdbc.update(
|
||||||
|
"UPDATE documents SET meta_date_precision = 'RANGE' WHERE id = ?", docId);
|
||||||
|
assertThat(rows).isEqualTo(1);
|
||||||
|
|
||||||
|
Object metaDate = jdbc.queryForObject("SELECT meta_date FROM documents WHERE id = ?", Object.class, docId);
|
||||||
|
Object metaDateEnd = jdbc.queryForObject(
|
||||||
|
"SELECT meta_date_end FROM documents WHERE id = ?", Object.class, docId);
|
||||||
|
assertThat(metaDate).isNull();
|
||||||
|
assertThat(metaDateEnd).isNull();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void v69_rangeOrderCheck_rejectsEndBeforeStart() {
|
void v69_rangeOrderCheck_rejectsEndBeforeStart() {
|
||||||
UUID docId = createDocumentWithDate("1943-05-12");
|
UUID docId = createDocumentWithDate("1943-05-12");
|
||||||
|
|||||||
Reference in New Issue
Block a user