test: serialise the buffer over events

This commit is contained in:
izzy
2025-12-01 11:20:34 +00:00
parent c4ac8d9f63
commit 01f96de3e5
6 changed files with 27 additions and 13 deletions

View File

@@ -221,7 +221,7 @@ describe('/admin/maintenance', () => {
// => enter maintenance mode // => enter maintenance mode
describe.skip.sequential('POST /', () => { describe.sequential('POST /', () => {
it('should require authentication', async () => { it('should require authentication', async () => {
const { status, body } = await request(app).post('/admin/maintenance').send({ const { status, body } = await request(app).post('/admin/maintenance').send({
action: 'end', action: 'end',
@@ -278,7 +278,7 @@ describe('/admin/maintenance', () => {
// => in maintenance mode // => in maintenance mode
describe.skip.sequential('in maintenance mode', () => { describe.sequential('in maintenance mode', () => {
describe('GET ~/server/config', async () => { describe('GET ~/server/config', async () => {
it('should indicate we are in maintenance mode', async () => { it('should indicate we are in maintenance mode', async () => {
const { status, body } = await request(app).get('/server/config'); const { status, body } = await request(app).get('/server/config');
@@ -332,7 +332,7 @@ describe('/admin/maintenance', () => {
// => exit maintenance mode // => exit maintenance mode
describe.skip.sequential('POST /', () => { describe.sequential('POST /', () => {
it('should exit maintenance mode', async () => { it('should exit maintenance mode', async () => {
const { status } = await request(app).post('/admin/maintenance').set('cookie', cookie!).send({ const { status } = await request(app).post('/admin/maintenance').set('cookie', cookie!).send({
action: 'end', action: 'end',

View File

@@ -80,10 +80,12 @@ class JobName {
static const workflowRun = JobName._(r'WorkflowRun'); static const workflowRun = JobName._(r'WorkflowRun');
static const integrityOrphanedFilesQueueAll = JobName._(r'IntegrityOrphanedFilesQueueAll'); static const integrityOrphanedFilesQueueAll = JobName._(r'IntegrityOrphanedFilesQueueAll');
static const integrityOrphanedFiles = JobName._(r'IntegrityOrphanedFiles'); static const integrityOrphanedFiles = JobName._(r'IntegrityOrphanedFiles');
static const integrityOrphanedCheckReports = JobName._(r'IntegrityOrphanedCheckReports'); static const integrityOrphanedRefresh = JobName._(r'IntegrityOrphanedRefresh');
static const integrityMissingFilesQueueAll = JobName._(r'IntegrityMissingFilesQueueAll'); static const integrityMissingFilesQueueAll = JobName._(r'IntegrityMissingFilesQueueAll');
static const integrityMissingFiles = JobName._(r'IntegrityMissingFiles'); static const integrityMissingFiles = JobName._(r'IntegrityMissingFiles');
static const integrityMissingFilesRefresh = JobName._(r'IntegrityMissingFilesRefresh');
static const integrityChecksumFiles = JobName._(r'IntegrityChecksumFiles'); static const integrityChecksumFiles = JobName._(r'IntegrityChecksumFiles');
static const integrityChecksumFilesRefresh = JobName._(r'IntegrityChecksumFilesRefresh');
/// List of all possible values in this [enum][JobName]. /// List of all possible values in this [enum][JobName].
static const values = <JobName>[ static const values = <JobName>[
@@ -144,10 +146,12 @@ class JobName {
workflowRun, workflowRun,
integrityOrphanedFilesQueueAll, integrityOrphanedFilesQueueAll,
integrityOrphanedFiles, integrityOrphanedFiles,
integrityOrphanedCheckReports, integrityOrphanedRefresh,
integrityMissingFilesQueueAll, integrityMissingFilesQueueAll,
integrityMissingFiles, integrityMissingFiles,
integrityMissingFilesRefresh,
integrityChecksumFiles, integrityChecksumFiles,
integrityChecksumFilesRefresh,
]; ];
static JobName? fromJson(dynamic value) => JobNameTypeTransformer().decode(value); static JobName? fromJson(dynamic value) => JobNameTypeTransformer().decode(value);
@@ -243,10 +247,12 @@ class JobNameTypeTransformer {
case r'WorkflowRun': return JobName.workflowRun; case r'WorkflowRun': return JobName.workflowRun;
case r'IntegrityOrphanedFilesQueueAll': return JobName.integrityOrphanedFilesQueueAll; case r'IntegrityOrphanedFilesQueueAll': return JobName.integrityOrphanedFilesQueueAll;
case r'IntegrityOrphanedFiles': return JobName.integrityOrphanedFiles; case r'IntegrityOrphanedFiles': return JobName.integrityOrphanedFiles;
case r'IntegrityOrphanedCheckReports': return JobName.integrityOrphanedCheckReports; case r'IntegrityOrphanedRefresh': return JobName.integrityOrphanedRefresh;
case r'IntegrityMissingFilesQueueAll': return JobName.integrityMissingFilesQueueAll; case r'IntegrityMissingFilesQueueAll': return JobName.integrityMissingFilesQueueAll;
case r'IntegrityMissingFiles': return JobName.integrityMissingFiles; case r'IntegrityMissingFiles': return JobName.integrityMissingFiles;
case r'IntegrityMissingFilesRefresh': return JobName.integrityMissingFilesRefresh;
case r'IntegrityChecksumFiles': return JobName.integrityChecksumFiles; case r'IntegrityChecksumFiles': return JobName.integrityChecksumFiles;
case r'IntegrityChecksumFilesRefresh': return JobName.integrityChecksumFilesRefresh;
default: default:
if (!allowNull) { if (!allowNull) {
throw ArgumentError('Unknown enum value to decode: $data'); throw ArgumentError('Unknown enum value to decode: $data');

View File

@@ -16775,10 +16775,12 @@
"WorkflowRun", "WorkflowRun",
"IntegrityOrphanedFilesQueueAll", "IntegrityOrphanedFilesQueueAll",
"IntegrityOrphanedFiles", "IntegrityOrphanedFiles",
"IntegrityOrphanedCheckReports", "IntegrityOrphanedRefresh",
"IntegrityMissingFilesQueueAll", "IntegrityMissingFilesQueueAll",
"IntegrityMissingFiles", "IntegrityMissingFiles",
"IntegrityChecksumFiles" "IntegrityMissingFilesRefresh",
"IntegrityChecksumFiles",
"IntegrityChecksumFilesRefresh"
], ],
"type": "string" "type": "string"
}, },

View File

@@ -5558,10 +5558,12 @@ export enum JobName {
WorkflowRun = "WorkflowRun", WorkflowRun = "WorkflowRun",
IntegrityOrphanedFilesQueueAll = "IntegrityOrphanedFilesQueueAll", IntegrityOrphanedFilesQueueAll = "IntegrityOrphanedFilesQueueAll",
IntegrityOrphanedFiles = "IntegrityOrphanedFiles", IntegrityOrphanedFiles = "IntegrityOrphanedFiles",
IntegrityOrphanedCheckReports = "IntegrityOrphanedCheckReports", IntegrityOrphanedRefresh = "IntegrityOrphanedRefresh",
IntegrityMissingFilesQueueAll = "IntegrityMissingFilesQueueAll", IntegrityMissingFilesQueueAll = "IntegrityMissingFilesQueueAll",
IntegrityMissingFiles = "IntegrityMissingFiles", IntegrityMissingFiles = "IntegrityMissingFiles",
IntegrityChecksumFiles = "IntegrityChecksumFiles" IntegrityMissingFilesRefresh = "IntegrityMissingFilesRefresh",
IntegrityChecksumFiles = "IntegrityChecksumFiles",
IntegrityChecksumFilesRefresh = "IntegrityChecksumFilesRefresh"
} }
export enum SearchSuggestionType { export enum SearchSuggestionType {
Country = "country", Country = "country",

View File

@@ -371,7 +371,11 @@ export class IntegrityService extends BaseService {
await this.jobRepository.queue({ await this.jobRepository.queue({
name: JobName.IntegrityChecksumFilesRefresh, name: JobName.IntegrityChecksumFilesRefresh,
data: { data: {
items: batchReports, items: batchReports.map(({ path, reportId, checksum }) => ({
path,
reportId,
checksum: checksum?.toString('hex'),
})),
}, },
}); });
@@ -505,7 +509,7 @@ export class IntegrityService extends BaseService {
}), }),
]); ]);
if (checksum.equals(hash.digest())) { if (Buffer.from(checksum, 'hex').equals(hash.digest())) {
return reportId; return reportId;
} }
} catch (error) { } catch (error) {

View File

@@ -296,7 +296,7 @@ export interface IIntegrityPathWithReportJob {
} }
export interface IIntegrityPathWithChecksumJob { export interface IIntegrityPathWithChecksumJob {
items: { path: string; reportId: string | null; checksum?: Buffer | null }[]; items: { path: string; reportId: string | null; checksum?: string | null }[];
} }
export interface JobCounts { export interface JobCounts {