文件
mynode/packages/lib/models/settings/settingValidations.test.ts
chen 301194963b
一些检查失败了
automerge / automerge (push) Has been cancelled
react-native-android-build-apk / AssembleRelease (push) Has been cancelled
Build macOS M1 / Main (push) Has been cancelled
Joplin Continuous Integration / Main (macos-15-intel) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-11-vs2026-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-2025) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04-arm) (push) Has been cancelled
Joplin UI tests / Main (ubuntu-22.04) (push) Has been cancelled
Joplin UI tests / Main (windows-2025) (push) Has been cancelled
Joplin UI tests / Mobile (push) Has been cancelled
Close stale issues / ProcessStaleIssues (push) Has been cancelled
feat: Initial clean release of CHM
2026-11-04 11:29:39 +08:00

36 行
1.4 KiB
TypeScript

import SyncTargetRegistry from '../../SyncTargetRegistry';
import { createNTestNotes, setupDatabaseAndSynchronizer, switchClient } from '../../testing/test-utils';
import BaseItem from '../BaseItem';
import Folder from '../Folder';
import Setting from '../Setting';
import settingValidations from './settingValidations';
describe('settingValidations', () => {
beforeEach(async () => {
await setupDatabaseAndSynchronizer(1);
await switchClient(1);
});
test('sync disabled items should prevent switching sync targets unless ignored', async () => {
const folder = await Folder.save({ title: 'Test' });
const noteCount = 5;
const testNotes = await createNTestNotes(noteCount, folder);
const syncTargetId = SyncTargetRegistry.nameToId('memory');
Setting.setValue('sync.target', syncTargetId);
for (const testNote of testNotes) {
await BaseItem.saveSyncDisabled(syncTargetId, testNote, 'Disabled reason');
}
const newSyncTargetId = SyncTargetRegistry.nameToId('dropbox');
// Validation should fail with some error message.
expect(await settingValidations(['sync.target'], { 'sync.target': newSyncTargetId })).not.toBe('');
// Should pass after dismissing all warnings
for (const testNote of testNotes) {
await BaseItem.ignoreItemSyncWarning(syncTargetId, testNote);
}
expect(await settingValidations(['sync.target'], { 'sync.target': newSyncTargetId })).toBe('');
});
});