Compare commits
3 Commits
d959cb54f1
...
b959e312b1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b959e312b1 | ||
|
|
ae674b14d4 | ||
|
|
c9fb14fd49 |
@@ -45,6 +45,13 @@ jobs:
|
||||
run: npm run lint
|
||||
working-directory: frontend
|
||||
|
||||
# svelte-check / tsc — catches generated-type drift (e.g. a hand-edited
|
||||
# api.ts whose required fields are missing from Document/Person mocks).
|
||||
# `npm run lint` alone does not type-check. See PR #673 / #671.
|
||||
- name: Type check
|
||||
run: npm run check
|
||||
working-directory: frontend
|
||||
|
||||
- name: Assert no banned vi.mock patterns
|
||||
shell: bash
|
||||
run: |
|
||||
|
||||
@@ -562,6 +562,25 @@ class MigrationIntegrationTest {
|
||||
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
|
||||
void v69_rangeOrderCheck_rejectsEndBeforeStart() {
|
||||
UUID docId = createDocumentWithDate("1943-05-12");
|
||||
|
||||
@@ -16,6 +16,7 @@ const baseDoc: Document = {
|
||||
title: 'Brief an Hans',
|
||||
originalFilename: 'brief.pdf',
|
||||
status: 'UPLOADED',
|
||||
metaDatePrecision: 'UNKNOWN',
|
||||
metadataComplete: true,
|
||||
scriptType: 'HANDWRITING_KURRENT',
|
||||
createdAt: '2025-01-01T12:00:00Z',
|
||||
@@ -127,7 +128,8 @@ describe('ReaderRecentDocs', () => {
|
||||
firstName: 'Anna',
|
||||
displayName: 'Anna Müller',
|
||||
personType: 'PERSON' as const,
|
||||
familyMember: false
|
||||
familyMember: false,
|
||||
provisional: false
|
||||
}
|
||||
};
|
||||
render(ReaderRecentDocs, { documents: [docWithSender] });
|
||||
|
||||
@@ -20,6 +20,7 @@ const makePerson = (id: string, name: string, overrides: Partial<Person> = {}):
|
||||
displayName: name,
|
||||
personType: 'PERSON',
|
||||
familyMember: false,
|
||||
provisional: false,
|
||||
...overrides
|
||||
};
|
||||
};
|
||||
|
||||
@@ -34,6 +34,7 @@ const AUGUSTE: Person = {
|
||||
displayName: 'Auguste Raddatz',
|
||||
personType: 'PERSON',
|
||||
familyMember: false,
|
||||
provisional: false,
|
||||
birthYear: 1882,
|
||||
deathYear: 1944
|
||||
};
|
||||
@@ -45,6 +46,7 @@ const ANNA: Person = {
|
||||
displayName: 'Anna Schmidt',
|
||||
personType: 'PERSON',
|
||||
familyMember: false,
|
||||
provisional: false,
|
||||
birthYear: 1860
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user