Files
bookorbit/server/src/modules/koreader/koreader.module.test.ts
T
neon f41a58ac58 fix(stats): stop estimating sessions from KOReader progress
Keep KOSync limited to position synchronization and rely on measured page timings from the BookOrbit plugin for KOReader reading sessions. Remove legacy estimates at startup and rebuild affected daily totals.

Fixes #1233
2026-09-01 05:05:52 +00:00

48 lines
2.4 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import { KoreaderAnnotationExchangeService } from './koreader-annotation-exchange.service';
import { KoreaderBookmarkExchangeService } from './koreader-bookmark-exchange.service';
import { KoreaderBookmarkRepository } from './koreader-bookmark.repository';
import { KoreaderAuthGuard } from './koreader-auth.guard';
import { KoreaderCatalogController } from './koreader-catalog.controller';
import { KoreaderCatalogService } from './koreader-catalog.service';
import { KoreaderChapterExtractorService } from './koreader-chapter-extractor.service';
import { KoreaderChapterService } from './koreader-chapter.service';
import { KoreaderController } from './koreader.controller';
import { KoreaderHashLinkService } from './koreader-hash-link.service';
import { KoreaderModule } from './koreader.module';
import { KoreaderPackageService } from './koreader-package.service';
import { KoreaderPluginAnnotationService } from './koreader-plugin-annotation.service';
import { KoreaderPluginController } from './koreader-plugin.controller';
import { KoreaderPluginRepository } from './koreader-plugin.repository';
import { KoreaderPluginService } from './koreader-plugin.service';
import { KoreaderRepository } from './koreader.repository';
import { KoreaderService } from './koreader.service';
import { KoreaderStatsService } from './koreader-stats.service';
import { KoreaderSyncEstimateCleanupService } from './koreader-sync-estimate-cleanup.service';
describe('KoreaderModule', () => {
it('registers expected controllers, providers, and exports', () => {
expect(Reflect.getMetadata('controllers', KoreaderModule)).toEqual([KoreaderController, KoreaderPluginController, KoreaderCatalogController]);
expect(Reflect.getMetadata('providers', KoreaderModule)).toEqual([
KoreaderService,
KoreaderHashLinkService,
KoreaderRepository,
KoreaderAuthGuard,
KoreaderCatalogService,
KoreaderPackageService,
KoreaderChapterService,
KoreaderChapterExtractorService,
KoreaderPluginService,
KoreaderPluginRepository,
KoreaderPluginAnnotationService,
KoreaderAnnotationExchangeService,
KoreaderBookmarkExchangeService,
KoreaderBookmarkRepository,
KoreaderStatsService,
KoreaderSyncEstimateCleanupService,
]);
expect(Reflect.getMetadata('exports', KoreaderModule)).toEqual([KoreaderService, KoreaderRepository]);
});
});