Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions client/src/components/reports/ReportContentEditor.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ const LABELS: ReportContentLabels = {
sourceType: 'REPORT_SOURCE_TYPE_LABEL',
reference: 'REPORT_REFERENCE_LABEL',
generatedAt: 'REPORT_GENERATED_AT_LABEL',
pageLabel: 'REPORT_PAGE_LABEL',
};

function makeRow(overrides: Partial<ReportContentRow> = {}): ReportContentRow {
Expand Down
1 change: 1 addition & 0 deletions client/src/lib/reportContent/applyAiContent.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ function makeLabels(): ReportContent['labels'] {
sourceType: 'Source Type',
reference: 'Reference',
generatedAt: 'Generated At',
pageLabel: 'Page',
};
}

Expand Down
1 change: 1 addition & 0 deletions client/src/lib/reportContent/applyOverrides.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ function makeLabels(): ReportContent['labels'] {
sourceType: 'Source Type',
reference: 'Reference',
generatedAt: 'Generated At',
pageLabel: 'Page',
};
}

Expand Down
1 change: 1 addition & 0 deletions client/src/lib/reportContent/buildReportContent.ts
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,7 @@ export function buildReportContent(
sourceType: reportT('sourceReports.table.sourceType'),
reference: reportT('sourceReports.table.reference'),
generatedAt: reportT('sourceReports.table.generatedAt'),
pageLabel: reportT('sourceReports.table.pageLabel'),
},
sourceInfo,
coverLetter,
Expand Down
1 change: 1 addition & 0 deletions client/src/lib/reportContent/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ export interface ReportContentLabels {
sourceType: string;
reference: string;
generatedAt: string;
pageLabel: string; // "Page N / M" label in the PDF footer, translated in report language
}

export interface ReportContent {
Expand Down
1 change: 1 addition & 0 deletions client/src/lib/reportPdf/coverLetterPdf.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ function makeContent(overrides: Partial<ReportContent> = {}): ReportContent {
sourceType: 'Source Type',
reference: 'Reference',
generatedAt: 'Generated At',
pageLabel: 'Page',
},
sourceInfo: {
sourceName: 'Home Loan',
Expand Down
6 changes: 6 additions & 0 deletions client/src/lib/reportPdf/merge.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,7 @@ function makeContent(overrides: Partial<ReportContent> = {}): ReportContent {
sourceType: 'Source Type',
reference: 'Reference',
generatedAt: 'Generated At',
pageLabel: 'Page',
},
sourceInfo: {
sourceName: 'Home Loan',
Expand Down Expand Up @@ -704,6 +705,7 @@ describe('generateReportPdf', () => {

const sharedModule = (await import('./shared.js')) as unknown as {
buildPageHeader: jest.Mock;
buildPageFooter: jest.Mock;
};
// #1938: the third arg is "label: value", not the bare i18n key — the label cannot silently
// lose its value again. labels.generatedAt='Generated At', generatedAtText='01/15/2026'.
Expand All @@ -712,6 +714,10 @@ describe('generateReportPdf', () => {
'My Source',
'Generated At: 01/15/2026',
);
// #1993: footer must use the injected report-language label, not the ambient UI locale t().
// content.labels.pageLabel='Page' (set in makeContent), so the call must receive that string,
// not t('sourceReports.table.pageLabel') from the UI locale.
expect(sharedModule.buildPageFooter).toHaveBeenCalledWith('Page');

// [regression #1929] On current beta this is the hardcoded [40, 40, 40, 60] — the top margin
// equaled the LEFT margin, not a value sized to the rendered page-header footprint, so the
Expand Down
2 changes: 1 addition & 1 deletion client/src/lib/reportPdf/merge.ts
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ export async function generateReportPdf(
`${reportContent.labels.generatedAt}: ${reportContent.sourceInfo.generatedAtText}`,
);
},
footer: buildPageFooter(t('sourceReports.table.pageLabel')),
footer: buildPageFooter(reportContent.labels.pageLabel),
defaultStyle: PDF_DEFAULT_STYLE,
styles: PDF_STYLES,
});
Expand Down
1 change: 1 addition & 0 deletions client/src/lib/reportPdf/overviewPdf.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ function makeLabels(): ReportContent['labels'] {
sourceType: 'sourceReports.table.sourceType',
reference: 'sourceReports.table.reference',
generatedAt: 'sourceReports.table.generatedAt',
pageLabel: 'sourceReports.table.pageLabel',
};
}

Expand Down
1 change: 1 addition & 0 deletions client/src/lib/reportPdf/realRender.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2346,6 +2346,7 @@ describe('report PDF pipeline — real, unmocked end-to-end render', () => {
sourceType: 'Source Type',
reference: 'Reference',
generatedAt: 'Generated At',
pageLabel: 'Page',
},
sourceInfo: {
sourceName: 'Cell Scope Source',
Expand Down
2 changes: 1 addition & 1 deletion wiki
Submodule wiki updated from 48bd4a to 18dc09
Loading