From e8d5dff3b95687f3e23764eb803e92d8fe7c6856 Mon Sep 17 00:00:00 2001 From: Ivan Kalashnikov Date: Mon, 19 Jan 2026 01:04:29 +0700 Subject: [PATCH] fix: update getMigrations method to accept version range parameters and fix tests --- .../schema-migration.service.spec.ts | 2 +- .../persistence/schema-migration.service.ts | 21 ++++++++++++++++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/app/op-log/persistence/schema-migration.service.spec.ts b/src/app/op-log/persistence/schema-migration.service.spec.ts index b6e98dae6..18ce2beac 100644 --- a/src/app/op-log/persistence/schema-migration.service.spec.ts +++ b/src/app/op-log/persistence/schema-migration.service.spec.ts @@ -68,7 +68,7 @@ describe('SchemaMigrationService', () => { it('should return empty array for initial version', () => { // No migrations defined yet for version 1 - const migrations = service.getMigrations(); + const migrations = service.getMigrations(1, 1); expect(migrations.length).toBe(0); }); }); diff --git a/src/app/op-log/persistence/schema-migration.service.ts b/src/app/op-log/persistence/schema-migration.service.ts index ea41c2615..dc38d1136 100644 --- a/src/app/op-log/persistence/schema-migration.service.ts +++ b/src/app/op-log/persistence/schema-migration.service.ts @@ -224,9 +224,24 @@ export class SchemaMigrationService { } /** - * Returns all registered migrations (for debugging/testing). + * Returns registered migrations for a specific version range. + * If no range is provided, returns all migrations. + * + * @param fromVersion - The starting version (inclusive). + * @param toVersion - The ending version (inclusive). + * @returns Array of migrations within the specified range. */ - getMigrations(): readonly SchemaMigration[] { - return MIGRATIONS; + getMigrations(fromVersion?: number, toVersion?: number): readonly SchemaMigration[] { + if (fromVersion === undefined && toVersion === undefined) { + return MIGRATIONS; + } + + return MIGRATIONS.filter((migration) => { + const isAfterFromVersion = + fromVersion === undefined || migration.fromVersion >= fromVersion; + const isBeforeToVersion = + toVersion === undefined || migration.toVersion <= toVersion; + return isAfterFromVersion && isBeforeToVersion; + }); } }