// AUTO-GENERATED by gen_test_tables.py — include from ch05.typ
#import "common.typ": pz-test-table

#pz-test-table(
  [Реестр модульных unit-тестов],
  4,
  table.header(
    [№],
    [Модуль],
    [Метод],
    [Проверяемое поведение],
  ),
  [1], [domain], [mapsFileNotFoundException], [исключение преобразуется в типизированную ошибку Wallenc],
  [2], [domain], [mapsGenericExceptionToUnknown], [исключение преобразуется в типизированную ошибку Wallenc],
  [3], [domain], [mapsIOExceptionToIoFailed], [исключение преобразуется в типизированную ошибку Wallenc],
  [4], [domain], [preservesWallencException], [сохранение уже типизированного WallencException],
  [5], [domain], [test bytes encryption with the same key], [симметрия шифрования и дешифрования при верном ключе],
  [6], [domain], [test bytes encryption with the wrong key], [дешифрование с неверным ключом завершается ошибкой],
  [7], [domain], [test correct key for StorageEncryptionInfo], [верный ключ проходит проверку checkKey],
  [8], [domain], [test incorrect key for StorageEncryptionInfo], [верный ключ проходит проверку checkKey],
  [9], [domain], [test stream encryption with the same key], [симметрия шифрования и дешифрования при верном ключе],
  [10], [domain], [test stream encryption with the wrong key], [дешифрование с неверным ключом завершается ошибкой],
  [11], [domain], [test string encryption with the same key], [симметрия шифрования и дешифрования при верном ключе],
  [12], [domain], [test string encryption with the wrong key], [дешифрование с неверным ключом завершается ошибкой],
  [13], [domain-vault], [diskInfoParsesResponse], [разбор ответа API diskInfo],
  [14], [domain-vault], [diskInfoThrowsAuthExceptionOn401], [AuthException при HTTP 401],
  [15], [domain-vault], [flushRestoresPendingOnWriteFailure], [откат буфера журнала при сбое записи],
  [16], [domain-vault], [listReturnsEmptyEmbeddedOn404], [пустой список при HTTP 404],
  [17], [domain-vault], [mapsFileNotFoundToStorageFileNotFound], [исключение преобразуется в типизированную ошибку Wallenc],
  [18], [domain-vault], [mapsHttpExceptionToNetworkHttpFailed], [исключение преобразуется в типизированную ошибку Wallenc],
  [19], [domain-vault], [mapsIllegalStateNotAFile], [исключение преобразуется в типизированную ошибку Wallenc],
  [20], [domain-vault], [mapsMissingOAuthTokenIoToTokenMissing], [исключение преобразуется в типизированную ошибку Wallenc],
  [21], [domain-vault], [mapsSocketTimeoutToOperationTimedOut], [исключение преобразуется в типизированную ошибку Wallenc],
  [22], [domain-vault], [mapsYandexDiskAuthToAuthFailed], [исключение преобразуется в типизированную ошибку Wallenc],
  [23], [task-runtime], [cancelAllMarksRunningTaskCancelled], [жизненный цикл фоновой задачи],
  [24], [task-runtime], [cancelMarksTaskCancelled], [жизненный цикл фоновой задачи],
  [25], [task-runtime], [enqueueCompletesTask], [жизненный цикл фоновой задачи],
  [26], [task-runtime], [failRecordsFailedState], [жизненный цикл фоновой задачи],
  [27], [task-runtime], [logAppendsLine], [log appends line],
  [28], [task-runtime], [progressUpdatesRunningState], [жизненный цикл фоновой задачи],
  [29], [ui], [clearContentProgress_mapsToStringRes], [маршрутизация, deep link или подписи UI],
  [30], [ui], [mapsFeatureStorageNotFound], [исключение преобразуется в типизированную ошибку Wallenc],
  [31], [ui], [mapsStorageIncorrectKey], [исключение преобразуется в типизированную ошибку Wallenc],
  [32], [ui], [mapsUnknown], [исключение преобразуется в типизированную ошибку Wallenc],
  [33], [ui], [matchesTasksAndSettingsHosts], [matches tasks and settings hosts],
  [34], [ui], [matchesWallencViewIntent], [маршрутизация, deep link или подписи UI],
  [35], [ui], [parsesStandardTotpUri], [корректность TOTP/OTP: parses standard totp uri],
  [36], [ui], [rejectsMissingSecret], [разбор и валидация входных данных],
  [37], [ui], [rejectsNonOtpauthScheme], [корректность TOTP/OTP: rejects non otpauth scheme],
  [38], [ui], [rejectsUnrelatedIntent], [разбор и валидация входных данных],
  [39], [ui], [startTestTaskEnqueuesWork], [постановка тестовой задачи в очередь orchestrator],
  [40], [ui], [storageHomeRouteCarriesVaultAndStorageIds], [маршрутизация, deep link или подписи UI],
  [41], [ui], [syncNoGroups_mapsToStringRes], [сценарий синхронизации: no groups_maps to string res],
  [42], [ui], [textSecretsRoutesCarryRequiredArguments], [маршрутизация, deep link или подписи UI],
  [43], [ui], [vaultTask_mapsToStringRes], [маршрутизация, deep link или подписи UI],
  [44], [usecases], [buildTwoFaCodeStateMatchesJavaOtpForKnownSecret], [корректность TOTP/OTP: build two fa code state matches java otp for known secret],
  [45], [usecases], [buildTwoFaCodeStateReturnsNullForInvalidSecret], [build two fa code state returns null for invalid secret],
  [46], [usecases], [deleteWithRecordSyncJournalFalseDoesNotBumpSequence], [удаление без записи в журнал не увеличивает sequence],
  [47], [usecases], [isSyncableUserPathExcludesEncDirAndJournal], [пользовательский путь исключает служебные каталоги],
  [48], [usecases], [mergeKeepsSingleEntryPerPath], [слияние журнала оставляет одну запись на путь],
  [49], [usecases], [openReadDoesNotChangeJournal], [чтение без записи не изменяет журнал синхронизации],
  [50], [usecases], [storageWithEncInfoIsIncompatible], [хранилище с шифрованием несовместимо в одной группе sync],
  [51], [usecases], [storageWithoutEncInfoIsCompatible], [хранилище без метаданных шифрования совместимо с синхронизацией],
  [52], [usecases], [syncAllGroupsReportsNoGroupsWhenEmpty], [сценарий синхронизации: all groups reports no groups when empty],
  [53], [usecases], [syncGroupCooperativeCancellationReleasesLocks], [снятие блокировок при отмене задачи пользователем],
  [54], [usecases], [syncGroupCopiesFileFromSourceToTarget], [копирование файла с источника на целевое хранилище в группе],
  [55], [usecases], [syncGroupDeleteRemovesFileOnTarget], [удаление файла на целевом хранилище при синхронизации],
  [56], [usecases], [syncGroupReleasesLocksAfterSuccessfulSync], [снятие блокировок после успешной синхронизации],
  [57], [usecases], [syncGroupReleasesLocksWhenJournalEmpty], [снятие блокировок при пустом журнале],
  [58], [usecases], [syncGroupReleasesLocksWhenJournalReadFails], [снятие блокировок при ошибке чтения журнала],
  [59], [usecases], [syncGroupSkippedWhenFewerThanTwoStorages], [синхронизация пропускается, если в группе меньше двух хранилищ],
  [60], [usecases], [syncGroupStopsWhenLockCannotBeAcquired], [остановка при невозможности захватить блокировку группы],
  [61], [usecases], [syncGroupTrashSoftDeletesOnTarget], [мягкое удаление (trash) на целевом хранилище],
  [62], [usecases], [syncSkipsWhenTargetRevisionAlreadyWinner], [пропуск синхронизации, если ревизия цели уже новее],
  [63], [usecases], [textSecretsCrudWorksWithOptionalLabels], [CRUD-операции и сохранение данных],
  [64], [usecases], [textSecretsInvalidJsonFallsBackToEmptyList], [text secrets invalid json falls back to empty list],
  [65], [usecases], [totpPeriodProgressIsContinuousWithinPeriod], [корректность TOTP/OTP: totp period progress is continuous within period],
  [66], [usecases], [totpSecondsUntilRefreshCountsDownWithinPeriod], [корректность TOTP/OTP: totp seconds until refresh counts down within period],
  [67], [usecases], [twoFaCrudWorksAndPersists], [CRUD-операции и сохранение данных],
  [68], [usecases], [twoFaInvalidJsonFallsBackToEmptyList], [two fa invalid json falls back to empty list],
) <tbl-unit-all>

